<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Realm of Zod &#187; PHP</title>
	<atom:link href="http://blog.realmofzod.com/category/tech/development/php-development-tech/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.realmofzod.com</link>
	<description>Programming and Technology</description>
	<lastBuildDate>Wed, 13 Jul 2011 22:34:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>Portable File Encryption with PHP and Java</title>
		<link>http://blog.realmofzod.com/portable-file-encryption-with-php-and-java/</link>
		<comments>http://blog.realmofzod.com/portable-file-encryption-with-php-and-java/#comments</comments>
		<pubDate>Wed, 09 Jun 2010 19:59:44 +0000</pubDate>
		<dc:creator>brandon</dc:creator>
				<category><![CDATA[Cryptography]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[decryption]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[mcrypt]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[swing]]></category>

		<guid isPermaLink="false">http://blog.realmofzod.com/?p=256</guid>
		<description><![CDATA[<!-- Easy AdSense V2.96 -->
<!-- Post[count: 1] -->
<div class="ezAdsense adsense adsense-leadin" style="text-align:center;margin:12px;"><script type="text/javascript"><!--
google_ad_client = "pub-6616898812779690";
/* 468x60, created 11/12/09 */
google_ad_slot = "0995711308";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<!-- Easy AdSense V2.96 -->

I had a client project come up recently that required HIPAA compliance which meant encryption was going to be involved. The goal was to collect patient information and then store it in encrypted pdf files so they could be downloaded, decrypted, and entered into another system. It did not sound like the most efficient system however that was the spec I was given. I had never worked with symmetric encryption before although it has always been a topic of interest so I jumped at the opportunity to expand my knowledge of cryptography.]]></description>
		<wfw:commentRss>http://blog.realmofzod.com/portable-file-encryption-with-php-and-java/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dynamic paths in external javascript and stylesheets</title>
		<link>http://blog.realmofzod.com/dynamic-paths-in-external-javascript-and-stylesheets/</link>
		<comments>http://blog.realmofzod.com/dynamic-paths-in-external-javascript-and-stylesheets/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 17:46:13 +0000</pubDate>
		<dc:creator>brandon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.realmofzod.com/?p=252</guid>
		<description><![CDATA[<!-- Easy AdSense V2.96 -->
<!-- Post[count: 2] -->
<div class="ezAdsense adsense adsense-leadin" style="text-align:center;margin:12px;"><script type="text/javascript"><!--
google_ad_client = "pub-6616898812779690";
/* 468x60, created 11/12/09 */
google_ad_slot = "0995711308";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<!-- Easy AdSense V2.96 -->

Best practices  dictate that unobtrusive javascript is king these days which means that all javascript should live in external js files instead of cluttering up the html. Simple enough, however, situations arise sometimes where you need to adapt your javascript for dynamic conditions of the application, most notably, the current base directory where your application lives. If your application is small enough you can just hard code paths to images, other scripts, or internal urls however if you are anything like me, you probably shudder at the thought of hard coding any thing. Take this use case into consideration: let's say we have an external javascript file called myscript.js which houses all of our javascript for handling click events on ajax powered links throughout the site.]]></description>
		<wfw:commentRss>http://blog.realmofzod.com/dynamic-paths-in-external-javascript-and-stylesheets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Remotely Managing WordPress with PHP</title>
		<link>http://blog.realmofzod.com/remotely-managing-wordpress-with-php/</link>
		<comments>http://blog.realmofzod.com/remotely-managing-wordpress-with-php/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 15:56:10 +0000</pubDate>
		<dc:creator>brandon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[remote]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.realmofzod.com/?p=241</guid>
		<description><![CDATA[Wordpress is the ubiquitious platform these days although I hope to change this with the inevitable release of Silk CMS in the next month or so. In my line of work, I tend to have to install many, many copies of wordpress all over the place. Wordpress makes a great platform for deploying niche sets especially and comes with hundreds of plugins that make creating these sites dirt simple. Anyone who has managed niche sites can attest that it becomes quite unwieldy to manage hundreds of websites. It helps to standardize on a common infrastructure for all of them (ie, themes, plugins, etc) however each site needs to be slightly customized to a particular niche. Plugin settings need to be tweaked, headers changed, sublines updated, etc. Uploading wordpress to each host and manually unzipping it and re-uploading everything that is non-stock is one way to go about it but it's tedious and time consuming. If you happen to host on a hosting service that offers fantastico your job is a little easier but not by much.]]></description>
		<wfw:commentRss>http://blog.realmofzod.com/remotely-managing-wordpress-with-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Get Geo Coordinates from Google Maps in PHP</title>
		<link>http://blog.realmofzod.com/get-geo-coordinates-from-google-maps-in-php/</link>
		<comments>http://blog.realmofzod.com/get-geo-coordinates-from-google-maps-in-php/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 19:00:21 +0000</pubDate>
		<dc:creator>brandon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[maps]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.realmofzod.com/?p=234</guid>
		<description><![CDATA[Google maps offers a rich api for getting a lot of information as you are probably already aware. I've written a few locators in the last couple of years involving the use of google maps and doing radial searches based on zip codes. The difficult part for me was getting the geo coordinates of the queried zip code to use as a reference point for doing the radial search. I ended up writing a nice simple class to encapsulate converting zip codes into geo-coordinates.]]></description>
		<wfw:commentRss>http://blog.realmofzod.com/get-geo-coordinates-from-google-maps-in-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why HipHop is Hype and Facebook Looks Foolish</title>
		<link>http://blog.realmofzod.com/why-hiphop-is-hype-and-facebook-looks-foolish/</link>
		<comments>http://blog.realmofzod.com/why-hiphop-is-hype-and-facebook-looks-foolish/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 01:30:28 +0000</pubDate>
		<dc:creator>brandon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[hiphop]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[platforms]]></category>

		<guid isPermaLink="false">http://blog.realmofzod.com/?p=236</guid>
		<description><![CDATA[The twitterverse has been in a flurry of hype over Facebook's latest abortion: HipHop. For those who don't know, HipHop is Facebook's answer to scalability problems on their platform. Since everyone and their dog (literally) is on facebook, their platform responds to millions of requests each day, meaning they need serious hardware and software that can handle this brutal, unrelenting onslaught every second of every day. Facebook is written in Php which is suitable language for most applications on the web however when you push it as hard as facebook has, it starts to split at the seems like any runtime that was not designed with enterprise in mind. You can extend its life with the use of load balancers, smart caching,  and good development practices but sooner or later it will fail you.]]></description>
		<wfw:commentRss>http://blog.realmofzod.com/why-hiphop-is-hype-and-facebook-looks-foolish/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dynamically Manage Models with Zend_CodeGenerator</title>
		<link>http://blog.realmofzod.com/dynamically-manage-models-with-zend_codegenerator/</link>
		<comments>http://blog.realmofzod.com/dynamically-manage-models-with-zend_codegenerator/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 18:30:01 +0000</pubDate>
		<dc:creator>brandon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Doctrine]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[models]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[scaffolding]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://blog.realmofzod.com/?p=179</guid>
		<description><![CDATA[The holidays have passed and at last I've gotten enough of my obligations out of the way to begin to innovate on some new code as well as play with some of the new offerings in the latest versions of the Zend Framework. I've been most interested in particular with Zend_CodeGenerator since I have spent a lot of time in the last year writing boilerplate code for various projects. I find that the bulk of my time is spent prototyping models so I figured it would not be hard to build a model scaffolding script not unlike the 'rake' command in ruby on rails and similar commandline tools offered by the many application platforms out there. Rather than killing my wrists pounding out models, their various attributes and associated mutators/accessors, I decided that my time would be more efficiently spent describing my models using a short hand format (preferably xml) and then having a script translate that into actual classes and files. The Doctrine ORM allows you do this very thing translating YAML into Doctrine Models. This was very interesting to me but I chose to take it a step further and have it build all of my Domain Model infrastructure while it was at it (This includes the models, the gateway classes, and the DAO classes).]]></description>
		<wfw:commentRss>http://blog.realmofzod.com/dynamically-manage-models-with-zend_codegenerator/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Domain Model ORM Adapters</title>
		<link>http://blog.realmofzod.com/domain-model-orm-adapters/</link>
		<comments>http://blog.realmofzod.com/domain-model-orm-adapters/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 20:59:12 +0000</pubDate>
		<dc:creator>brandon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Doctrine]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[Domain Model Programming]]></category>
		<category><![CDATA[ORM]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://blog.realmofzod.com/?p=173</guid>
		<description><![CDATA[o I've had a series of articles that focus on domain model programming methodologies and most of my examples have demonstrated implementations using the <a href="http://www.doctrine-project.org/" target="_blank">Doctrine</a> ORM (Object Relational Mapper). Given the nature of domain model programming I've held to the assertion that models built using this method are truly ORM agnostic and it should be effortless to swap out Doctrine for the ORM of your choice. Well I like to put my money where my mouth is by showing how easily this has been done by showing off adapters that I have written, one for Doctrine, and the other for Zend_Db. The beauty of this system is that both support the same ORM agnostic query syntax demonstrated in my recent post about <a href="http://blog.realmofzod.com/2009/10/07/doctrine-complex-sql-queries-and-paginators/">creating complex sql queries using associative arrays</a>. This means that no modifications are necessary in the models, controllers or views when switching ORMs. Developer's utopia.
]]></description>
		<wfw:commentRss>http://blog.realmofzod.com/domain-model-orm-adapters/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Queued, Concatenated, and Gzipped Assets with the Zend Framework</title>
		<link>http://blog.realmofzod.com/queued-concatenated-and-gzipped-assets-with-the-zend-framework/</link>
		<comments>http://blog.realmofzod.com/queued-concatenated-and-gzipped-assets-with-the-zend-framework/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 19:12:22 +0000</pubDate>
		<dc:creator>brandon</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[optimization]]></category>

		<guid isPermaLink="false">http://blog.realmofzod.com/?p=164</guid>
		<description><![CDATA[Linking assets to your templates and layouts is always a mine field. Every person has a different way of doing it and if it is done poorly, it can adversely affect the load time of your website, particularly if you have lots of websites. It's helpful to understand how the http protocol fetches things like stylesheets and javascript files while it's loading your page. In order to alleviate traffic for any individual server, a browser is limited to only so many concurrent requests to the same host. I do not recall what that limit is on each browser but I'm sure google does but in any case, if your site is of significant scope, chances are, you are going to need more assets than your browser can pull in at once. If you don't believe me, install the yslow extension for firefox and run it on a page with many assets and you will see what i'm talking about.]]></description>
		<wfw:commentRss>http://blog.realmofzod.com/queued-concatenated-and-gzipped-assets-with-the-zend-framework/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Doctrine, Complex SQL Queries, and Paginators</title>
		<link>http://blog.realmofzod.com/doctrine-complex-sql-queries-and-paginators/</link>
		<comments>http://blog.realmofzod.com/doctrine-complex-sql-queries-and-paginators/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 00:45:46 +0000</pubDate>
		<dc:creator>brandon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Doctrine]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Domain Model]]></category>
		<category><![CDATA[DRY]]></category>
		<category><![CDATA[Pagination]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://blog.realmofzod.com/?p=146</guid>
		<description><![CDATA[<img class="alignleft size-medium wp-image-147" title="Mad_scientist_caricature_2" src="http://blog.realmofzod.com/wp-content/uploads/2009/10/Mad_scientist_caricature_2-300x280.png" alt="Mad_scientist_caricature_2" width="210" height="196" />In my efforts to build web applications using domain model programming I've encountered some interesting technical hurdles for keeping my implementation details away from my models. The most problematic issue that has come up time and time again has been that of using paginators. It's very difficult to keep your paginator class in the dark about database implementation details and have it be able to handle complex use cases. Over the last few months I have slowly evolved a sophisticated way to describe a complex sql query using nothing more than an associative array which can be passed to a clueless paginator which talks to the database through a predefined interface to a model gateway. Yeah the mad scientist is me because that's how I felt when I looked back on the pure genius of this method.]]></description>
		<wfw:commentRss>http://blog.realmofzod.com/doctrine-complex-sql-queries-and-paginators/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>eROI releases Moonit into the wild</title>
		<link>http://blog.realmofzod.com/eroi-releases-moonit-into-the-wild/</link>
		<comments>http://blog.realmofzod.com/eroi-releases-moonit-into-the-wild/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 23:20:41 +0000</pubDate>
		<dc:creator>brandon</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Websites]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Doctrine]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[websites]]></category>

		<guid isPermaLink="false">http://blog.realmofzod.com/?p=130</guid>
		<description><![CDATA[After months of development, and over a year of brainstorming, Moonit LLC unveiled moonit.com at TechCrunch50 2009 today. As the primary back end developer for this site I felt compelled to be a huge cheerleader for this site as it is the latest example of the incredible talent of the developers, designers and managers at eroi. In [...]]]></description>
		<wfw:commentRss>http://blog.realmofzod.com/eroi-releases-moonit-into-the-wild/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

