<?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"
	>

<channel>
	<title>A programmer's rants</title>
	<atom:link href="http://blog.andremedeiros.info/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.andremedeiros.info</link>
	<description>Random rants about code and life.</description>
	<pubDate>Wed, 12 Nov 2008 12:15:40 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<item>
		<title>Star Wars a capella</title>
		<link>http://blog.andremedeiros.info/2008/11/star-wars-a-capella/</link>
		<comments>http://blog.andremedeiros.info/2008/11/star-wars-a-capella/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 12:14:06 +0000</pubDate>
		<dc:creator>changelog</dc:creator>
		
		<category><![CDATA[Random]]></category>

		<category><![CDATA[et]]></category>

		<category><![CDATA[geekness]]></category>

		<category><![CDATA[indiana jones]]></category>

		<category><![CDATA[jaws]]></category>

		<category><![CDATA[john williams]]></category>

		<category><![CDATA[star wars]]></category>

		<guid isPermaLink="false">http://blog.andremedeiros.info/?p=26</guid>
		<description><![CDATA[Just found this video on Youtube. Apparently it&#8217;s been featured a few days ago, but in my opinion it should have stayed there for a few weeks, minimum  

Lyrics here.
PS: John Williams is the man!
]]></description>
			<content:encoded><![CDATA[<p>Just found this video on Youtube. Apparently it&#8217;s been featured a few days ago, but in my opinion it should have stayed there for a few weeks, minimum <img src='http://blog.andremedeiros.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p align="center"><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/lk5_OSsawz4&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/lk5_OSsawz4&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>Lyrics <a href="http://www.moosebutter.com/lyrics.php?song=3">here</a>.</p>
<p>PS: John Williams is the man!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andremedeiros.info/2008/11/star-wars-a-capella/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Warehouse installation tutorial</title>
		<link>http://blog.andremedeiros.info/2008/10/warehouse-installation-tutorial/</link>
		<comments>http://blog.andremedeiros.info/2008/10/warehouse-installation-tutorial/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 00:28:39 +0000</pubDate>
		<dc:creator>changelog</dc:creator>
		
		<category><![CDATA[Tutorials]]></category>

		<category><![CDATA[active reload]]></category>

		<category><![CDATA[git]]></category>

		<category><![CDATA[justin palmer]]></category>

		<category><![CDATA[open-source]]></category>

		<category><![CDATA[rails]]></category>

		<category><![CDATA[rick olson]]></category>

		<category><![CDATA[server]]></category>

		<category><![CDATA[svn]]></category>

		<category><![CDATA[tutorial]]></category>

		<category><![CDATA[ubuntu]]></category>

		<category><![CDATA[warehouse]]></category>

		<guid isPermaLink="false">http://blog.andremedeiros.info/?p=20</guid>
		<description><![CDATA[Today I got to the office, and the first thing that popped into my eyes when I opened Twitterrific was this:
]]></description>
			<content:encoded><![CDATA[<p>Today I got to the office, and the first thing that popped into my eyes when I opened Twitterrific was this:</p>
<p><a href="http://blog.andremedeiros.info/wp-content/uploads/2008/10/twitterrific.png"><img src="http://blog.andremedeiros.info/wp-content/uploads/2008/10/twitterrific.png" alt="Rick Olson announces that Warehouse goes open-source" " title="Rick Olson announces that Warehouse goes open-source" width="433" height="349" class="aligncenter size-full wp-image-21" /></a></p>
<p><a href="http://techno-weenie.net/">Rick Olson</a> <a href="http://github.com/entp/warehouse/tree/master">announcing that Warehouse is now open-source</a>. Damn, it HAS to be Christmas! I have always loved the products that <a href="http://activereload.net/">Active Reload</a> builds, mostly because they follow the &#8220;do more with less&#8221; and &#8220;keep it simple stupid&#8221; principles, but also because their web-applications look awesome, thanks to <a href="http://alternateidea.com/">Justin Palmer</a>, the self-taught and self-proclaimed Design Ninja (I&#8217;ll have to agree with him on this one).</p>
<p>I have always wanted to give Warehouse a spin on my projects (professional and personal), but never got around to buy it because I was afraid it could be of no use for me (you guys have to find a way to distribute trials or something). Now that it&#8217;s open-source, I am going to try and provide a guide on how to install it.</p>
<p><span id="more-20"></span></p>
<h3>Step 1. Requirements</h3>
<p>Since I don&#8217;t have a spare computer lying around, I&#8217;m going to create a virtual machine to accomplish the task. I&#8217;ll try to build a dedicated SVN server, using <a href="http://www.ubuntu.com/getubuntu/download">Ubuntu Server</a> (you can use anything else that&#8217;s <a href="http://www.debian.org/misc/children-distros">Debian based</a>) so all the dependencies will be installed using <code>apt-get</code> <img src='http://blog.andremedeiros.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> Please take note that this is not a solution to be used in a production environment. It is most suited for &#8220;evaluation&#8221; purposes.</p>
<p>As for what virtualization software is concerned, there are several options:</p>
<ul>
<li><strong>Windows:</strong>
<ol>
<li><a href="http://www.virtualbox.org/">VirtualBox</a> (free, as in beer or open-source)</li>
<li><a href="http://www.vmware.com/products/server/">VMWare Server</a> (free, as in beer)</li>
<li><a href="http://www.vmware.com/products/ws/">VMWare Workstation</a> (commercial, starts at $189.00)</li>
<li><a href="http://www.microsoft.com/windows/products/winfamily/virtualpc/default.mspx">Microsoft Virtual PC</a> (free, as in beer, has a few quirks with Linux as guest)</li>
</ol>
</li>
<li><strong>Linux:</strong>
<ol>
<li><a href="http://www.virtualbox.org/">VirtualBox</a> (free, as in beer or open-source)</li>
<li><a href="http://www.vmware.com/products/server/">VMWare Server</a> (free, as in beer)</li>
</ol>
</li>
<li><strong>Mac OS X:</strong>
<ol>
<li><a href="http://www.virtualbox.org/">VirtualBox</a> (free, as in beer or open-source)</li>
<li><a href="http://www.vmware.com/products/fusion/">VMWare Fusion</a> (commercial, starts at $79.99, <strong>well worth the money, ahem&#8230;</strong>)</li>
<li><a href="http://www.parallels.com/">Parallels Desktop</a> (commercial, starts at $79.99)</li>
</ol>
</li>
</ul>
<p>So, go ahead and pick one, create a new virtual machine and install Ubuntu Server on that (any of these virtualization solutions can mount an ISO image, which you will have to download from Ubuntu&#8217;s website). I chose <code>svnserver</code> for the server hostname, and <code>developer</code> for the default username.</p>
<h3>Step 2. Creating the user</h3>
<p>Next we need to create a user for our Warehouse installation. The following commands create the <code>warehouse</code> user and add it to the <code>www-data</code> group (the same group Apache runs with by default).</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">sudo</span> adduser warehouse</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sudo</span> adduser warehouse www-data</div>
</li>
</ol>
</div>
<h3>Step 3. Getting all the dependencies in place</h3>
<p>After creating the user, you&#8217;ll have to add a repository so that you can apt-get the Phusion Passenger Apache module. Edit <code>/etc/apt/sources.list</code> and add the following lines in the end:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="co0"># Phusion Passenger for Apache</span></div>
</li>
<li class="li1">
<div class="de1">deb http:<span class="sy0">//</span>apt.brightbox.net hardy main</div>
</li>
</ol>
</div>
<p>Afterwards, run the following command in order to update your apt repositories and install all the requirements to run Warehouse:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">sudo</span> apt-get update</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sudo</span> apt-get <span class="kw2">install</span> git-core subversion subversion-tools ruby libsvn-ruby libmysql-ruby libopenssl-ruby ruby1<span class="nu0">.8</span>-dev rdoc ri mysql-server mysql-client apache2 libapache2-mod-passenger</div>
</li>
</ol>
</div>
<p><strong>NB: The Passenger module package might have a bug where the <code>mod_passenger.so</code> is extracted to the root. If that happens, issue the following command:</strong></p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">sudo</span> <span class="kw2">mv</span> <span class="sy0">/</span>mod_passenger.so <span class="sy0">/</span>usr<span class="sy0">/</span>lib<span class="sy0">/</span>apache2<span class="sy0">/</span>modules<span class="sy0">/</span></div>
</li>
</ol>
</div>
<p>Install Rails 2.0.2, Rake and Erubis</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">sudo</span> gem <span class="kw2">install</span> rails -<span class="re2">v=</span><span class="nu0">2.0</span><span class="nu0">.2</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sudo</span> gem <span class="kw2">install</span> rake</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sudo</span> gem <span class="kw2">install</span> erubis</div>
</li>
</ol>
</div>
<p>Create a mysql user and databases for Warehouse:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">mysqladmin create warehouse -h localhost -u root -p</div>
</li>
<li class="li1">
<div class="de1">mysqladmin create warehouse_development -h localhost -u root -p</div>
</li>
<li class="li1">
<div class="de1">mysqladmin create warehouse_test -h localhost -u root -p</div>
</li>
</ol>
</div>
<p>To add a new user and give it permission to those databases, run these commands inside a mysql shell:</p>
<div class="geshi no sql">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">GRANT</span> <span class="kw1">ALL</span> PRIVILEGES <span class="kw1">ON</span> warehouse.* <span class="kw1">TO</span> <span class="st0">&#39;warehouse&#39;</span>@<span class="st0">&#39;localhost&#39;</span> <span class="kw1">IDENTIFIED</span> <span class="kw1">BY</span> <span class="st0">&#39;warehouse_user_password&#39;</span> <span class="kw1">WITH</span> <span class="kw1">GRANT</span> <span class="kw1">OPTION</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">GRANT</span> <span class="kw1">ALL</span> PRIVILEGES <span class="kw1">ON</span> warehouse_development.* <span class="kw1">TO</span> <span class="st0">&#39;warehouse&#39;</span>@<span class="st0">&#39;localhost&#39;</span> <span class="kw1">IDENTIFIED</span> <span class="kw1">BY</span> <span class="st0">&#39;warehouse_user_password&#39;</span> <span class="kw1">WITH</span> <span class="kw1">GRANT</span> <span class="kw1">OPTION</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">GRANT</span> <span class="kw1">ALL</span> PRIVILEGES <span class="kw1">ON</span> warehouse_test.* <span class="kw1">TO</span> <span class="st0">&#39;warehouse&#39;</span>@<span class="st0">&#39;localhost&#39;</span> <span class="kw1">IDENTIFIED</span> <span class="kw1">BY</span> <span class="st0">&#39;warehouse_user_password&#39;</span> <span class="kw1">WITH</span> <span class="kw1">GRANT</span> <span class="kw1">OPTION</span>;</div>
</li>
</ol>
</div>
<h3>Step 4. Creating first SVN repository and gitting Warehouse</h3>
<p>
Login as <code>warehouse</code>. First off, we&#8217;ll create our first repository that will hold your project. Here&#8217;s how to do it:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">mkdir</span> svn</div>
</li>
<li class="li1">
<div class="de1">svnadmin create svn<span class="sy0">/</span>topsecretproject</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">chown</span> -R :www-data svn</div>
</li>
</ol>
</div>
<p>We&#8217;ll assume <code>topsecretproject</code> is your project name. Next, inside your home directory, issue the following commands:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">git clone git:<span class="sy0">//</span>github.com<span class="sy0">/</span>entp<span class="sy0">/</span>warehouse.git www</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">chown</span> -R :www-data www</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">chmod</span> -R <span class="nu0">775</span> www</div>
</li>
</ol>
</div>
<p>This will checkout the Warehouse code into <code>/home/warehouse/www/</code>. You can also <a href="http://github.com/entp/warehouse/tarball/master">get a tarball</a>, but using this method is easier if you want to stay on the edge (I hear Rick is adding git support into Warehouse). It will also make the directory readable by the <code>www-data</code> group.<br />
Next, we need to configure the database and run the first migration:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw3">cd</span> www</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">cp</span> config<span class="sy0">/</span>database.sample.yml config<span class="sy0">/</span>database.yml</div>
</li>
</ol>
</div>
<p>Edit database.yml and put in the correct values. After that, head back to <code>/home/warehouse/www/</code> and run:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">mkdir</span> log </div>
</li>
<li class="li1">
<div class="de1">rake tmp:create</div>
</li>
<li class="li1">
<div class="de1"><span class="re2">RAILS_ENV=</span>production rake db:schema:load</div>
</li>
</ol>
</div>
<h3>Step 5. Creating the Apache virtualhost</h3>
<p>
Log in again as the <code>developer</code> user, and cd to <code>/etc/apache2/sites-available/</code>. In that directory, create a file named <code>warehouse-site</code> with the following content:</p>
<div class="geshi no apache">
<ol>
<li class="li1">
<div class="de1">&lt;VirtualHost *:<span class="nu0">80</span>&gt;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">DocumentRoot</span> /home/warehouse/www/public</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">ErrorLog</span> /var/log/apache2/warehouse_error.log</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">LogLevel</span> warn</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">CustomLog</span> /var/log/apache2/warehouse_access.log combined</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; RailsEnv production</div>
</li>
<li class="li1">
<div class="de1">&lt;/VirtualHost&gt;</div>
</li>
</ol>
</div>
<p>Finally, issue the following commands to enable the site you just configured, remove the default one, activate the rewrite module and restart apache:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">sudo</span> <span class="kw2">ln</span> -s <span class="sy0">/</span>etc<span class="sy0">/</span>apache2<span class="sy0">/</span>sites-available<span class="sy0">/</span>warehouse-site <span class="sy0">/</span>etc<span class="sy0">/</span>apache2<span class="sy0">/</span>sites-enabled<span class="sy0">/</span>warehouse-site</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sudo</span> <span class="kw2">rm</span> <span class="sy0">/</span>etc<span class="sy0">/</span>apache2<span class="sy0">/</span>sites-enabled<span class="sy0">/</span><span class="nu0">000</span>-default</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sudo</span> a2enmod rewrite</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sudo</span> apache2ctl restart</div>
</li>
</ol>
</div>
<p>Now all you have to do is to open a browser window and type <code>http://&lt;your_virtual_machine_ip&gt;/install</code> in the URL and you&#8217;ll be up and running. I recommend, however, that you define the site with a <code>ServerName</code>, so that the sub-domains work properly.
</p>
<h3>Step 6. Giving your svn server a domain name and accessing it</h3>
<p>
Edit <code>/etc/apache2/sites-available/warehouse-site</code> and, right after the <code>&lt;VirtualHost&gt;</code> tag, add the following line:</p>
<div class="geshi no apache">
<ol>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">ServerName</span> svnserver.dev</div>
</li>
</ol>
</div>
<p>You can change <code>svnserver.dev</code> to whatever you like. Afterwards, add that host to your hosts file. Here&#8217;s how to do it in <a href="http://www.mvps.org/winhelp2002/hostsfaq.htm#Editor">Windows</a>, <a href="http://www.lockergnome.com/linux/2004/10/20/using-the-etchosts-file/">Linux</a> or <a href="http://www.mactips.org/archives/2007/07/19/modify-hosts-file-change-your-local-dns/">Mac OS X</a>. If all goes well, enter the new URL (including <code>/install</code> in the end) in your browser, and you should be seeing something like this:
</p>
<p><a href="http://blog.andremedeiros.info/wp-content/uploads/2008/10/safari.png"><img src="http://blog.andremedeiros.info/wp-content/uploads/2008/10/safari-300x243.png" alt="Warehouse installation screen" title="Warehouse installation screen" width="300" height="243" class="aligncenter size-medium wp-image-22" /></a></p>
<p>In doubt, fill the &#8220;Absolute path to repository&#8221; with the following value:<br />
<code>/home/warehouse/svn/topsecretproject/</code>, where <code>topsecretproject</code> is the repository name you&#8217;ve created in step 4. Also, after completing the installation, you might get an URL like <code>http://topsecretproject.svnserver.dev/</code>. In that case, you&#8217;ll have to go back to your hosts file and add another entry with that hostname.</p>
<h3>Wrapping up</h3>
<p>
<a href="http://blog.andremedeiros.info/wp-content/uploads/2008/10/safariscreensnapz012.png"><img src="http://blog.andremedeiros.info/wp-content/uploads/2008/10/safariscreensnapz012-300x203.png" alt="" title="Warehouse up and running" width="300" height="203" class="aligncenter size-medium wp-image-23" /></a><br />
There you have it. Warehouse up and running syncing your first (and empty) repository. To serve it through apache (ie. enable you to make commits outside of the virtual machine), check <a href="http://www.geocities.com/arhuaco/doc/subversion/apache-subversion-in-debian.html">this tutorial out</a>. I hope this helps you in any way. I would appreciate some feedback, so don&#8217;t hesitate to fill that little form bellow.</p>
<p>Thanks and see you next time.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andremedeiros.info/2008/10/warehouse-installation-tutorial/feed/</wfw:commentRss>
		</item>
		<item>
		<title>You know it&#8217;s going to be a great day when&#8230;</title>
		<link>http://blog.andremedeiros.info/2008/09/you-know-its-going-to-be-a-great-day-when/</link>
		<comments>http://blog.andremedeiros.info/2008/09/you-know-its-going-to-be-a-great-day-when/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 10:35:53 +0000</pubDate>
		<dc:creator>changelog</dc:creator>
		
		<category><![CDATA[Random]]></category>

		<category><![CDATA[cao e pulgas]]></category>

		<category><![CDATA[pedro aniceto]]></category>

		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.andremedeiros.info/?p=18</guid>
		<description><![CDATA[&#8230; someone you admire starts following you on twitter.
Thanks for making my week start well, Pedro.
]]></description>
			<content:encoded><![CDATA[<p>&#8230; <a href="http://caoepulgas.blogspot.com/">someone you</a> <a href="http://twitter.com/pedroaniceto">admire</a> starts following you on twitter.</p>
<p>Thanks for making my week start well, Pedro.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andremedeiros.info/2008/09/you-know-its-going-to-be-a-great-day-when/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A note about Puzzle Quest&#8217;s randomness</title>
		<link>http://blog.andremedeiros.info/2008/08/a-note-about-puzzle-quests-randomness/</link>
		<comments>http://blog.andremedeiros.info/2008/08/a-note-about-puzzle-quests-randomness/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 12:55:43 +0000</pubDate>
		<dc:creator>changelog</dc:creator>
		
		<category><![CDATA[Games]]></category>

		<category><![CDATA[Rants]]></category>

		<category><![CDATA[psp]]></category>

		<category><![CDATA[puzzle quest]]></category>

		<category><![CDATA[rpg]]></category>

		<category><![CDATA[strategy]]></category>

		<guid isPermaLink="false">http://blog.andremedeiros.info/?p=13</guid>
		<description><![CDATA[The first thing you should know about this game is that this game hates you. I don&#8217;t mean that the game is designed to go against you. I mean the game hates you. The designers of this game created the first artificial intelligence system designed to mimic the actual emotion of hate. When you are [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>The first thing you should know about this game is that this game hates you. I don&#8217;t mean that the game is designed to go against you. I mean the game hates you. The designers of this game created the first artificial intelligence system designed to mimic the actual emotion of hate. When you are sleeping, the game is plotting your downfall with all of your other electronics.  In all seriousness, you will constantly find yourself getting frustrated with the random nature of the game.  <strong>Many times, you will find yourself crying foul and cheating when the game drops a +5 Skull in perfect position for your opponent</strong>. Granted, the randomness will also help you every once in a while, but you will swear that the game cheats for your enemy more than it does for you. There really isn&#8217;t much you can do about this aspect of the game. After all, this is how randomness works.</p></blockquote>
<p>Read it <a href="http://www.gamefaqs.com/portable/ds/file/934598/49968" title="Puzzle Quest Game FAQ">here</a>. Emphasis is mine.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andremedeiros.info/2008/08/a-note-about-puzzle-quests-randomness/feed/</wfw:commentRss>
		</item>
		<item>
		<title>When screen shots go bad</title>
		<link>http://blog.andremedeiros.info/2008/07/when-screen-shots-go-bad/</link>
		<comments>http://blog.andremedeiros.info/2008/07/when-screen-shots-go-bad/#comments</comments>
		<pubDate>Mon, 14 Jul 2008 12:47:19 +0000</pubDate>
		<dc:creator>changelog</dc:creator>
		
		<category><![CDATA[Rants]]></category>

		<category><![CDATA[application]]></category>

		<category><![CDATA[iphone]]></category>

		<category><![CDATA[itunes]]></category>

		<category><![CDATA[mac os x]]></category>

		<category><![CDATA[screen shot]]></category>

		<guid isPermaLink="false">http://blog.andremedeiros.info/?p=9</guid>
		<description><![CDATA[Browsing the iTunes App Store today, I found a priceless application that turns your iPhone into a flash light. Needless to say, I went on and checked the screen shots. So, without further ado, here they are:


As Marcel Molina puts it, &#8220;I like that there are two screen shots for the Light app&#8220;. Nicely said.
]]></description>
			<content:encoded><![CDATA[<p>Browsing the iTunes App Store today, I found a priceless application that turns your iPhone into a flash light. Needless to say, I went on and checked the screen shots. So, without further ado, here they are:</p>
<p align="center">
<a href='http://blog.andremedeiros.info/wp-content/uploads/2008/07/itunesscreensnapz001.png'><img src="http://blog.andremedeiros.info/wp-content/uploads/2008/07/itunesscreensnapz001-300x203.png" alt="" title="Light on iTunes App Store" width="300" height="203" class="aligncenter size-medium wp-image-10" /></a></p>
<p>As Marcel Molina puts it, &#8220;<a href="http://twitter.com/noradio/statuses/857439549">I like that there are two screen shots for the Light app</a>&#8220;. Nicely said.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andremedeiros.info/2008/07/when-screen-shots-go-bad/feed/</wfw:commentRss>
		</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>
		</item>
		<item>
		<title>Best of Craigslist: &#8220;What Happened to All the Nice Guys?&#8221;</title>
		<link>http://blog.andremedeiros.info/2008/06/best-of-craigslist-what-happened-to-all-the-nice-guys/</link>
		<comments>http://blog.andremedeiros.info/2008/06/best-of-craigslist-what-happened-to-all-the-nice-guys/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 19:30:34 +0000</pubDate>
		<dc:creator>changelog</dc:creator>
		
		<category><![CDATA[Rants]]></category>

		<category><![CDATA[best of]]></category>

		<category><![CDATA[comedy]]></category>

		<category><![CDATA[craigslist]]></category>

		<category><![CDATA[nice guy]]></category>

		<guid isPermaLink="false">http://blog.andremedeiros.info/?p=7</guid>
		<description><![CDATA[Just wanted to share with you something that made me laugh so hard today I cried my eyes out. Here&#8217;s an excerpt:

So, if you&#8217;re looking for a nice guy, here&#8217;s what you do:

Build a time machine.
Go back a few years and pull your head out of your ass.
Take a look at what&#8217;s right in front [...]]]></description>
			<content:encoded><![CDATA[<p>Just wanted to share with you <a href="http://www.craigslist.org/about/best/lax/483318927.html" target="_blank">something that made me laugh so hard today I cried my eyes out</a>. Here&#8217;s an excerpt:</p>
<blockquote>
<p>So, if you&#8217;re looking for a nice guy, here&#8217;s what you do:</p>
<ol>
<li>Build a time machine.</li>
<li>Go back a few years and pull your head out of your ass.</li>
<li>Take a look at what&#8217;s right in front of you and grab ahold of it.</li>
</ol>
</blockquote>
<p>It&#8217;s funny how other people&#8217;s &#8220;misery&#8221;, when expressed like this, makes your day a bit better.</p>
<p><b>UPDATE:</b> I also found <a href="http://www.craigslist.org/about/best/nyc/550913075.html" target="_blank">this</a>. Although not related, feels like a counter-retort, view from the opposite sex kinda thing. Pure awesomeness.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andremedeiros.info/2008/06/best-of-craigslist-what-happened-to-all-the-nice-guys/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mac OS X - Epic Fail</title>
		<link>http://blog.andremedeiros.info/2008/06/mac-os-x-epic-fail/</link>
		<comments>http://blog.andremedeiros.info/2008/06/mac-os-x-epic-fail/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 12:16:04 +0000</pubDate>
		<dc:creator>changelog</dc:creator>
		
		<category><![CDATA[Security]]></category>

		<category><![CDATA[epic fail]]></category>

		<category><![CDATA[mac os x]]></category>

		<category><![CDATA[omgwtf]]></category>

		<guid isPermaLink="false">http://blog.andremedeiros.info/?p=6</guid>
		<description><![CDATA[While getting up to speed with Slashdot, I found an interesting article about a security breach on Mac OS X that allows user escalation through AppleScript.
Trying it on the terminal works, but, as they say, the user needs to have physical access to the machine. So, Patrício suggested trying to access through SSH to see [...]]]></description>
			<content:encoded><![CDATA[<p>While getting up to speed with Slashdot, I found an <a href="http://it.slashdot.org/it/08/06/18/1919224.shtml" target="_blank" title="Mac OS X Root Escalation Through AppleScript">interesting article about a security breach</a> on Mac OS X that allows user escalation through AppleScript.
<p>Trying it on the terminal works, but, as they say, the user needs to have physical access to the machine. So, Patrício suggested trying to access through SSH to see if it works, and it did.</p>
<p>Slashdot member <a href="http://slashdot.org/~goombah99" target="_blank">gombah99</a> posted a tip on how to neutralize it non-destructively:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw3">cd</span> <span class="sy0">/</span>System<span class="sy0">/</span>Library<span class="sy0">/</span>CoreServices<span class="sy0">/</span>RemoteManagement<span class="sy0">/</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sudo</span> <span class="kw2">tar</span> -czf ARDAgent.app.gz ARDAgent.app</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sudo</span> <span class="kw2">chmod</span> <span class="nu0">600</span> ARDAgent.app.gz</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sudo</span> <span class="kw2">rm</span> -r ARDAgent.app</div>
</li>
</ol>
</div>
<p>Here&#8217;s to you, Apple Un^H^HSecurity Team!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andremedeiros.info/2008/06/mac-os-x-epic-fail/feed/</wfw:commentRss>
		</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 you [...]]]></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>
		</item>
		<item>
		<title>Digital 9/11&#8230; or so they say</title>
		<link>http://blog.andremedeiros.info/2008/05/digital-911-or-so-they-say/</link>
		<comments>http://blog.andremedeiros.info/2008/05/digital-911-or-so-they-say/#comments</comments>
		<pubDate>Tue, 27 May 2008 15:21:48 +0000</pubDate>
		<dc:creator>changelog</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Rants]]></category>

		<category><![CDATA[Security]]></category>

		<category><![CDATA[botnet]]></category>

		<category><![CDATA[doh]]></category>

		<category><![CDATA[europe]]></category>

		<category><![CDATA[spam]]></category>

		<category><![CDATA[virus]]></category>

		<guid isPermaLink="false">http://blog.andremedeiros.info/?p=4</guid>
		<description><![CDATA[I just read the latest press release from the European Network and Information Security Agency alerting about a possible digital 9/11. All I can say is that I&#8217;m shocked on how these people are so narrow-minded.
Now, the biggest threats on this matter seem to be botnets, spam and computer viruses.
Guys, here&#8217;s a free tip: install [...]]]></description>
			<content:encoded><![CDATA[<p>I just read the <a href="http://www.enisa.europa.eu/pages/02_01_press_2008_05_27_Bxl.html" target="_blank" title="ENISA: Concerted EU efforts are needed to avoid a ‘digital 9/11’ and combat cyber threats">latest press release from the European Network and Information Security Agency</a> alerting about a possible digital 9/11. All I can say is that I&#8217;m shocked on how these people are so narrow-minded.</p>
<p>Now, the biggest threats on this matter seem to be <a href="http://en.wikipedia.org/wiki/Botnet" target="_blank" title="Botnet: Wikipedia definition">botnets</a>, spam and computer viruses.</p>
<p>Guys, here&#8217;s a free tip: install <a href="http://www.ubuntu.com/" target="_blank" title="Ubuntu Linux">Linux</a> and switch to <a href="http://www.google.com/a/help/intl/en/var_1c.html" target="_blank" title="Google Apps">Google Apps</a>. Works for me (TM) <img src='http://blog.andremedeiros.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andremedeiros.info/2008/05/digital-911-or-so-they-say/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
