<?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>OhRyan.ca &#187; programming</title>
	<atom:link href="http://ohryan.ca/blog/tag/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://ohryan.ca/blog</link>
	<description>Canadian Tech News, Hacks &#38; How To</description>
	<lastBuildDate>Wed, 25 Jan 2012 06:46:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>WordPress Development, Cons &amp; Pros</title>
		<link>http://ohryan.ca/blog/2011/01/31/wordpress-development-cons-pros/</link>
		<comments>http://ohryan.ca/blog/2011/01/31/wordpress-development-cons-pros/#comments</comments>
		<pubDate>Mon, 31 Jan 2011 18:22:27 +0000</pubDate>
		<dc:creator>RyanN</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://ohryan.ca/blog/?p=1290</guid>
		<description><![CDATA[About a month and a half ago The Big Webshow featured WordPress creator Matt Mullenweg, listening to the interview it became really clear that WP is trying to position itself as a website &#8220;operating system.&#8221; While there are probably other platforms much more capable of the task, WordPress&#8217; ubiquity is sort of pushing it in that direction [...]]]></description>
			<content:encoded><![CDATA[<p>About a month and a half ago <a href="http://5by5.tv/bigwebshow/29" target="_blank">The Big Webshow featured WordPress creator Matt Mullenweg</a>, listening to the interview it became really clear that WP is trying to position itself as a website &#8220;operating system.&#8221; While there are probably other platforms much more capable of the task, WordPress&#8217; ubiquity is sort of pushing it in that direction regardless. Since that interview I&#8217;ve been meaning to take a closer look at WordPress.</p>
<p>Over the weekend I finally had a chance to dive in to theme and plugin development.<br />
Overall, I found WordPress to be very easy to work with, I didn&#8217;t find myself running into any dead-ends like I have with other platforms and CMSes. I thought I&#8217;d share my impressions in the form of a pros v cons list.</p>
<h2>Cons</h2>
<ul>
<li>WP is not model-view-controller framework, as far as I can tell from first brush there&#8217;s nothing MVC about it. I&#8217;ll admit, I&#8217;m not really sure how this would improve theme/plugin development or the application as as a whole. I do think that the WordPress codebase has a lack of structure and organization; MVC is a great way to organize a project.</li>
<li>WP is not object oriented. With the exception of the database wrapper, I didn&#8217;t come across any objects. Poking around WordPress themes and plugins reveals a bunch of global wordpress functions, things like &#8216;add_filter() ,&#8217; &#8216;wp_enqueue_script().&#8217; Everything you&#8217;d need to do in wordpress is a function. Exposing everything as a global function leads to the potential problem of of introducing a bug by creating a function with the same name an existing wordpress function (minor annoyance) and again, leads to code that&#8217;s hard to follow and disorganized. Function names aren&#8217;t always clear, some functions accept a call back, other return a value, etc.</li>
<li>WP does not use a template engine, all template variables, functions and statements are included as inline PHP tags. Inline PHP is impossible to read, hard to follow, leads to spaghetti and generates even uglier HTML. Additionally, template engines such as <a href="http://www.smarty.net" target="_blank">Smarty</a> add useful features like robust caching options. I did find <a href="http://wordpress.org/extend/plugins/smarty-for-wordpress/" target="_blank">a plugin to add smarty support</a>, may be worth investigating.</li>
<li>I really feel like these first three issues are pretty close to PHP&#8217;s worst practices. The overall lack of structure tends to generate sloppy, hard to read, amateur-looking code; the sort of thing that RoR snobs like to make fun of.</li>
<li>Finally, I suspect WordPress might be highly inefficient (but I haven&#8217;t done the research). Specifically the way plugins are allowed to add handlers and filters to various points in the application workflow seems like a problem. If every plugin has to be scanned for on every page load&#8230;well that&#8217;s just not going to scale well. Each installed plugin (hypothetically) increases processing time.</li>
</ul>
<h2>Pros</h2>
<ul>
<li>In spite of, or possibly because of issues I mentioned, extending WordPress is fairly simple and easy to pick up.</li>
<li>The documentation at <a href="http://wordpress.org" target="_blank">wordpress.org</a> is pretty great! On par with <a href="http://php.net" target="_blank">php.net</a>&#8216;s own documentation.</li>
<li>With such a large userbase, almost every plugin you could possibly want is already written for you.</li>
<li>It&#8217;s stable. It doesn&#8217;t go down randomly. It&#8217;s not buggy.</li>
</ul>
<p>Admittedly a lot of the shortcoming I found are based on a lot of assumptions and only a basic knowledge of WordPress. Also, I will concede that &#8220;your code is ugly&#8221; is a fairly superficial criticism that doesn&#8217;t inherently mean anything. So, in conclusion, I am not anti-wordpress. I like it as a very-extensible blogging platform, but I&#8217;m still a little skeptical about is pontential usefulness as a general-purpose CMS or some sort of website framework.</p>
<p>If you&#8217;re a wordpress guru, I&#8217;d like to hear you input. Tell me why I&#8217;m wrong.</p>
]]></content:encoded>
			<wfw:commentRss>http://ohryan.ca/blog/2011/01/31/wordpress-development-cons-pros/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Modern Mobile Redirect Using .htaccess</title>
		<link>http://ohryan.ca/blog/2011/01/21/modern-mobile-redirect-using-htaccess/</link>
		<comments>http://ohryan.ca/blog/2011/01/21/modern-mobile-redirect-using-htaccess/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 14:21:57 +0000</pubDate>
		<dc:creator>RyanN</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mobile browser]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rewrite rule]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://ohryan.ca/blog/?p=1202</guid>
		<description><![CDATA[The following set of rewrite rules will redirect all Android, Blackberry, iOS, Windows and WebOS devices to a specific mobile directory on your website. Additionally, it will redirect Google&#8217;s mobile crawler &#8211; according to Google search spam czar Matt Cutts this is perfectly acceptable and even somewhat encourage. Code snippet &#8211; Simple .htaccess Mobile Redirect [...]]]></description>
			<content:encoded><![CDATA[<p>The following set of rewrite rules will redirect all Android, Blackberry, iOS, Windows and WebOS devices to a specific mobile directory on your website. Additionally, it will redirect Google&#8217;s mobile crawler &#8211; <a href="http://www.youtube.com/watch?v=mY9h3G8Lv4k" target="_blank">according to Google search spam czar Matt Cutts this is perfectly acceptable and even somewhat encourage</a>.</p>
<div id="snipplr_embed_47652" class="snipplr_embed" style="overflow: auto;"><a href="http://snipplr.com/view/47652/simple-htaccess-mobile-redirect/">Code snippet &#8211; Simple .htaccess Mobile Redirect</a> on Snipplr</div>
<p><script src="http://snipplr.com/js/embed.js" type="text/javascript"></script><script src="http://snipplr.com/json/47652" type="text/javascript"></script></p>
<p>To implement these rules:</p>
<ol>
<li>Replace &#8220;mobiledirectoryhere&#8221; with the path to your mobile site. If your mobile site is located in a subdirectory, use the full URL (including &#8220;http://&#8221;) and you can omit the first RewriteCond.</li>
<li> Then copy &amp; paste the ruleset into the site&#8217;s .htaccess file or the main apache configuration.</li>
</ol>
<h3>Rationale</h3>
<p>Since the last time I wrote about mobile browser detection and redirection in 2009 the mobile device landscape has changed once again. Smartphones dominate the mobile browsing landscape and feature phones are almost not existant in server logs.</p>
<p>The <a href="http://ohryan.ca/blog/2009/02/18/revisiting-mobile-redirection-using-htaccess-rewrite-rules/" target="_blank">old redirection rules I posted</a> attempt to redirect every mobile phone under the sun. At this point in 2011, it&#8217;s probably safe to completely ignore ancient phones and simplify your Apache rules in the process.</p>
]]></content:encoded>
			<wfw:commentRss>http://ohryan.ca/blog/2011/01/21/modern-mobile-redirect-using-htaccess/feed/</wfw:commentRss>
		<slash:comments>77</slash:comments>
		</item>
		<item>
		<title>How To Detect Mobile Visitors Using .htaccess Rewrite Rules, Simplified</title>
		<link>http://ohryan.ca/blog/2010/04/10/how-to-detect-mobile-visitors-using-htaccess-rewrite-rules-simplified/</link>
		<comments>http://ohryan.ca/blog/2010/04/10/how-to-detect-mobile-visitors-using-htaccess-rewrite-rules-simplified/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 13:00:27 +0000</pubDate>
		<dc:creator>RyanN</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mobile browser]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rewrite rule]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://ohryan.ca/blog/?p=559</guid>
		<description><![CDATA[Since my original posts on mobile redirection in .htaccess files I&#8217;ve gotten some comments and emails asking for step-by-step guidance on exactly how to &#8220;install&#8221; these rules. I hope this post will answer some of those questions. Before you continue reading, if you have php installed on your server, you may want to consider Andy Moore&#8217;s php [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>Since my <a href="http://ohryan.ca/blog/2007/10/29/htaccess-mobile-browser-redirect/" target="_blank">original</a> <a href="http://ohryan.ca/blog/2009/02/18/revisiting-mobile-redirection-using-htaccess-rewrite-rules/" target="_blank">posts</a> on mobile redirection in .htaccess files I&#8217;ve gotten some comments and emails asking for step-by-step guidance on exactly how to &#8220;install&#8221; these rules. I hope this post will answer some of those questions.</p>
<p>Before you continue reading, if you have php installed on your server, you may want to consider <a href="http://detectmobilebrowsers.mobi/" target="_blank">Andy Moore&#8217;s php based detection solution</a>.</p>
<h3>The Basics</h3>
<p>First off, some basic requirements. You&#8217;ll need:</p>
<ul>
<li><strong>Apache/Linux Hosting</strong>. Microsoft&#8217;s IIS has a completely different method for handling this sort of thing.</li>
<li><strong>FTP access.</strong></li>
<li><a href="http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html" target="_blank"><strong>Apache mod_rewrite</strong></a><strong> enabled</strong>. Depending on the type of hosting you have, it may be difficult to determine if you have this module installed and it may be impossible to enable if you don&#8217;t. If the steps below simply don&#8217;t seem to work, there is a good chance you don&#8217;t have mod_rewrite installed. Ask your tech support.</li>
<li><strong>Mobile site in a subdirectory</strong>, eg. www.yourdomain.com/m/. This set of rules I&#8217;ve posted will not work with a mobile subdomain.</li>
</ul>
<h3>The Steps</h3>
<ol>
<li>Download <a href="http://ohryan.ca/blog/wp-content/uploads/mobilerules2.1.txt" target="_blank">mobilerules2.1.txt</a>.</li>
<li>Open the file in your favorite text editor, replace the 2 instances of &#8220;mobiledirectoryhere&#8221; (without quotes) with the directory name you are using for your mobile site. Save it.</li>
<li>Open FTP client, enable &#8216;view hidden files&#8217; &#8211; files beginning with a dot are hidden on linux. This option is typically buried in a &#8220;view&#8221; menu or something to that effect. Results may vary.</li>
<li>Navigate to your site&#8217;s webroot (probably &#8216;htdocs&#8217; or &#8216;www&#8217;).</li>
<li>
<ul>
<li>If there is already a .htaccess file present in the directory. Download it, open it in your favorite text editor. Copy &amp; paste the contents of<a href="http://ohryan.ca/blog/wp-content/uploads/mobilerules2.1.txt" target="_blank">mobilerules2.1.txt</a> into the file. Save it, upload it.</li>
<li>If there is no .htaccess file present. Upload <a href="http://ohryan.ca/blog/wp-content/uploads/mobilerules2.1.txt" target="_blank">mobilerules2.1.txt</a> as is, rename it to .htaccess.</li>
</ul>
</li>
<li>Your Done. Test it from a mobile device.</li>
</ol>
<p>If you have any questions please leave a comment.</p>
<p><strong>Note:</strong> This script treats all opera mini, iphone and android the same as other phones and browsers. Leave some comments if you&#8217;d like me to address this.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://ohryan.ca/blog/2010/04/10/how-to-detect-mobile-visitors-using-htaccess-rewrite-rules-simplified/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>DIGG: 4000% PERFORMANCE INCREASE BY SORTING IN PHP RATHER THAN MYSQL</title>
		<link>http://ohryan.ca/blog/2010/03/26/digg-4000-performance-increase-by-sorting-in-php-rather-than-mysql/</link>
		<comments>http://ohryan.ca/blog/2010/03/26/digg-4000-performance-increase-by-sorting-in-php-rather-than-mysql/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 20:37:27 +0000</pubDate>
		<dc:creator>RyanN</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[digg]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://ohryan.ca/blog/?p=573</guid>
		<description><![CDATA[To scale at Digg they followed a set of practices very similar to those used at eBay. No joins, no foreign key constraints (to scale writes), primary key look-ups only, limited range queries, and joins were done in memory. When implementing the comment feature a 4,000 percent increase in performance was created by sorting in [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>To scale at Digg they followed a set of practices very similar to those used at eBay. No joins, no foreign key constraints (to scale writes), primary key look-ups only, limited range queries, and joins were done in memory. When implementing the comment feature a 4,000 percent increase in performance was created by sorting in PHP instead of MySQL. All this effort required to make a relational database scale basically meant you were using a non-relational database anyway. So why not just use a non-relational database from the start?</p>
<p>[via <a href="http://highscalability.com/blog/2010/3/23/digg-4000-performance-increase-by-sorting-in-php-rather-than.html" target="_blank">High Scalability</a>]</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://ohryan.ca/blog/2010/03/26/digg-4000-performance-increase-by-sorting-in-php-rather-than-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To: Exclude Words Like &#8220;An, A, The&#8221; From Alphabetized MySQL ORDER</title>
		<link>http://ohryan.ca/blog/2009/07/17/how-to-exclude-words-like-an-a-the-from-alphabetized-mysql-order/</link>
		<comments>http://ohryan.ca/blog/2009/07/17/how-to-exclude-words-like-an-a-the-from-alphabetized-mysql-order/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 15:10:42 +0000</pubDate>
		<dc:creator>RyanN</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://ohryan.ca/blog/?p=419</guid>
		<description><![CDATA[When ordering lists of names or titles it&#8217;s sometimes desirable to exclude articles or other words from the order clause (eg. you want &#8220;The Burning Hell&#8221; to show up before &#8220;Great Lake Swimmers&#8221; in a list ordered by name). Early on in my career I must have assumed it was not possible and never bothered [...]]]></description>
			<content:encoded><![CDATA[<p>When ordering lists of names or titles it&#8217;s sometimes desirable to exclude articles or other words from the order clause (eg. you want &#8220;The Burning Hell&#8221; to show up before &#8220;Great Lake Swimmers&#8221; in a list ordered by name). Early on in my career I must have assumed it was not possible and never bothered to look into again because I don&#8217;t recall ever ordering a list like this.<br />
Anyways. Here&#8217;s how you do it:</p>
<p><code>SELECT name FROM artists ORDER BY TRIM( LEADING "a " FROM TRIM( LEADING "an " FROM TRIM( LEADING "the " FROM LOWER( name ) ) ) )</code></p>
<p><small><a href="http://ask.metafilter.com/52434/How-to-get-mySQL-to-ignore-A-An-amp-The-when-presenting-alphabetized-book-titles">[thanks metafilter]</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://ohryan.ca/blog/2009/07/17/how-to-exclude-words-like-an-a-the-from-alphabetized-mysql-order/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Even Google Makes Mistakes</title>
		<link>http://ohryan.ca/blog/2009/02/25/even-google-makes-mistakes/</link>
		<comments>http://ohryan.ca/blog/2009/02/25/even-google-makes-mistakes/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 18:31:44 +0000</pubDate>
		<dc:creator>RyanN</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://ohryan.ca/blog/?p=351</guid>
		<description><![CDATA[This is an expert from a Gmail Blog Post re: the recent gmail outage: Unexpected side effects of some new code that tries to keep data geographically close to its owner caused another data center in Europe to become overloaded, and that caused cascading problems from one data center to another. It took us about [...]]]></description>
			<content:encoded><![CDATA[<p>This is an expert from a <a href="http://gmailblog.blogspot.com/2009/02/update-on-todays-gmail-outage.html" target="_blank">Gmail Blog Post re: the recent gmail outage:</a></p>
<blockquote><p>Unexpected side effects of some new code that tries to keep data geographically close to its owner caused another data center in Europe to become overloaded, and that caused cascading problems from one data center to another. It took us about an hour to get it all back under control.</p></blockquote>
<p>This sounds exactly like the types of bugs I create. The fact that Google makes these sorts of mistakes, even though they do a lot more testing and have bigger teams, etc; makes me feel good about my programming skills.</p>
]]></content:encoded>
			<wfw:commentRss>http://ohryan.ca/blog/2009/02/25/even-google-makes-mistakes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Revisiting Mobile Redirection Using .htaccess ReWrite Rules</title>
		<link>http://ohryan.ca/blog/2009/02/18/revisiting-mobile-redirection-using-htaccess-rewrite-rules/</link>
		<comments>http://ohryan.ca/blog/2009/02/18/revisiting-mobile-redirection-using-htaccess-rewrite-rules/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 20:20:52 +0000</pubDate>
		<dc:creator>RyanN</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mobile browser]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rewrite rule]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://ohryan.ca/blog/?p=338</guid>
		<description><![CDATA[This article is out of date, check my latest code snippet here. Back in 2007 I wrote a post detailing a method for detecting and redirecting mobile browsers using .htaccess. Since then the mobile landscape has changed quite a bit: iPhone and Android have been released, the PDA market is all but dead and phones [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ohryan.ca/blog/2011/01/21/modern-mobile-redirect-using-htaccess/" style="color:red;font-size:18px">This article is out of date, check my latest code snippet here.</a><br />
Back in 2007 <a href="http://ohryan.ca/blog/2007/10/29/htaccess-mobile-browser-redirect/" target="_blank">I wrote a post detailing a method for detecting and redirecting mobile browsers using .htaccess</a>. Since then the mobile landscape has changed quite a bit: iPhone and Android have been released, the PDA market is all but dead and phones are better in general.</p>
<p>My original post was based on a PHP script by Andy Moore. It&#8217;s worth noting that he has continued to update his script and now has a fancy little generator to help you create a PHP based redirect ruleset. Check out <a href="http://detectmobilebrowsers.mobi/" target="_blank">detectmobilebrowsers.mobi</a> for more info.</p>
<p>His solution will probably work for a lot of applications, but there are 2 main reasons I prefer using Apache&#8217;s rewrite rules to redirect mobile browsers:<br />
<strong>1) </strong>Application independent. By putting the rules in the root .htaccess file you can easily redirect traffic across multiple directories, independent of any webapp that might or might not be running in those directories.<br />
<strong>2) </strong>Faster. Placing the rewrite rules in apache&#8217;s httpd.conf file is potentially faster, than running the regexp in a php script for every request.</p>
<p>Enough of that, here&#8217;s the updated ruleset.<br />
<code><br />
# don't apply the rules if you're already in the mobile directory, infintine loop<br />
# you'll want to test against the host if you're using a subdomain<br />
RewriteCond %{REQUEST_URI} !^/mobiledirectoryhere/.*$<br />
# if the browser accepts these mime-types, it's definitely mobile, or pretending to be<br />
RewriteCond %{HTTP_ACCEPT} "text\/vnd\.wap\.wml|application\/vnd\.wap\.xhtml\+xml" [NC,OR]<br />
# a bunch of user agent tests<br />
RewriteCond %{HTTP_USER_AGENT} "sony|symbian|nokia|samsung|mobile|windows ce|epoc|opera" [NC,OR]<br />
RewriteCond %{HTTP_USER_AGENT} "mini|nitro|j2me|midp-|cldc-|netfront|mot|up\.browser|up\.link|audiovox"[NC,OR]<br />
RewriteCond %{HTTP_USER_AGENT} "blackberry|ericsson,|panasonic|philips|sanyo|sharp|sie-"[NC,OR]<br />
RewriteCond %{HTTP_USER_AGENT} "portalmmm|blazer|avantgo|danger|palm|series60|palmsource|pocketpc"[NC,OR]<br />
RewriteCond %{HTTP_USER_AGENT} "smartphone|rover|ipaq|au-mic,|alcatel|ericy|vodafone\/|wap1\.|wap2\.|iPhone|android"[NC]<br />
# put your rewrite rules here<br />
</code></p>
<p><a href="/blog/wp-content/uploads/mobilerules20.txt">Text Version</a></p>
<p>As you can see, the user agent list is a fair bit less verbose. I&#8217;ve been testing the ruleset on a very busy site, based on over 250k mobile site hits this set of rules is causing a lot fewer false positives, while not missing any significant number of mobile browsers.</p>
]]></content:encoded>
			<wfw:commentRss>http://ohryan.ca/blog/2009/02/18/revisiting-mobile-redirection-using-htaccess-rewrite-rules/feed/</wfw:commentRss>
		<slash:comments>66</slash:comments>
		</item>
		<item>
		<title>This is why webprogramming sucks&#8230;</title>
		<link>http://ohryan.ca/blog/2007/08/15/this-is-why-webprogramming-sucks/</link>
		<comments>http://ohryan.ca/blog/2007/08/15/this-is-why-webprogramming-sucks/#comments</comments>
		<pubDate>Wed, 15 Aug 2007 16:01:11 +0000</pubDate>
		<dc:creator>RyanN</dc:creator>
				<category><![CDATA[Funny]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[comic]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://ohryan.ca/blog/2007/08/15/this-is-why-webprogramming-sucks/</guid>
		<description><![CDATA[Run-time languages don&#8217;t have compilers.]]></description>
			<content:encoded><![CDATA[<p><a href="http://xkcd.com/303/"><img src="http://imgs.xkcd.com/comics/compiling.png" alt="" width="413" height="360" /></a></p>
<p>Run-time languages don&#8217;t have compilers.</p>
]]></content:encoded>
			<wfw:commentRss>http://ohryan.ca/blog/2007/08/15/this-is-why-webprogramming-sucks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

