<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Luís Miranda&#039;s Blog</title>
	<atom:link href="http://luuuis.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://luuuis.wordpress.com</link>
	<description>technology and other ramblings</description>
	<lastBuildDate>Sat, 28 Nov 2009 12:16:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='luuuis.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/2014e89ea08f007bba840ce7b584a21f?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Luís Miranda&#039;s Blog</title>
		<link>http://luuuis.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://luuuis.wordpress.com/osd.xml" title="Luís Miranda&#039;s Blog" />
	<atom:link rel='hub' href='http://luuuis.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Java Programmers&#8217; Dirtiest Little Secret</title>
		<link>http://luuuis.wordpress.com/2008/11/21/java-programmers-dirtiest-little-secret/</link>
		<comments>http://luuuis.wordpress.com/2008/11/21/java-programmers-dirtiest-little-secret/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 01:45:45 +0000</pubDate>
		<dc:creator>Luís</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[refactoring]]></category>

		<guid isPermaLink="false">http://luuuis.wordpress.com/?p=25</guid>
		<description><![CDATA[Some of you will have read Steve Yegge&#8217;s 3500-word rant about programmers who can&#8217;t touch type (from whence I unashamedly stole this post&#8217;s title) or at least Jeff Atwood&#8217;s more succint version of the same idea. For those of you who were too lazy to read the above, the basic premise is that non touch-typists [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=luuuis.wordpress.com&amp;blog=5409481&amp;post=25&amp;subd=luuuis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Some of you will have read <a href="http://steve-yegge.blogspot.com/2008/09/programmings-dirtiest-little-secret.html">Steve Yegge&#8217;s 3500-word rant</a> about programmers who can&#8217;t touch type (from whence I unashamedly stole this post&#8217;s title) or at least <a href="http://www.codinghorror.com/blog/archives/001188.html">Jeff Atwood&#8217;s more succint version</a> of the same idea. For those of you who were too lazy to read the above, the basic premise is that <strong>non touch-typists are less productive than their touch-typing counterparts</strong>. Today I&#8217;m going to talk about another group of people, who are equally annoying: programmers who use their IDE as if it were just a file manager with a built-in text editor.</p>
<p>When I started my first Java-related job, I remember thinking to myself that one of the best things about developing with Java was the excellent IDE support for code navigation and refactoring. Despite the fact that IDE support has only gotten better since then, I still see people search for a Java class by repeatedly expanding folders in the package tree until they find the right file (normally pausing to think which package the class is in) or rename a method using a primitive cut &amp; paste technique. These are inefficient ways of doing something that is 1 keyboard shortcut away, or 2 clicks away, and are really frustrating to watch (a bit like being stuck behind an extremely slow driver).</p>
<p>When programmers don&#8217;t take the time to learn the IDE&#8217;s features, but I don&#8217;t think laziness alone is the cause. In fact, I believe <strong>laziness makes good programmers</strong>, at least when coupled with an inclination for problem solving. Take me, for example: I am one lazy bastard. I need to find a class. I&#8217;m going to hit Ctrl+Shift+T and BAAAM, I&#8217;m all up in that mother. There is no way I&#8217;m going to move the mouse around and click like crazy to get there. These guys are different: they don&#8217;t mind repeating the same mind-numbing cliking, typing, copying and pasting, over and over again. Perhaps they think that&#8217;s what programming is about?</p>
<p>It&#8217;s getting late and I&#8217;m not drunk, so I&#8217;m going to have to wrap this up. Here is my contribution to the betterment of Java programmers everywhere (Eclipse only, sorry! I now <a href="http://www.jetbrains.com/idea/">know better</a>):</p>
<p><span style="text-decoration:underline;">Navigation 101</span></p>
<ol>
<li><strong>Open Type</strong> (Ctrl+Shift+T). Tip: use only the first letter of each capitalised word (e.g. BAOS for <strong>B</strong>yte<strong>A</strong>rray<strong>O</strong>utput<strong>S</strong>tream).</li>
<li><strong>Open Resource </strong>(Ctrl+Shift+R). Same as above.</li>
<li><strong>Quick Type Hierarchy </strong>(Ctrl+T). Use this on a method to see where it&#8217;s overriden or declared.</li>
</ol>
<p><span style="text-decoration:underline;">Refactoring 101</span></p>
<ol>
<li><strong>Rename </strong>(Alt+Shift+R). Use this to fix names that suck.</li>
<li><strong>Extract Method </strong>(Alt+Shift+M). Apply when you want to reuse that sexy piece of code elsewhere.</li>
<li><strong>Extract Local Variable </strong>(Alt+Shift+L) and its counterpart <strong>Inline </strong>(Alt+Shift+I).</li>
</ol>
<p>For more information on the motivation for refactoring, and to understand the mechanics of each refactoring, check out <a onclick="return mugicPopWin(this,event);" oncontextmenu="mugicRightClick(this);" href="http://www.amazon.com/dp/0201485672/?tag=luimirsblo-21">Martin Fowler&#8217;s Refactoring book</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/luuuis.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/luuuis.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/luuuis.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/luuuis.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/luuuis.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/luuuis.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/luuuis.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/luuuis.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/luuuis.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/luuuis.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/luuuis.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/luuuis.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/luuuis.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/luuuis.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=luuuis.wordpress.com&amp;blog=5409481&amp;post=25&amp;subd=luuuis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://luuuis.wordpress.com/2008/11/21/java-programmers-dirtiest-little-secret/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/32d331b6dee5f1f35a1fa63478f228c7?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">luuuis</media:title>
		</media:content>
	</item>
		<item>
		<title>Re-Rewind&#8230;</title>
		<link>http://luuuis.wordpress.com/2008/11/10/re-rewind/</link>
		<comments>http://luuuis.wordpress.com/2008/11/10/re-rewind/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 01:09:22 +0000</pubDate>
		<dc:creator>Luís</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[backups]]></category>

		<guid isPermaLink="false">http://luuuis.wordpress.com/?p=9</guid>
		<description><![CDATA[A few months ago my computer&#8217;s hard drive started displaying signs of impending failure: occasionally the disk would not be detected by controller, leaving my computer unbootable. A couple of reboots and a patient 5-to-10-minute wait would normally get me into Windows though, so I wasn&#8217;t terribly worried. But I was worried enough that I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=luuuis.wordpress.com&amp;blog=5409481&amp;post=9&amp;subd=luuuis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A few months ago my computer&#8217;s hard drive started displaying signs of impending failure: occasionally the disk would not be detected by controller, leaving my computer unbootable. A couple of reboots and a patient 5-to-10-minute wait would normally get me into Windows though, so I wasn&#8217;t terribly worried.</p>
<p>But I was worried enough that I set up an automated backup mechanism using the awesome <a title="rdiff-backup home page" href="http://www.nongnu.org/rdiff-backup/">rdiff-backup</a>. After all, nobody likes to lose many years worth of photographs, documents, saved passwords, accounting files, and minesweeper high scores. With only a trivial shell script, I was able to configure rdiff-backup to do its thing onto an external hard drive connected to a Linux box on the other side of my bedroom. So when the time came for the drive to kick the bucket last month, I couldn&#8217;t help but feel smug about myself. Data loss can&#8217;t touch me&#8212;I have <em>backups</em>.</p>
<p>I was obviously tempting fate with these kinds of thoughts, and it didn&#8217;t take long for me to realise it. About two weeks after having laughed in the face of danger, I carelessly shut down the PC that hosts the backups, which was being particularly noisy and was keeping me from sleeping. The next day, I turned the PC back on before heading off to work. It was about that time that fate reached out and punched me in the nose: the USB hard drive wouldn&#8217;t power up, no matter what. I used my trusty old &#8220;try again in 5 minutes&#8221; strategy, but the drive was having none of it. I was data loss&#8217; bitch.</p>
<p>Fortunately I found <a title="Western Digital MyBook Open Case Recover Data" href="http://www.ransackery.com/western-digital-mybook-open-case-recover-data.htm">this excellent guide by Scott Cramer</a>, which suggested I may be able to recover my data by removing the drive <a href="#wd">[1]</a> from its case and hooking it up to another PC via its SATA interface. This worked beautifully, and I was able to recover all my important data with the help of a friend&#8217;s computer, but it could have as easily not have worked. Let this post serve as a friendly reminder for you to get into the habit of backup up your valuable data, or asking the machine do it for you automatically. There are several applications you can use to do this. I can recommend <a title="rdiff-backup home page" href="http://www.nongnu.org/rdiff-backup/">rdiff-backup</a>, featured above, or <a onclick="return mugicPopWin(this,event);" oncontextmenu="mugicRightClick(this);" href="http://mozy.com">Mozy</a> for the less technically-inclined.</p>
<p>You probably hate me for having wasted ten minutes of your life right now, but you will thank me later, when your suffer hard drive failure and backups save your behind. Bo, selecta.</p>
<p><span style="font-size:x-small;"><a name="wd">[1]</a> A Western Digital MyBook 320GB.</span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/luuuis.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/luuuis.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/luuuis.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/luuuis.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/luuuis.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/luuuis.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/luuuis.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/luuuis.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/luuuis.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/luuuis.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/luuuis.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/luuuis.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/luuuis.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/luuuis.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=luuuis.wordpress.com&amp;blog=5409481&amp;post=9&amp;subd=luuuis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://luuuis.wordpress.com/2008/11/10/re-rewind/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/32d331b6dee5f1f35a1fa63478f228c7?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">luuuis</media:title>
		</media:content>
	</item>
		<item>
		<title>Welcome</title>
		<link>http://luuuis.wordpress.com/2008/11/05/welcome/</link>
		<comments>http://luuuis.wordpress.com/2008/11/05/welcome/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 00:45:50 +0000</pubDate>
		<dc:creator>Luís</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://luuuis.wordpress.com/?p=6</guid>
		<description><![CDATA[Hello and welcome to my brand-new WordPress blog. My goal is to use this blog as an escape valve of sorts, where I can vent any technology-related frustration that I am experiencing, hopefully (for your sake) scattering it with nuggets of wisdom as I go. I will inevitably also use it for replying to immature [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=luuuis.wordpress.com&amp;blog=5409481&amp;post=6&amp;subd=luuuis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hello and welcome to my brand-new WordPress blog. My goal is to use this blog as an escape valve of sorts, where I can vent any technology-related frustration that I am experiencing, hopefully (for your sake) scattering it with nuggets of wisdom as I go. <img src='http://s1.wp.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>I will inevitably also use it for replying to immature blog entries from <a href="http://ppires.wordpress.com/about/">misguided youths</a>, but such is the price one pays&#8230; Enjoy your stay!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/luuuis.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/luuuis.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/luuuis.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/luuuis.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/luuuis.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/luuuis.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/luuuis.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/luuuis.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/luuuis.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/luuuis.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/luuuis.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/luuuis.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/luuuis.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/luuuis.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=luuuis.wordpress.com&amp;blog=5409481&amp;post=6&amp;subd=luuuis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://luuuis.wordpress.com/2008/11/05/welcome/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/32d331b6dee5f1f35a1fa63478f228c7?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">luuuis</media:title>
		</media:content>
	</item>
	</channel>
</rss>
