<?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>Software Nuggets</title>
	<atom:link href="http://cafebotero.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://cafebotero.wordpress.com</link>
	<description>Tasty thoughts and ideas to share (a.k.a. Eric vs Software Nuggets)</description>
	<lastBuildDate>Fri, 14 Oct 2011 20:06:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='cafebotero.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Software Nuggets</title>
		<link>http://cafebotero.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://cafebotero.wordpress.com/osd.xml" title="Software Nuggets" />
	<atom:link rel='hub' href='http://cafebotero.wordpress.com/?pushpress=hub'/>
		<item>
		<title>How to Review Code</title>
		<link>http://cafebotero.wordpress.com/2011/09/02/how-to-review-code/</link>
		<comments>http://cafebotero.wordpress.com/2011/09/02/how-to-review-code/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 20:08:47 +0000</pubDate>
		<dc:creator>qwertme</dc:creator>
		
		<guid isPermaLink="false">http://cafebotero.wordpress.com/?p=37</guid>
		<description><![CDATA[A lot of companies perform code reviews but the meaning of what a code review is doesn&#8217;t seem to be standardized. Some places copy/paste some code into word documents and pass it around (no joke, I have seen this), other places do group reviews in front of a large screen, etc. The process I prefer is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cafebotero.wordpress.com&amp;blog=3807157&amp;post=37&amp;subd=cafebotero&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A lot of companies perform code reviews but the meaning of what a code review is doesn&#8217;t seem to be standardized. Some places copy/paste some code into word documents and pass it around (no joke, I have seen this), other places do group reviews in front of a large screen, etc.</p>
<p>The process I prefer is a systematic code review of each and every commit. I am currently doing this via github and Jira, but I&#8217;ve done it before with subversion and Test Track Pro. It works just as well.</p>
<p>Some developer works on a feature related to multiple commits, you are assigned the ticket for review.</p>
<ol>
<li>Compile a list of all the commits related to the ticket and sort them from oldest to newest. We will start the review at the same place as he started coding, that way we can understand what he was doing and follow the changes.</li>
<li>Look at the commit message, it should indicate what the work was about. If it doesn&#8217;t write a note.</li>
<li>Look at the changes in the commit, there should be a single change that is easy to follow. If this is not the case, write a note.</li>
<li>Does the code have a unit test? Does the unit test run?</li>
<li>Look at the tests, can you understand what it is asserting?</li>
<li>Are the tests testing desired outcome or implementation details?</li>
<li>Is the code easy to understand? If it&#8217;s easy for you to understand during the code review it will be easy to understand when you are maintaining it.</li>
<li>Where the correct commands used? Take the time to understand the implications of every command. If you don&#8217;t know in detail what a command does, read the documentation, dig into the command code.</li>
<li>What do the variable names look like? Do they convey what the variable is?</li>
<li>What about method names? Do they make sense?</li>
<li>Are the methods small? Less than 6 lines?</li>
<li>Does the new code respect the <a href="http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)">SOLID</a> principles? Refresh your memory on the subject.</li>
<li>Is there a design pattern that can be used to solve the problem more elegantly? Refresh your memory on the design patterns</li>
<li>What is the scalability impact of the new algorithm? O(n!)..O(1)? Is that correct?</li>
<li>Are there any comments that imply a new method could be created?</li>
<li>Is there any commented out code?</li>
</ol>
<div>A code review is an opportunity for you to learn and to improve the code you are working on. It also gives you the opportunity to teach what you have learned to a fellow team member.</div>
<div>The initial weeks when I started working at the first company where my code was being systematically reviewed it was a big hit on my ego. Eventually I realized the benefit and now I look forward to being reviewed. By reviewing code, I also learned to keep my commits small and my code easy to read.</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cafebotero.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cafebotero.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cafebotero.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cafebotero.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/cafebotero.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/cafebotero.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/cafebotero.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/cafebotero.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cafebotero.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cafebotero.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cafebotero.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cafebotero.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cafebotero.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cafebotero.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cafebotero.wordpress.com&amp;blog=3807157&amp;post=37&amp;subd=cafebotero&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://cafebotero.wordpress.com/2011/09/02/how-to-review-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e9676375c5d467e7f3e9302b8d0a2851?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">qwertme</media:title>
		</media:content>
	</item>
		<item>
		<title>PinKeeper</title>
		<link>http://cafebotero.wordpress.com/2009/08/05/pinkeeper/</link>
		<comments>http://cafebotero.wordpress.com/2009/08/05/pinkeeper/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 00:30:10 +0000</pubDate>
		<dc:creator>qwertme</dc:creator>
				<category><![CDATA[1]]></category>

		<guid isPermaLink="false">http://cafebotero.wordpress.com/?p=18</guid>
		<description><![CDATA[My favorite software company (ok, I admit it, it&#8217;s my company) just released a great tool to keep your pin numbers, padlock numbers, alarm systems codes, door codes, etc.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cafebotero.wordpress.com&amp;blog=3807157&amp;post=18&amp;subd=cafebotero&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>My <a href="http://www.oxanddragon.com" target="_self">favorite software company</a> (ok, I admit it, it&#8217;s my company) just released a great tool to keep your pin numbers, padlock numbers, alarm systems codes, door codes, etc.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cafebotero.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cafebotero.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cafebotero.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cafebotero.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/cafebotero.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/cafebotero.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/cafebotero.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/cafebotero.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cafebotero.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cafebotero.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cafebotero.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cafebotero.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cafebotero.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cafebotero.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cafebotero.wordpress.com&amp;blog=3807157&amp;post=18&amp;subd=cafebotero&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://cafebotero.wordpress.com/2009/08/05/pinkeeper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e9676375c5d467e7f3e9302b8d0a2851?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">qwertme</media:title>
		</media:content>
	</item>
		<item>
		<title>iPhone Development</title>
		<link>http://cafebotero.wordpress.com/2009/08/03/iphone-development/</link>
		<comments>http://cafebotero.wordpress.com/2009/08/03/iphone-development/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 21:59:42 +0000</pubDate>
		<dc:creator>qwertme</dc:creator>
				<category><![CDATA[1]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[push]]></category>

		<guid isPermaLink="false">http://cafebotero.wordpress.com/?p=9</guid>
		<description><![CDATA[I have recently turned my attention towards iPhone development. I am building a set of modules to help me with some other projects. The first module I am building is a push server for messaging to the iPhone. I had to workout some quirks to get JSON integrated &#8220;properly&#8221; into my project. There are many [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cafebotero.wordpress.com&amp;blog=3807157&amp;post=9&amp;subd=cafebotero&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have recently turned my attention towards iPhone development. I am building a set of modules to help me with some other projects. The first module I am building is a push server for messaging to the iPhone. I had to workout some quirks to get JSON integrated &#8220;properly&#8221; into my project. There are many posts out there about how to do this, but most of them use the simple method of copying the JSON files into your project. I don&#8217;t like this, it seems wrong and breaks the DRY principle.</p>
<p>So, to get it installed, follow the <a href="http://code.google.com/p/json-framework/wiki/InstallationInstructions" target="_blank">Option 2</a> in the json-framework install instructions, then <strong><a href="http://code.google.com/p/json-framework/issues/detail?id=33#c0" target="_blank">reset the compiler to gcc 4.2</a></strong> this is a key point, somehow adding the framework breaks this and you start getting all sorts of strange errors. Then finally you need to add the SDKs <a href="http://iphone.galloway.me.uk/2009/04/json-framework-codesign-object-file-format-invalid-or-unsuitable/" target="_blank">code signing resource rules ($(SDKROOT)/ResourceRules.plist) to the code signing resource rules path</a></p>
<p>Hope this helps!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cafebotero.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cafebotero.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cafebotero.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cafebotero.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/cafebotero.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/cafebotero.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/cafebotero.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/cafebotero.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cafebotero.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cafebotero.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cafebotero.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cafebotero.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cafebotero.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cafebotero.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cafebotero.wordpress.com&amp;blog=3807157&amp;post=9&amp;subd=cafebotero&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://cafebotero.wordpress.com/2009/08/03/iphone-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e9676375c5d467e7f3e9302b8d0a2851?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">qwertme</media:title>
		</media:content>
	</item>
		<item>
		<title>Blackberry development on Mac OS X</title>
		<link>http://cafebotero.wordpress.com/2008/05/25/blackberry-development-on-mac-os-x/</link>
		<comments>http://cafebotero.wordpress.com/2008/05/25/blackberry-development-on-mac-os-x/#comments</comments>
		<pubDate>Sun, 25 May 2008 15:09:16 +0000</pubDate>
		<dc:creator>qwertme</dc:creator>
				<category><![CDATA[blackberry]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[batch]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[putty]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://cafebotero.wordpress.com/?p=7</guid>
		<description><![CDATA[I have recently been dabbling with a bit of Blackberry development. When I started I was using the horrible antiquated, old netbeans based blackberry JDE (the ultimate insult, take a cross-platform java app and turn it into a Windows only app&#8230; don&#8217;t get me started!) from Parallels. This was painful, so I searched around the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cafebotero.wordpress.com&amp;blog=3807157&amp;post=7&amp;subd=cafebotero&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have recently been dabbling with a bit of Blackberry development. When I started I was using the horrible antiquated, old netbeans based blackberry JDE (the ultimate insult, take a cross-platform java app and turn it into a Windows only app&#8230; don&#8217;t get me started!)  from Parallels. This was painful, so I searched around the web to see if there was something I could do about it.</p>
<p>I happened across <a href="http://www.slashdev.ca/2007/05/30/blackberry-development-with-ant-eclipse" target="_blank">this great article</a> on how to use Eclipse for Blackberry development, but the real interesting bit was that the screenshots where on a Mac!! Eureka!</p>
<p>The only bit I want to add to that is the setup of the Blackberry SDK that I did. In my workspace (the place I keep my development stuff, not the Eclipse workspace), I copied the SDK installation except the simulator (<strong>C:\Program Files\Research In Motion\BlackBerry JDE 4.3.1</strong>) from windows on to my Workspace(<strong>~/Desktop/Workspace</strong>). <strong>Note: </strong>I replaced the spaces with -</p>
<p>What I wanted to do now, was to have Eclipse, on the Mac able to publish directly to the simulator living in Parallels. This was painful because Parallels mounts the <strong>C</strong> drive to a different path on every run.</p>
<p>To solve this, I wrote the following script to find and mount the correct path and put it in <strong>~/bin</strong></p>
<p><code>#!/bin/bash<br />
c_path=/private`mount | grep fuse.*\/C | sed -e "s/^.*\/private//g" -e "s/C.*\$//g"`C<br />
simulator_path=$c_path/Program\ Files/Research\ In\ Motion/BlackBerry\ JDE\ 4.3.0/simulator<br />
local_jde_path=~/Desktop/Workspace/BlackBerry-JDE-4.3.0</code></p>
<p>rm -f &#8220;$local_jde_path/simulator&#8221;<br />
ln -s &#8220;$simulator_path&#8221;  &#8220;$local_jde_path/simulator</p>
<p>Now, to get this automatically re-linked every time I start Windows, I wrote this bat file that runs at login. This of course means that if you simply suspend the windows session you will have to manually run either the script above from the Mac or the one below form Windows.</p>
<p>Having downloaded <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html" target="_blank">Plink</a> and placed it in <strong>C:\Program Files\Putty</strong><code><br />
@echo off<br />
call "C:\Program Files\Putty\plink.exe" -pw XXXXXXXX you@yourmac ~/bin/link-simulator<br />
</code></p>
<p>Then you put this batch file anywhere on your windows disk and create a shortcut to it in the Start-&gt;Programs-&gt;Startup (if you really want, you can probably have the batch file live there or create a windows shortcut containing the whole line w/o the call, I haven&#8217;t tried it but I imagine it must work)</p>
<p>If you don&#8217;t want to keep your password in the batch file you can do the ssh key dance, plink will support it via puttygen. Someday, when I get around to doing it, I will write a tutorial about this.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/cafebotero.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/cafebotero.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cafebotero.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cafebotero.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cafebotero.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cafebotero.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/cafebotero.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/cafebotero.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/cafebotero.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/cafebotero.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cafebotero.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cafebotero.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cafebotero.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cafebotero.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cafebotero.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cafebotero.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cafebotero.wordpress.com&amp;blog=3807157&amp;post=7&amp;subd=cafebotero&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://cafebotero.wordpress.com/2008/05/25/blackberry-development-on-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e9676375c5d467e7f3e9302b8d0a2851?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">qwertme</media:title>
		</media:content>
	</item>
	</channel>
</rss>
