<?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>A programmer&#039;s rants &#187; Code</title>
	<atom:link href="http://blog.andremedeiros.info/topics/code/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.andremedeiros.info</link>
	<description>Random rants about code and life.</description>
	<lastBuildDate>Fri, 25 Sep 2009 10:40:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>It has begun&#8230;</title>
		<link>http://blog.andremedeiros.info/2009/06/it-has-begun/</link>
		<comments>http://blog.andremedeiros.info/2009/06/it-has-begun/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 01:23:06 +0000</pubDate>
		<dc:creator>changelog</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[RPG]]></category>

		<guid isPermaLink="false">http://blog.andremedeiros.info/?p=37</guid>
		<description><![CDATA[More soon&#8230;]]></description>
			<content:encoded><![CDATA[<div id="attachment_38" class="wp-caption aligncenter" style="width: 210px"><a href="http://blog.andremedeiros.info/wp-content/uploads/2009/06/WorldMap.png"><img src="http://blog.andremedeiros.info/wp-content/uploads/2009/06/WorldMap-200x300.png" alt="World Map" title="World Map" width="200" height="300" class="size-medium wp-image-38" /></a><p class="wp-caption-text">World Map</p></div>
<p>More soon&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andremedeiros.info/2009/06/it-has-begun/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MonoDevelop 2.0 released</title>
		<link>http://blog.andremedeiros.info/2009/03/monodevelop-20-released/</link>
		<comments>http://blog.andremedeiros.info/2009/03/monodevelop-20-released/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 21:54:28 +0000</pubDate>
		<dc:creator>changelog</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[mono]]></category>
		<category><![CDATA[monodevelop]]></category>
		<category><![CDATA[oss]]></category>

		<guid isPermaLink="false">http://blog.andremedeiros.info/?p=34</guid>
		<description><![CDATA[Just a quick note to say that the MonoDevelop has released it&#8217;s second version. Go download it and check out what&#8217;s new. Mac OS X users still have to wait for the native build to be online, which will be what my next post is based about]]></description>
			<content:encoded><![CDATA[<p>Just a quick note to say that the MonoDevelop has released it&#8217;s second version. <a href="http://www.monodevelop.org/">Go download it</a> and <a href="http://www.monodevelop.org/Download/MonoDevelop_2.0_Released">check out what&#8217;s new</a>.</p>
<p>Mac OS X users still have to wait for the native build to be online, which will be what my next post is based about <img src='http://blog.andremedeiros.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andremedeiros.info/2009/03/monodevelop-20-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learning a new programming language</title>
		<link>http://blog.andremedeiros.info/2008/07/learning-a-new-programming-language/</link>
		<comments>http://blog.andremedeiros.info/2008/07/learning-a-new-programming-language/#comments</comments>
		<pubDate>Fri, 04 Jul 2008 11:28:25 +0000</pubDate>
		<dc:creator>changelog</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[brainfuck]]></category>
		<category><![CDATA[compiler]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[lolcats]]></category>
		<category><![CDATA[lolcode]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://blog.andremedeiros.info/?p=8</guid>
		<description><![CDATA[It&#8217;s common sense in the programming circle that programmers should make an effort to learn a new language every year. Some make it their New Year&#8217;s resolution, some just do it for the fun of it, others do it to enrich their experience and their CV. So, today, I decided to grab a new language [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s common sense in the programming circle that programmers should make an effort to learn a new language every year. Some make it their New Year&#8217;s resolution, some just do it for the fun of it, others do it to enrich their experience and their CV. So, today, I decided to grab a new language and stick with it until I <b>MASTER</b> the damn thing. I only had a requirement before choosing it: <b>it had to be fun!</b></p>
<p>So, what language did I choose? None other than <a href="http://lolcode.com/" title="LOLCode">LOLCode</a>.</p>
<p>I know what&#8217;s going through your mind now. &#8220;Why the eff is this guy even thinking about learning a new language?&#8221;, &#8220;useless&#8221;, or even &#8220;OH HAY I CAN HAS CODEZ?&#8221;. There&#8217;s a reason for that.</p>
<p>I tend to browse <a href="http://icanhascheezburger.com/">lolcats</a> whenever I need a bit of <a href="http://icanhascheezburger.files.wordpress.com/2008/07/funny-pictures-little-kitten-thinks-he-can.jpg">extra motivation</a>, <a href="http://icanhascheezburger.files.wordpress.com/2008/02/funny-pictures-baboon-butt-heart.jpg">romance</a>, <a href="http://icanhascheezburger.files.wordpress.com/2007/05/i-play-for-my-cheezburger.jpg">feeding</a> or even <a href="http://icanhascheezburger.files.wordpress.com/2007/11/funny-pictures-disco-fever-cat.jpg">inspiration</a>. So, whenever I look at bits of code that read:</p>
<div class="geshi no lolcode">
<ol>
<li class="li1">
<div class="de1">HAI
</div>
</li>
<li class="li1">
<div class="de1">CAN HAS STDIO?
</div>
</li>
<li class="li1">
<div class="de1">VISIBLE &quot;HAI WORLD!&quot;
</div>
</li>
<li class="li1">
<div class="de1">KTHXBYE</div>
</li>
</ol>
</div>
<p>or even</p>
<div class="geshi no lolcode">
<ol>
<li class="li1">
<div class="de1">ON CATURDAY
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;IM IN YR BED
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; I IZ SLEEPIN!!10
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; VISIBLE &quot;Z!&quot;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;KTHX
</div>
</li>
<li class="li1">
<div class="de1">KTHXBYE</div>
</li>
</ol>
</div>
<p>I can&#8217;t stop thinking that it&#8217;s <b>PURE GENIUS</b> (right before bursting into tears of laughing so hard). So, for starters, I&#8217;m going to try to understand a Brainfuck compiler written in LOLCode. Want to tag along? <img src='http://blog.andremedeiros.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<div class="geshi no lolcode">
<div class="head">Found at <a href="http://forum.lolcode.com/viewtopic.php?id=51">http://forum.lolcode.com/viewtopic.php?id=51</a></div>
<ol>
<li class="li1">
<div class="de1">HAI
</div>
</li>
<li class="li1">
<div class="de1">BTW This is a BrainFuck interpreter written in LOLCode
</div>
</li>
<li class="li1">
<div class="de1">BTW It accepts as input a BF program, followed by a &quot;!&quot;, followed &nbsp;by any input to the BF program.
</div>
</li>
<li class="li1">
<div class="de1">BTW Since BrainFuck is turing-complete, this proves that LOLCode is too
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">I HAS A INSTRUCTIONS &nbsp; &nbsp;BTW Array for BF instructions
</div>
</li>
<li class="li1">
<div class="de1">I HAS A IPTR &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BTW Pointer to first empty element in INSTRUCTIONS
</div>
</li>
<li class="li1">
<div class="de1">IPTR R 0
</div>
</li>
<li class="li1">
<div class="de1">I HAS A LOOPZ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BTW Array of loop start/end addresses
</div>
</li>
<li class="li1">
<div class="de1">I HAS A LOOPSTACKZ &nbsp; &nbsp; &nbsp; &nbsp;BTW Loop stack for building the above two
</div>
</li>
<li class="li1">
<div class="de1">I HAS A LSPTR &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BTW Pointer to first empty element of LOOPSTACKZ
</div>
</li>
<li class="li1">
<div class="de1">LSPTR R 0
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">BTW Read in BF instructions, terminated with &quot;!&quot;
</div>
</li>
<li class="li1">
<div class="de1">IM IN YR CODE
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; GIMMEH IPTR IN MAH INSTRUCTIONS
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; BOTH SAEM IPTR IN MAH INSTRUCTIONS AN &quot;[&quot;, O RLY?
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; YA RLY
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; LSPTR IN MAH LOOPSTACKZ R IPTR
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; LSPTR R SUM OF LSPTR AN 1
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; OIC
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; BOTH SAEM IPTR IN MAH INSTRUCTIONS AN &quot;]&quot;, O RLY?
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; YA RLY
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; I HAS A STARTPTR
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; LSPTR R DIFF OF LSPTR AN 1
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; STARTPTR R LSPTR IN MAH LOOPSTACKZ
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; STARTPTR IN MAH LOOPZ R IPTR
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; IPTR IN MAH LOOPZ R STARTPTR
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; OIC
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; BOTH SAEM IPTR IN MAH INSTRUCTIONS AN &quot;!&quot;, O RLY?
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; YA RLY
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; GTFO
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; NO WAI
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; IPTR R SUM OF IPTR AN 1
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; OIC
</div>
</li>
<li class="li1">
<div class="de1">IM OUTTA YR CODE
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">BTW Variables for BF&#39;s tape
</div>
</li>
<li class="li1">
<div class="de1">I HAS A LTAPE
</div>
</li>
<li class="li1">
<div class="de1">I HAS A RTAPE
</div>
</li>
<li class="li1">
<div class="de1">I HAS A LPTR
</div>
</li>
<li class="li1">
<div class="de1">LPTR R 0
</div>
</li>
<li class="li1">
<div class="de1">I HAS A RPTR
</div>
</li>
<li class="li1">
<div class="de1">RPTR R 0
</div>
</li>
<li class="li1">
<div class="de1">I HAS A CELL
</div>
</li>
<li class="li1">
<div class="de1">CELL R 0
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">BTW Reset instruction pointer to start
</div>
</li>
<li class="li1">
<div class="de1">IPTR R 0
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">BTW Start interpreting
</div>
</li>
<li class="li1">
<div class="de1">IM IN YR LOOP
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; I HAS A THING
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; THING R IPTR IN MAH INSTRUCTIONS
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; BTW Move tape head right
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; BOTH SAEM THING AN &quot;&gt;&quot;, O RLY?
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; YA RLY
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; LPTR IN MAH LTAPE R CELL
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; LPTR R SUM OF LPTR AN 1
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; BOTH SAEM RPTR AN 0, O RLY?
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; YA RLY
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CELL R 0
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; NO WAI
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RPTR R DIFF OF RPTR AN 1
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CELL R RPTR IN MAH RTAPE
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; OIC
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; OIC
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; BTW Move tape head left
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; BOTH SAEM THING AN &quot;&lt;&quot;, O RLY?
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; YA RLY
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; RPTR IN MAH RTAPE R CELL
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; RPTR R SUM OF RPTR AN 1
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; BOTH SAEM LPTR AN 0, O RLY?
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; YA RLY
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CELL R 0
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; NO WAI
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LPTR R DIFF OF LPTR AN 1
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CELL R LPTR IN MAH LTAPE
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; OIC
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; OIC
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; BTW Increment
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; BOTH SAEM THING AN &quot;+&quot;, O RLY?
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; YA RLY
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; CELL R SUM OF CELL AN 1
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; OIC
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; BTW Decrement
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; BOTH SAEM THING AN &quot;-&quot;, O RLY?
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; YA RLY
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; CELL R DIFF OF CELL AN 1
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; OIC
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; BTW Output produces numbers instead of ASCII characters
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; BOTH SAEM THING AN &quot;.&quot;, O RLY?
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; YA RLY
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; VISIBLE CELL!
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; VISIBLE &quot; &quot;!
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; OIC
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; BTW Input doesn&#39;t work because we can&#39;t convert characters to integers
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; BTW Oh well, it doesn&#39;t stop it being turing complete
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; BTW Start of loop
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; BOTH OF BOTH SAEM THING AN &quot;[&quot; AN BOTH SAEM CELL AN 0, O RLY?
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; YA RLY
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; IPTR R IPTR IN MAH LOOPZ
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; OIC
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; BTW End of loop
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; BOTH OF BOTH SAEM THING AN &quot;]&quot; AN DIFFRINT CELL AN 0, O RLY?
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; YA RLY
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; IPTR R IPTR IN MAH LOOPZ
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; OIC
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; BTW End of program!
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; BOTH SAEM THING AN &quot;!&quot;, O RLY?
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; YA RLY
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; GTFO
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; OIC
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; IPTR R SUM OF IPTR AN 1
</div>
</li>
<li class="li1">
<div class="de1">IM OUTTA YR LOOP
</div>
</li>
<li class="li1">
<div class="de1">KTHXBYE</div>
</li>
</ol>
</div>
<p>Fun times await.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andremedeiros.info/2008/07/learning-a-new-programming-language/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to build your on-demand video site with PHP</title>
		<link>http://blog.andremedeiros.info/2008/06/how-to-build-your-on-demand-video-site-with-php/</link>
		<comments>http://blog.andremedeiros.info/2008/06/how-to-build-your-on-demand-video-site-with-php/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 15:32:03 +0000</pubDate>
		<dc:creator>changelog</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[ibm]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blog.andremedeiros.info/?p=5</guid>
		<description><![CDATA[Browsing DZone today I found an interesting article from IBM&#8217;s developerWorks site, which supposedly teaches you how to build an on-demand video site with CakePHP. My first thought was that, being Belacena built with the same technology, I could learn one thing or two and make it run 10x as fast (OK, maybe not, but [...]]]></description>
			<content:encoded><![CDATA[<p>Browsing <a href="http://www.dzone.com/">DZone</a> today I found an interesting article from IBM&#8217;s developerWorks site, which supposedly teaches you how to build an on-demand video site with CakePHP.</p>
<p>My first thought was that, being <a href="http://www.belacena.com/">Belacena</a> built with the same technology, I could learn one thing or two and make it run 10x as fast (OK, maybe not, but you get the point). So, I signed in (AKA got a user and password from <a href="http://www.bugmenot.com/view/ibm.com">BugMeNot</a>), and started reading part 2 (part 1 covers the basics about video optimization for the web, creating the database tables, and extracting CakePHP). Let&#8217;s just say I was disappointed, because I have big expectations on everything that comes from IBM.</p>
<p>So, in sum, their 3 part tutorial teaches how to scaffold in CakePHP, tweak the views a bit, and that&#8217;s pretty much it. You can see the resulting site <a href="http://tv.awesomeville.us/users/login">here</a>. If you feel that article is worth reading, you can start <a href="http://www.ibm.com/developerworks/edu/os-dw-os-php-ondemvideo1.html?S_TACT=105AGX44&#038;S_CMP=EDU">here</a>.</p>
<p>If you have any suggestions on more advanced topics, let me know, and I&#8217;ll consider writing about it.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andremedeiros.info/2008/06/how-to-build-your-on-demand-video-site-with-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rails, migrations and validations</title>
		<link>http://blog.andremedeiros.info/2008/05/rails-migrations-and-validations/</link>
		<comments>http://blog.andremedeiros.info/2008/05/rails-migrations-and-validations/#comments</comments>
		<pubDate>Fri, 09 May 2008 18:05:19 +0000</pubDate>
		<dc:creator>changelog</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[activerecord]]></category>
		<category><![CDATA[portugal]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[validations]]></category>

		<guid isPermaLink="false">http://blog.andremedeiros.info/?p=3</guid>
		<description><![CDATA[Well, it was a busy day for me in Ruby on Rails land. After picking up on a few new requirements for a project I&#8217;m working on (Agile Development rocks eh?), I&#8217;ve decided to refactor a lot of the existing codebase to make it a bit cleaner and, while I was at it, migrate the [...]]]></description>
			<content:encoded><![CDATA[<p>Well, it was a busy day for me in Ruby on Rails land. After picking up on a few new requirements for a project I&#8217;m working on (Agile Development rocks eh?), I&#8217;ve decided to refactor a lot of the existing codebase to make it a bit cleaner and, while I was at it, migrate the project to Rails 2. It wasn&#8217;t hard or very time consuming, thanks to <a href="http://www.slashdotdash.net/articles/2007/12/03/rails-2-upgrade-notes" target="_blank">Ben&#8217;s tips</a>, since it took me about 20 minutes to go through the offending lines.</p>
<p>One of the things I was able to extract from that refactoring was validations. Some models have to validate data that can&#8217;t be validated by a simple regular expression, and since these validations are specific in Portugal, I thought I&#8217;d share them with the portuguese Ruby on Rails developers. You can grab them following the link in the end of the post. After dropping the file on your project&#8217;s <code>lib</code> folder, all you have to do is add the following line to your <code>environment.rb</code> file:</p>
<div class="geshi no ruby">
<div class="head">RAILS_ROOT/config/environment.rb</div>
<ol>
<li class="li1">
<div class="de1"><span class="kw3">require</span> <span class="st0">&#39;validations&#39;</span></div>
</li>
</ol>
</div>
<p>And you&#8217;ll be ready to go. Documentation is included in the file (in Portuguese). Feedback is appreciated.</p>
<p><a title="Portugal-specific ActiveRecord validations' download link" href="http://blog.andremedeiros.info/upload/code/validations.rb">Download ActiveRecord validators for Portugal</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andremedeiros.info/2008/05/rails-migrations-and-validations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

