<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Aaron Greenlee&#039;s Blog</title>
	<atom:link href="http://aarongreenlee.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://aarongreenlee.com</link>
	<description>A blog to remember, share and help others improve their Web development skills.</description>
	<lastBuildDate>Thu, 04 Feb 2010 13:22:03 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='aarongreenlee.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/72bd22d20305295899aea6160685b8d6?s=96&#038;d=http://s2.wp.com/i/buttonw-com.png</url>
		<title>Aaron Greenlee&#039;s Blog</title>
		<link>http://aarongreenlee.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://aarongreenlee.com/osd.xml" title="Aaron Greenlee&#039;s Blog" />
	<atom:link rel='hub' href='http://aarongreenlee.com/?pushpress=hub'/>
		<item>
		<title>Modern Day Love Note</title>
		<link>http://aarongreenlee.com/2010/02/04/modern-day-love-note/</link>
		<comments>http://aarongreenlee.com/2010/02/04/modern-day-love-note/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 13:22:03 +0000</pubDate>
		<dc:creator>aarongreenlee</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[ColdFusion Love Note]]></category>
		<category><![CDATA[Love]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Wife]]></category>

		<guid isPermaLink="false">http://aarongreenlee.com/2010/02/04/modern-day-love-note/</guid>
		<description><![CDATA[
	words = [
		'more',
		'very much',
		'more every day',
		'still',
		'infinitly',
		'deeply',
		'passionitly'];
	desc = [
		'is amazing',
		'is Awesome',
		'is Blithesome',
		'is Excellent',
		'is Fabulous',
		'is Fantastic',
		'is Favorable',
		'is Fortuitous',
		'is Great',
		'is Incredible',
		'is Ineffable',
		'is Mirthful',
		'is Outstanding',
		'is Perfect',
		'is Propitious',
		'is Remarkable',
		'is Smart',
		'is Spectacular',
		'is Splendid',
		'is Stellar',
		'is Stupendous',
		'is Super',
		'is Ultimate',
		'is Unbelievable',
		'is Wondrous'];
	sentance = [];
	string = [];
	for (i=1; i LTE arrayLen(words); i++) {
		arrayAppend(string, 'I love you ');
		arrayAppend(string,words[i]);
		arrayAppend(string,'! ');
		writeOutput(arrayToList(string, '') );
		arrayClear(string);
	}
	for (i=1; i LTE arrayLen(desc); i++) [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aarongreenlee.com&blog=10444707&post=52&subd=aarongreenlee&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<pre><code>
	words = [
		'more',
		'very much',
		'more every day',
		'still',
		'infinitly',
		'deeply',
		'passionitly'];
	desc = [
		'is amazing',
		'is Awesome',
		'is Blithesome',
		'is Excellent',
		'is Fabulous',
		'is Fantastic',
		'is Favorable',
		'is Fortuitous',
		'is Great',
		'is Incredible',
		'is Ineffable',
		'is Mirthful',
		'is Outstanding',
		'is Perfect',
		'is Propitious',
		'is Remarkable',
		'is Smart',
		'is Spectacular',
		'is Splendid',
		'is Stellar',
		'is Stupendous',
		'is Super',
		'is Ultimate',
		'is Unbelievable',
		'is Wondrous'];
	sentance = [];
	string = [];
	for (i=1; i LTE arrayLen(words); i++) {
		arrayAppend(string, 'I love you ');
		arrayAppend(string,words[i]);
		arrayAppend(string,'! ');
		writeOutput(arrayToList(string, '') );
		arrayClear(string);
	}
	for (i=1; i LTE arrayLen(desc); i++) {
		arrayAppend(string, 'My love for you is ');
		arrayAppend(string,desc[i]);
		arrayAppend(string,'! ');
		writeOutput(arrayToList(string, '') );
		arrayClear(string);
	}
</code></pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aarongreenlee.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aarongreenlee.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aarongreenlee.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aarongreenlee.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aarongreenlee.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aarongreenlee.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aarongreenlee.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aarongreenlee.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aarongreenlee.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aarongreenlee.wordpress.com/52/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aarongreenlee.com&blog=10444707&post=52&subd=aarongreenlee&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://aarongreenlee.com/2010/02/04/modern-day-love-note/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81b3151b91c9dfc3d0074cba1a0357c6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aarongreenlee</media:title>
		</media:content>
	</item>
		<item>
		<title>Make FireFox Refresh Everytime</title>
		<link>http://aarongreenlee.com/2010/01/23/make-firefox-refresh-everytime/</link>
		<comments>http://aarongreenlee.com/2010/01/23/make-firefox-refresh-everytime/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 18:31:26 +0000</pubDate>
		<dc:creator>aarongreenlee</dc:creator>
				<category><![CDATA[Browser]]></category>
		<category><![CDATA[FireFox]]></category>
		<category><![CDATA[Refresh Page]]></category>
		<category><![CDATA[Tip]]></category>

		<guid isPermaLink="false">http://aarongreenlee.com/?p=43</guid>
		<description><![CDATA[This afternoon, I am writing some JavaScript for a CMS system and FireFox was not allways fetching the new scripts from the development server. I ran across this helpful FireFox tip and wanted to share and save on my blog.
How to force FireFox to reload the page and ignore cache

You can use Ctrl + F5 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aarongreenlee.com&blog=10444707&post=43&subd=aarongreenlee&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>This afternoon, I am writing some JavaScript for a CMS system and FireFox was not allways fetching the new scripts from the development server. I ran across this helpful <a href="http://ticket.betterbuilt.com/KB/a26/how-to-force-firefox-to-reload-the-page-and-ignore-cache.aspx">FireFox tip</a> and wanted to share and save on my blog.</p>
<p><strong><a href="http://ticket.betterbuilt.com/KB/a26/how-to-force-firefox-to-reload-the-page-and-ignore-cache.aspx">How to force FireFox to reload the page and ignore cache</a></strong></p>
<ul>
<li>You can use Ctrl + F5 for a single use basis, or if you want firefox to always reload the page then type this into the address bar: <em>about:config</em></li>
<li>Type this into the filter: <em>browser.cache.check_doc_frequency</em></li>
<li>Change the value to: 1</li>
</ul>
<p><strong>Additional Values</strong></p>
<ul>
<li>3 &#8211; only check if it seems outdated (Default Value)</li>
<li>2 &#8211; always use cached version</li>
<li>1 &#8211; always check for newer version</li>
<li>0 &#8211; check for newer version once per session</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aarongreenlee.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aarongreenlee.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aarongreenlee.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aarongreenlee.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aarongreenlee.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aarongreenlee.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aarongreenlee.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aarongreenlee.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aarongreenlee.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aarongreenlee.wordpress.com/43/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aarongreenlee.com&blog=10444707&post=43&subd=aarongreenlee&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://aarongreenlee.com/2010/01/23/make-firefox-refresh-everytime/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81b3151b91c9dfc3d0074cba1a0357c6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aarongreenlee</media:title>
		</media:content>
	</item>
		<item>
		<title>A Look At The Adobe Community Professionals 2010</title>
		<link>http://aarongreenlee.com/2010/01/19/a-look-at-the-adobe-community-professionals-2010/</link>
		<comments>http://aarongreenlee.com/2010/01/19/a-look-at-the-adobe-community-professionals-2010/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 15:12:32 +0000</pubDate>
		<dc:creator>aarongreenlee</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[ACP]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://aarongreenlee.com/?p=34</guid>
		<description><![CDATA[This morning the 2010 Adobe Community Professionals List was posted on the Adobe Community Manager Blog. I made a quick matrix and chart of the data to answer some questions of my own and thought I would share with the community.
I was not surprised by the growth for Flex with all Adobe is investing in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aarongreenlee.com&blog=10444707&post=34&subd=aarongreenlee&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>This morning the 2010 Adobe Community Professionals List was posted on the <a href="http://lizfrederick.blogspot.com/2010/01/new-acps-for-2010.html">Adobe Community Manager Blog</a>. I made a quick matrix and chart of the data to answer some questions of my own and thought I would share with the community.<span id="more-34"></span></p>
<p>I was not surprised by the growth for Flex with all Adobe is investing in the product and recruitment of developers. I was surprised by the ColdFusion growth. It is no secret that some people wonder if ColdFusion is dead. About a year ago Adobe published new statistics that showed a surge of growth for the ColdFusion application server and these new community experts help support those numbers. </p>
<p>I am also watching the results of the <a href="http://cfunited.com/blog/index.cfm/2010/1/14/State-of-the-CF-Union-survey--partial-results">CFUnitied 2010 Survey</a>. I hope to see an increase in CFML Developers in the 1 to 3 year category.</p>
<p><div id="attachment_35" class="wp-caption aligncenter" style="width: 510px"><a href="http://aarongreenlee.files.wordpress.com/2010/01/acp.jpg"><img src="http://aarongreenlee.files.wordpress.com/2010/01/acp.jpg?w=500&#038;h=322" alt="This graph illustrates the existing and new members for each product featured in the ACP Adobe Community Professional Program." title="Adobe Community Professional Program 2010 Graph" width="500" height="322" class="size-full wp-image-35" /></a><p class="wp-caption-text">This graph illustrates the existing and new members for each product featured in the ACP Adobe Community Professional Program.</p></div><br />
<strong>Adobe Community Professional Statistics</strong></p>
<table border="1" cellpadding="4" cellspacing="0">
<tr>
<td><strong>PRODUCT</strong></td>
<td><strong>EXISTING</strong></td>
<td><strong>NEW</strong></td>
<td><strong>% OF NEW</strong></td>
<td><strong>TOTAL</strong></td>
<td><strong>% OF TOTAL</strong></td>
</tr>
<tr>
<td>Acrobat</td>
<td>6</td>
<td>3</td>
<td>33%</td>
<td>9</td>
<td>3%</td>
</tr>
<tr>
<td>AfterEffects</td>
<td>5</td>
<td>2</td>
<td>29%</td>
<td>7</td>
<td>2%</td>
</tr>
<tr>
<td>AIR</td>
<td>4</td>
<td>7</td>
<td>64%</td>
<td>11</td>
<td>4%</td>
</tr>
<tr>
<td>Authorware</td>
<td>1</td>
<td></td>
<td>0%</td>
<td>1</td>
<td>0%</td>
</tr>
<tr>
<td>Captivate</td>
<td>5</td>
<td>1</td>
<td>17%</td>
<td>6</td>
<td>2%</td>
</tr>
<tr>
<td>ColdFusion</td>
<td>26</td>
<td>25</td>
<td>49%</td>
<td>51</td>
<td>17%</td>
</tr>
<tr>
<td>Creative Suite</td>
<td>15</td>
<td>2</td>
<td>12%</td>
<td>17</td>
<td>6%</td>
</tr>
<tr>
<td>Dreamweaver</td>
<td>19</td>
<td>1</td>
<td>5%</td>
<td>20</td>
<td>7%</td>
</tr>
<tr>
<td>Fireworks</td>
<td>4</td>
<td></td>
<td>0%</td>
<td>4</td>
<td>1%</td>
</tr>
<tr>
<td>Flash Lite</td>
<td></td>
<td>1</td>
<td>100%</td>
<td>1</td>
<td>0%</td>
</tr>
<tr>
<td>Flash Media Server</td>
<td>6</td>
<td>4</td>
<td>40%</td>
<td>10</td>
<td>3%</td>
</tr>
<tr>
<td>Flash Mobile</td>
<td>7</td>
<td></td>
<td>0%</td>
<td>7</td>
<td>2%</td>
</tr>
<tr>
<td>Flash Platform</td>
<td></td>
<td>6</td>
<td>100%</td>
<td>6</td>
<td>2%</td>
</tr>
<tr>
<td>Flash Platform (RIA)</td>
<td>5</td>
<td>3</td>
<td>38%</td>
<td>8</td>
<td>3%</td>
</tr>
<tr>
<td>Flash Professional</td>
<td>11</td>
<td>8</td>
<td>42%</td>
<td>19</td>
<td>6%</td>
</tr>
<tr>
<td>Flex</td>
<td>33</td>
<td>26</td>
<td>44%</td>
<td>59</td>
<td>19%</td>
</tr>
<tr>
<td>FrameMaker</td>
<td>5</td>
<td></td>
<td>0%</td>
<td>5</td>
<td>2%</td>
</tr>
<tr>
<td>Illustrator</td>
<td>2</td>
<td>1</td>
<td>33%</td>
<td>3</td>
<td>1%</td>
</tr>
<tr>
<td>InDesign</td>
<td>12</td>
<td>8</td>
<td>40%</td>
<td>20</td>
<td>7%</td>
</tr>
<tr>
<td>InDesign Server</td>
<td>1</td>
<td></td>
<td>0%</td>
<td>1</td>
<td>0%</td>
</tr>
<tr>
<td>Lightroom</td>
<td>4</td>
<td>2</td>
<td>33%</td>
<td>6</td>
<td>2%</td>
</tr>
<tr>
<td>LiveCycle ES</td>
<td>2</td>
<td></td>
<td>0%</td>
<td>2</td>
<td>1%</td>
</tr>
<tr>
<td>Photoshop</td>
<td>8</td>
<td>6</td>
<td>43%</td>
<td>14</td>
<td>5%</td>
</tr>
<tr>
<td>Photoshop Elements</td>
<td>1</td>
<td></td>
<td>0%</td>
<td>1</td>
<td>0%</td>
</tr>
<tr>
<td>Premiere Pro</td>
<td>6</td>
<td>1</td>
<td>14%</td>
<td>7</td>
<td>2%</td>
</tr>
<tr>
<td>Production Premium</td>
<td>1</td>
<td></td>
<td>0%</td>
<td>1</td>
<td>0%</td>
</tr>
<tr>
<td>RoboHelp</td>
<td>5</td>
<td></td>
<td>0%</td>
<td>5</td>
<td>2%</td>
</tr>
<tr>
<td>Spry</td>
<td>1</td>
<td></td>
<td>0%</td>
<td>1</td>
<td>0%</td>
</tr>
<tr>
<td>Visual Communicator</td>
<td>2</td>
<td></td>
<td>0%</td>
<td>2</td>
<td>1%</td>
</tr>
<tr>
<td>&nbsp;</td>
<td align="right">197</td>
<td align="right">107</td>
<td>&nbsp;</td>
<td align="right">304</td>
<td>&nbsp;</td>
</tr>
</table>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aarongreenlee.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aarongreenlee.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aarongreenlee.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aarongreenlee.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aarongreenlee.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aarongreenlee.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aarongreenlee.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aarongreenlee.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aarongreenlee.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aarongreenlee.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aarongreenlee.com&blog=10444707&post=34&subd=aarongreenlee&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://aarongreenlee.com/2010/01/19/a-look-at-the-adobe-community-professionals-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81b3151b91c9dfc3d0074cba1a0357c6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aarongreenlee</media:title>
		</media:content>

		<media:content url="http://aarongreenlee.files.wordpress.com/2010/01/acp.jpg" medium="image">
			<media:title type="html">Adobe Community Professional Program 2010 Graph</media:title>
		</media:content>
	</item>
		<item>
		<title>Recursively Remove All SVN Directories on Linux</title>
		<link>http://aarongreenlee.com/2010/01/14/recursively-remove-all-svn-directories-on-linux/</link>
		<comments>http://aarongreenlee.com/2010/01/14/recursively-remove-all-svn-directories-on-linux/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 23:01:00 +0000</pubDate>
		<dc:creator>aarongreenlee</dc:creator>
				<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://aarongreenlee.com/?p=32</guid>
		<description><![CDATA[Just a simple command that helped me today.

$ sudo rm -rf `find . -type d -name .svn`

       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aarongreenlee.com&blog=10444707&post=32&subd=aarongreenlee&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Just a simple command that helped me today.<br />
<code><br />
$ sudo rm -rf `find . -type d -name .svn`<br />
</code></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aarongreenlee.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aarongreenlee.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aarongreenlee.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aarongreenlee.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aarongreenlee.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aarongreenlee.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aarongreenlee.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aarongreenlee.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aarongreenlee.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aarongreenlee.wordpress.com/32/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aarongreenlee.com&blog=10444707&post=32&subd=aarongreenlee&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://aarongreenlee.com/2010/01/14/recursively-remove-all-svn-directories-on-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81b3151b91c9dfc3d0074cba1a0357c6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aarongreenlee</media:title>
		</media:content>
	</item>
		<item>
		<title>A CFC with entityname X could not be found</title>
		<link>http://aarongreenlee.com/2010/01/14/a-cfc-with-entityname-x-could-not-be-found/</link>
		<comments>http://aarongreenlee.com/2010/01/14/a-cfc-with-entityname-x-could-not-be-found/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 19:41:02 +0000</pubDate>
		<dc:creator>aarongreenlee</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[ORM]]></category>

		<guid isPermaLink="false">http://aarongreenlee.com/?p=29</guid>
		<description><![CDATA[This afternoon I encountered an error &#8216;A CFC with entityname X could not be found&#8217; as I was working on a new campaign entity for our Adwords campaign. For GCA.net, we are preparing to launch a AdWord campaign related to the new RedHat JBoss Bootcamp Training classes that are almost public. We also happen to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aarongreenlee.com&blog=10444707&post=29&subd=aarongreenlee&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>This afternoon I encountered an error &#8216;A CFC with entityname X could not be found&#8217; as I was working on a new campaign entity for our Adwords campaign. For GCA.net, we are preparing to launch a AdWord campaign related to the new RedHat JBoss Bootcamp Training classes that are almost public. We also happen to be in the middle of the SugarCRM release to the Sales staff which is causing lots of interruptions.<span id="more-29"></span></p>
<p>I was interupted as I was adding a new property to the campaign.cfc entity and lost my train of thought. After returning to work I had a mysterious error that could not be correct. </p>
<p><strong>A CFC with entityname campaign could not be found.</strong> error was produced by the following code:</p>
<pre><code>Campaign = entityload('gca.model.entities.campaign',{campaignID=1},true)</code></pre>
<p>After verifying the entity was there and all my ORM settings were unchanged I was puzzeled. I finally created a new entity using the <em>new</em> operator:</p>
<pre><code>Campaign = new gca.model.entities.campaign();</code></pre>
<p>This is where I discovered I actually had a duplicate property name in the Campaign entity and recalled my interruption and loss of concentration. </p>
<p>So, if you are getting a mysterious error in ColdFusion9 that your entity mapping can not be found you may have a syntax or logic issue in your entity that is preventing ColdFusion from generating the .class file for your ORM entity. The order of creation vs. the order of validation is just a little odd in this case.</p>
<p>Hope this help some poor Googler trying to figure out what is wrong.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aarongreenlee.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aarongreenlee.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aarongreenlee.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aarongreenlee.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aarongreenlee.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aarongreenlee.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aarongreenlee.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aarongreenlee.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aarongreenlee.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aarongreenlee.wordpress.com/29/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aarongreenlee.com&blog=10444707&post=29&subd=aarongreenlee&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://aarongreenlee.com/2010/01/14/a-cfc-with-entityname-x-could-not-be-found/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81b3151b91c9dfc3d0074cba1a0357c6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aarongreenlee</media:title>
		</media:content>
	</item>
		<item>
		<title>Hyrule ColdFusion 9 Data Validation for Objects</title>
		<link>http://aarongreenlee.com/2010/01/12/hyrule-coldfusion-9-data-validation-for-objects/</link>
		<comments>http://aarongreenlee.com/2010/01/12/hyrule-coldfusion-9-data-validation-for-objects/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 01:51:34 +0000</pubDate>
		<dc:creator>aarongreenlee</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Hyrule]]></category>

		<guid isPermaLink="false">http://aarongreenlee.com/?p=19</guid>
		<description><![CDATA[I have augmented Hyrule and wanted to share with the community in the event the author does not adopt the changes. Hyrule is an awesome new ColdFusion 9 Object Data Validator by Dan Vega. This code makes Hyrule thread safe and allows extended objects to be validated.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aarongreenlee.com&blog=10444707&post=19&subd=aarongreenlee&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Hyrule, by Dan Vega, is pretty cool. Using some simple metadata in your <a href="http://hyrule.riaforge.org/">ORM Entities or CFCs</a> you can enable <a href="http://hyrule.riaforge.org/">Hyrule validation</a>. It is quite an elegant object data validator and I have switched to it on my newest project. If you are using <a href="http://www.adobe.com/coldfusion">ColdFusion 9</a> and <a href="http://www.adobe.com/coldfusion">rapidly developing applications</a> with the new <a href="http://www.adobe.com/coldfusion">ORM Hybernate</a> features then I highly recommend you take advantage of Dan&#8217;s generosity and adopt use of Hyrule.  </p>
<p>When evaluating the code I discovered two minor bugs and sent the corrections to the author, <a href="http://www.danvega.org/">Dan Vega</a> (who has some sweet projects). The biggest issue was that the validation results where stored in the instance of Hyrule which made it <a href="http://hyrule.riaforge.org/index.cfm?event=page.issue&amp;issueid=62C9E15B-96DF-8F70-F1D337467F31D7CB">unsafe to persist in a non request specific scope</a>. Since I am a big <a href="http://www.coldboxframework.com">ColdBox Framework</a> fan, which makes caching objects so much fun, I just can&#8217;t allow a utility like like Hyrule to exist and not be a singleton. So, I made some changes and e-mailed them to Dan Vega two weeks ago.</p>
<p>Tonight, I made some additional changes to Hyrule. This time, I added some recursive crawling to the object being validated to support extended properties (<a href="http://hyrule.riaforge.org/index.cfm?event=page.issue&amp;issueid=67334E60-FDE8-99B2-80A07394818B5AE0">the second bug I found</a>). Hyrule can now validate the object passed into it and the properties set into the instance of the extended objects. I have yet to hear back from Dan Vega from my code suggestion a few weeks ago so I thought I&#8217;d post the code here for consumption and for safe keeping in case I suffer some SVN meltdown.</p>
<p><strong>ValidatorResults.cfc</strong><br />
This is a new file which must be passed into the Hyrule Validate method.</p>
<pre><code>/**
 * @displayname Hyrule Validator Errors
 * @hint I am the thread safe error component. I am intended to be created in a thread safe scope such as local or request
 * @accessors true
 * @output false
 */
component {

	/**
	* @hint The array which will contain errors found by Hyrule
	*/
	property array errors;

	public function init(){
		setErrors([]);
		return this;
	}

	/**
	 * @hint A way to see if the validate method produced any errors.
	 */
	public boolean function hasErrors(){
		return arrayLen( getErrors() ) &gt; 0;
	}

	/**
	 * @hint adds an error to the errors array
	 */
	public void function addError(String property,String Message,String display){
		var s = {property=arguments.property,message=arguments.message,display=arguments.display};
		arrayAppend(getErrors(),s);
	}

}</code></pre>
<p><strong>Validator.cfc</strong><br />
This is the primary method for Hyrule</p>
<pre><code>/**
 * @displayname Hyrule Validator
 * @hint I am the main component for the Hyrule Validation Framework
 * @accessors true
 * @output false
 */
component {

	/**
	 * @hint I am the name of the properties file that contains our default messages
	 */
	property string resourceBundle;

	/**
	 * @hint I am the ValidatorMessage Component - I handle the loading and retrieval of messages.
	 */
	property ValidatorMessage validatorMessage;

	public Validator function init(String rb="DefaultValidatorMessages",Boolean isAbsolutePath=false){
		this.setResourceBundle(arguments.rb);
		this.setValidatorMessage(new ValidatorMessage(arguments.rb));
		return this;
	}

	public void function validate(dto, validatorResults){
		var props = getPropertiesRecusivly( arguments.dto );

		/* LOCAL SCOPE */
		var i 	= 0;
		var key = '';

		// for each property in the array
		for(i=1; i &lt;= arrayLen(props); ++i) {

			// the current property struct
			var prop = props[i];
			// the name of the current property
			var name = prop[&quot;name&quot;];

			// the value of the property
			//var val = arguments.dto.getPropertyValue(name);
			var val =  evaluate(&quot;arguments.dto.&quot; &amp; &quot;get#name#()&quot;);
			// the display name of the property
			var display = getDisplay(prop);

			if(structKeyExists(prop,&quot;message&quot;)){
				var perPropertyMessage = prop.message;
			}

			// loop over each key/pair value in the property
			for(key in prop){

				// based on the type we can grab our default message template from
				// our properties file that was loaded
				var message = isDefined(&quot;perPropertyMessage&quot;) ? perPropertyMessage : getValidatorMessage().getMessageByType(key);

				switch(key){

					case &quot;NOTNULL&quot; : {
						var notNullValidator = new validator.NotNullValidator();
						if( isNull(val) ){
							// if notnull != true then we are just making sure its not null
							validatorResults.addError(name,notNullValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;NOTEMPTY&quot; : {
						var notEmptyValidator = new validator.NotEmptyValidator();
						if(!notEmptyValidator.isValid(prop,val)){
							validatorResults.addError(name,notEmptyValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;MIN&quot; : {
						var minValidator = new validator.MinValidator();
						if( !minValidator.isValid(prop,val) ){
							validatorResults.addError(name,minValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;MAX&quot; : {
						var maxValidator = new validator.MaxValidator();
						if( !maxValidator.isValid(prop,val) ){
							validatorResults.addError(name,maxValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;RANGE&quot; : {
						var rangeValidator = new validator.rangeValidator();
						if( !rangeValidator.isValid(prop,val) ){
							validatorResults.addError(name,rangeValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;SIZE&quot; : {
						var sizeValidator = new validator.sizeValidator();
						if( !sizeValidator.isValid(prop,val) ){
							validatorResults.addError(name,sizeValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;INLIST&quot; : {
						var inListValidator = new validator.InListValidator();
						if( !inListValidator.isValid(prop,val) ){
							validatorResults.addError(name,inListValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;NOTINLIST&quot; : {
						var notInListValidator = new validator.NotInListValidator();
						if( !notInListValidator.isValid(prop,val) ){
							validatorResults.addError(name,notInListValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;ISMATCH&quot; : {
						var compareto = prop.isMatch;
						//var comparetoValue = arguments.dto.getPropertyValue(prop.isMatch);
						var comparetoValue =  evaluate(&quot;arguments.dto.&quot; &amp; &quot;get#prop.isMatch#()&quot;);
						prop.comparetoValue = comparetoValue;

						var isMatchValidator = new validator.isMatchValidator();
						if( !isMatchValidator.isValid(prop,val) ){
							validatorResults.addError(name,isMatchValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;PAST&quot; : {
						var pastValidator = new validator.PastValidator();
						if( !pastValidator.isValid(prop,val) ){
							validatorResults.addError(name,pastValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;FUTURE&quot; : {
						var futureValidator = new validator.FutureValidator();
						if( !futureValidator.isValid(prop,val) ){
							validatorResults.addError(name,futureValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;PATTERN&quot; : {
						var patternValidator = new validator.PatternValidator();
						if( !patternValidator.isValid(prop,val) ){
							validatorResults.addError(name,patternValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;ASSERTTRUE&quot; : {
						var assertTrueValidator = new validator.AssertTrueValidator();
						if( !assertTrueValidator.isValid(prop,val) ){
							validatorResults.addError(name,assertTrueValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}
					case &quot;ASSERTFALSE&quot; : {
						var assertFalseValidator = new validator.AssertFalseValidator();
						if( !assertFalseValidator.isValid(prop,val) ){
							validatorResults.addError(name,assertFalseValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;UPPERCASE&quot; : {
						var uppercaseValidator = new validator.UpperCaseValidator();
						if( !uppercaseValidator.isValid(prop,val) ){
							validatorResults.addError(name,uppercaseValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;LOWERCASE&quot; : {
						var lowercaseValidator = new validator.LowerCaseValidator();
						if( !lowercaseValidator.isValid(prop,val) ){
							validatorResults.addError(name,lowercaseValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;PASSWORD&quot; : {
						var passwordValidator = new validator.passwordValidator();
						if( !passwordValidator.isValid(prop,val) ){
							validatorResults.addError(name,passwordValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					// the following all validate using isValid but are broken into custom validators
					// in case you want to overwrite or extend thme to provide customer functionality

					case &quot;EMAIL&quot; : {
						var emailValidator = new validator.emailValidator();
						if( !emailValidator.isValid(prop,val) ){
							validatorResults.addError(name,emailValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;CREDITCARD&quot; : {
						var creditCardNumberValidator = new validator.CreditCardNumberValidator();
						if( !creditCardNumberValidator.isValid(prop,val) ){
							validatorResults.addError(name,creditCardNumberValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;SSN&quot; : {
						var ssnValidator = new validator.SSNValidator();
						if( !ssnValidator.isValid(prop,val) ){
							validatorResults.addError(name,ssnValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;PHONE&quot; : {
						var phoneValidator = new validator.PhoneValidator();
						if( !phoneValidator.isValid(prop,val) ){
							validatorResults.addError(name,phoneValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;ZIPCODE&quot; : {
						var zipCodeValidator = new validator.ZipCodeValidator();
						if( !zipCodeValidator.isValid(prop,val) ){
							validatorResults.addError(name,zipCodeValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;DATE&quot; : {
						var dateValidator = new validator.DateValidator();
						if( !dateValidator.isValid(prop,val) ){
							validatorResults.addError(name,dateValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;ARRAY&quot; : {
						var arrayValidator = new validator.ArrayValidator();
						if( !arrayValidator.isValid(prop,val) ){
							validatorResults.addError(name,arrayValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;STRUCT&quot; : {
						var structValidator = new validator.StructValidator();
						if( !structValidator.isValid(prop,val) ){
							validatorResults.addError(name,structValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;BOOLEAN&quot; : {
						var booleanValidator = new validator.BooleanValidator();
						if( !booleanValidator.isValid(prop,val) ){
							validatorResults.addError(name,booleanValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;QUERY&quot; : {
						var queryValidator = new validator.QueryValidator();
						if( !queryValidator.isValid(prop,val) ){
							validatorResults.addError(name,queryValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;URL&quot; : {
						var urlValidator = new validator.URLValidator();
						if( !urlValidator.isValid(prop,val) ){
							validatorResults.addError(name,urlValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;UUID&quot; : {
						var uuidValidator = new validator.UUIDValidator();
						if( !uuidValidator.isValid(prop,val) ){
							validatorResults.addError(name,uuidValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;GUID&quot; : {
						var guidValidator = new validator.GUIDValidator();
						if( !guidValidator.isValid(prop,val) ){
							validatorResults.addError(name,guidValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;BINARY&quot; : {
						var binaryValidator = new validator.binaryValidator();
						if( !binaryValidator.isValid(prop,val) ){
							validatorResults.addError(name,binaryValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;NUMERIC&quot; : {
						var numericValidator = new validator.numericValidator();
						if( !numericValidator.isValid(prop,val) ){
							validatorResults.addError(name,numericValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;STRING&quot; : {
						var stringValidator = new validator.stringValidator();
						if( !stringValidator.isValid(prop,val) ){
							validatorResults.addError(name,stringValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

					case &quot;CUSTOM&quot; : {
						// TODO: We should throw a custom error here if the component was not found
						var customValidator = createObject(&quot;component&quot;,&quot;#prop.custom#&quot;);
						if( !customValidator.isValid(prop,val) ){
							validatorResults.addError(name,customValidator.getMessage(prop,message),display);
							break;
						}
						break;
					}

				}
			}

		}
	}

	/**
	 * @hint This utility function will look at a property to determine what the display name should be.
	         If a display attribute is provided it will use that if not it just uses the property name.
	 */
	private string function getDisplay(Struct prop){
		var display = &quot;&quot;;
		if(structKeyExists(arguments.prop,&quot;display&quot;)){
			display = arguments.prop.display;
		} else {
			display = arguments.prop.name;
		}
		return display;
	}

	private array function getPropertiesRecusivly(required dto) {
		var metadata = getMetaData(arguments.dto);
		var properties = [];
		/*	Create an array of the first level object properties. We need to create our own array too allow us to append
		 *	it in extended objects. The array returned from the getMetaData method does not support growth */

		var p = getMetaData(arguments.dto).properties;

		for (LOCAL.i=1; LOCAL.i &lt;= arrayLen(p); LOCAL.i++) {
			arrayAppend(properties, p[LOCAL.i]);
		}

		activeMetadata = metadata;
		do {
			extensionExists = structKeyExists(activeMetadata, &#39;extends&#39;) AND activeMetadata.extends.name != &#39;WEB-INF.cftags.component&#39;;
			if ( extensionExists ) {
				// Recursivly reassign the active metadata struct
				activeMetadata = activeMetadata.extends;
				for (LOCAL.i = 1; LOCAL.i &lt;= arrayLen(activeMetadata.properties); LOCAL.i++) {
					arrayAppend(properties, activeMetadata.properties[LOCAL.i]);
				}
			}
		} while (extensionExists);

		return properties;
	}
}</code></pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aarongreenlee.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aarongreenlee.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aarongreenlee.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aarongreenlee.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aarongreenlee.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aarongreenlee.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aarongreenlee.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aarongreenlee.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aarongreenlee.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aarongreenlee.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aarongreenlee.com&blog=10444707&post=19&subd=aarongreenlee&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://aarongreenlee.com/2010/01/12/hyrule-coldfusion-9-data-validation-for-objects/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81b3151b91c9dfc3d0074cba1a0357c6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aarongreenlee</media:title>
		</media:content>
	</item>
		<item>
		<title>Hello World 2.0</title>
		<link>http://aarongreenlee.com/2009/12/29/hello-world-2-0/</link>
		<comments>http://aarongreenlee.com/2009/12/29/hello-world-2-0/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 20:03:25 +0000</pubDate>
		<dc:creator>aarongreenlee</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://aarongreenlee.com/?p=13</guid>
		<description><![CDATA[My previous host, GearWorx, has failed terribly. In mid-November, my server was taken down and I have yet to receive a response or a restored database. I have sent several e-mails and have not received a response. I have a feeling they are going out of business.
What did I learn?
If it can&#8211;it will happen to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aarongreenlee.com&blog=10444707&post=13&subd=aarongreenlee&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>My previous host, <a title="GearWorx did not make me happy." href="http://www.gearworx.net">GearWorx</a>, has failed terribly. In mid-November, my server was taken down and I have yet to receive a response or a restored database. I have sent several e-mails and have not received a response. I have a feeling they are going out of business.</p>
<p><strong>What did I learn?</strong></p>
<p>If it can&#8211;it will happen to you. So, always backup your database on a frequent schedule&#8211;even for your small personal projects.</p>
<p>I&#8217;m now hosting on WordPress and will begin my blog from scratch for 2010.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aarongreenlee.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aarongreenlee.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aarongreenlee.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aarongreenlee.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aarongreenlee.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aarongreenlee.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aarongreenlee.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aarongreenlee.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aarongreenlee.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aarongreenlee.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aarongreenlee.com&blog=10444707&post=13&subd=aarongreenlee&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://aarongreenlee.com/2009/12/29/hello-world-2-0/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81b3151b91c9dfc3d0074cba1a0357c6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aarongreenlee</media:title>
		</media:content>
	</item>
	</channel>
</rss>