<?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>Fix My Bugs</title>
	<atom:link href="http://www.fixmybugs.com/fixmybugs/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.fixmybugs.com</link>
	<description>Ramblings of a Programmer</description>
	<lastBuildDate>Mon, 19 Jul 2010 19:45:10 +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>Extreme Feedback Device &#8211; The Cruise Control Lights</title>
		<link>http://www.fixmybugs.com/?p=426</link>
		<comments>http://www.fixmybugs.com/?p=426#comments</comments>
		<pubDate>Mon, 19 Jul 2010 19:38:04 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[cruisecontrol]]></category>
		<category><![CDATA[extreme feedback]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.fixmybugs.com/?p=426</guid>
		<description><![CDATA[My Arduino based Cruise Control build indicator lights have been up and running for a couple of months now and so far so good.  It&#8217;s time to post the source code for the Arduino sketch and the Java app that runs on the machine that the build lights are connected to. First, here&#8217;s a very [...]]]></description>
			<content:encoded><![CDATA[<p>My Arduino based Cruise Control build indicator lights have been up and running for a couple of months now and so far so good.  It&#8217;s time to post the source code for the Arduino sketch and the Java app that runs on the machine that the build lights are connected to.</p>
<p>First, here&#8217;s a very short video of a successful build.  While a build is in progress, all 3 lights turn on, and at the end of the build, you get either solid red or solid green (hopefully), depending upon success!</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/mvuqLhZeha4&amp;hl=en_GB&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/v/mvuqLhZeha4&amp;hl=en_GB&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>The lights are connected via USB to a machine that sits nearby.  On that machine runs a Java program that attaches to the USB serial port and sends commands to the Arduino sketch to turn any of the 3 coloured lights on or off.  The sketch is very simple with no clever logic at all.  All it does is read the serial port and based on the value of 3 bytes, turns the lights on or off.  All the logic is contained in the Java program.</p>
<p>The Java program running on the attached PC connects to a Cruise Control server using the JMX protocol and waits for status updates for a given project.  These status updates occur when builds are started, and when they end.  There are also various informational properties that can be obtained from the build server, such as what time the last successful build was.  With this information, the lights can be set to show green for a good build less than 2 days old, amber for a build less than 4 days old but older than 2 days, and red for a build that&#8217;s older than 4 days (or a failed build).</p>
<p>I won&#8217;t go into a long post detailing the code now.  It&#8217;s a single Java source file with everything in (including the Arduino sketch in the comments), with a section for the command line handling, the JMX connection and the serial port code.  It uses the <a href="http://www.rxtx.org/">RXTX </a>serial I/O library, so if you want to compile and run it, you&#8217;ll need to download that first.  I&#8217;m happy to answer any questions about the code, and of course, it&#8217;s free for you to do whatever you like with (<a href="http://sam.zoy.org/wtfpl/">WTFPL</a>).  There&#8217;s not a lot of documentation specific to the Cruise Control JMX interface, but if you read through the actual Cruise Control source at <a href="https://cruisecontrol.svn.sourceforge.net/svnroot/cruisecontrol/trunk/cruisecontrol/main/src/net/sourceforge/cruisecontrol/jmx/">sourceforge</a>, you get a pretty good idea of all the properties available.   The methods to get the properties and the JMX events are fairly standard and the details from Sun <a href="http://java.sun.com/developer/Books/javaprogramming/jmx/jmx_chap02.pdf">here </a>(PDF)  helped too.</p>
<h1 style="text-align: center;"><a href="http://www.longsteve.com/fixmybugs/wp-content/uploads/2010/07/CruiseControlProject.zip">CruiseControl/Arduino Lights Source Code</a></h1>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 251px; width: 1px; height: 1px; overflow: hidden;">http://sam.zoy.org/wtfpl/</div>



Share this post:


	<a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D426&amp;title=Extreme%20Feedback%20Device%20-%20The%20Cruise%20Control%20Lights&amp;bodytext=My%20Arduino%20based%20Cruise%20Control%20build%20indicator%20lights%20have%20been%20up%20and%20running%20for%20a%20couple%20of%20months%20now%20and%20so%20far%20so%20good.%C2%A0%20It%27s%20time%20to%20post%20the%20source%20code%20for%20the%20Arduino%20sketch%20and%20the%20Java%20app%20that%20runs%20on%20the%20machine%20that%20the%20build%20lights%20" title="Digg"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://reddit.com/submit?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D426&amp;title=Extreme%20Feedback%20Device%20-%20The%20Cruise%20Control%20Lights" title="Reddit"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D426&amp;title=Extreme%20Feedback%20Device%20-%20The%20Cruise%20Control%20Lights&amp;notes=My%20Arduino%20based%20Cruise%20Control%20build%20indicator%20lights%20have%20been%20up%20and%20running%20for%20a%20couple%20of%20months%20now%20and%20so%20far%20so%20good.%C2%A0%20It%27s%20time%20to%20post%20the%20source%20code%20for%20the%20Arduino%20sketch%20and%20the%20Java%20app%20that%20runs%20on%20the%20machine%20that%20the%20build%20lights%20" title="del.icio.us"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D426" title="Technorati"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D426&amp;title=Extreme%20Feedback%20Device%20-%20The%20Cruise%20Control%20Lights&amp;annotation=My%20Arduino%20based%20Cruise%20Control%20build%20indicator%20lights%20have%20been%20up%20and%20running%20for%20a%20couple%20of%20months%20now%20and%20so%20far%20so%20good.%C2%A0%20It%27s%20time%20to%20post%20the%20source%20code%20for%20the%20Arduino%20sketch%20and%20the%20Java%20app%20that%20runs%20on%20the%20machine%20that%20the%20build%20lights%20" title="Google Bookmarks"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D426&amp;t=Extreme%20Feedback%20Device%20-%20The%20Cruise%20Control%20Lights" title="Facebook"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D426&amp;title=Extreme%20Feedback%20Device%20-%20The%20Cruise%20Control%20Lights" title="StumbleUpon"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=Extreme%20Feedback%20Device%20-%20The%20Cruise%20Control%20Lights%20-%20http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D426" title="Twitter"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.fixmybugs.com/?feed=rss2&amp;p=426</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Build Indicator Lights &#8211; The Pictures</title>
		<link>http://www.fixmybugs.com/?p=402</link>
		<comments>http://www.fixmybugs.com/?p=402#comments</comments>
		<pubDate>Sun, 18 Apr 2010 17:47:48 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[projects]]></category>

		<guid isPermaLink="false">http://www.fixmybugs.com/?p=402</guid>
		<description><![CDATA[It 's a lovely Sunday afternoon, and my week of soldering, Dremeling and programming has ended! My build system indicator lights are complete, for the most part...]]></description>
			<content:encoded><![CDATA[<p>It &#8216;s a lovely Sunday afternoon, and my week of soldering, Dremeling and programming has ended!  Actually, my lights were complete by Friday lunchtime, but I had to do a bit of work on Friday afternoon and the weekend has been too nice to type up my activities.  Here though are the best of the photos I took, and I&#8217;ll try and expand on them when I get a chance to write more blog posts.</p>
<p>Things aren&#8217;t quite complete yet though.  The construction of the lights is finished, and they are installed on our offices (video to follow soon).  However, the continuous integration build server isn&#8217;t yet hooked into the lights, and there is a bit of debugging to do with the serial to TCP/IP proxy I ended up writing.  Unfortunately, the Arduino Ethernet Shield proved to be a bit of a problem in &#8216;production&#8217; so I ended up reverting to my original plan of hooking the Arduino up straight to a PC using the USB/Serial connection.</p>
<p>Anyway, on to the pictures and an approximate timeline for the week.</p>
<h2>Starting out</h2>
<p>Here are the internals of the Ikea lights, and as you can see, they are predictably simple.  The incoming 240V supply cable is attached to a nice chunky wiring block, and from there each bulb is attached to a toggle switch conncted to the live wire.  These push switches are activated by pressing the spring loaded coloured bulb covers mounted into the front panel, so you can turn on and off each individual bulb.</p>
<p style="text-align: center;"><img class="size-full wp-image-403 aligncenter" title="Original Lamp Internals" src="http://www.longsteve.com/fixmybugs/wp-content/uploads/2010/04/original_lamp_internals_small.jpg" alt="" width="640" height="480" /></p>
<h2 style="text-align: left;">Do all the bits work?</h2>
<p style="text-align: left;">On the first day, I mainly pottered about checking that all the things I&#8217;d bought worked ok, my soldering iron still worked,  I still remembered how to use my multimeter, etc.  All those things that bite you in the backside if you don&#8217;t double check before you start.  Luckily, everything was good so far.  I hooked the Arduino up to the my PC and followed some basic tutorials to get some LEDs flashing.  I also tried out the Ethernet Shield to see how it worked.  Lastly, when I ordered the bits from <a href="www.sparkfun.com">Sparkfun</a>, I included a &#8216;<a href="http://www.sparkfun.com/commerce/product_info.php?products_id=9282">Screw Shield</a>&#8216; which allows you to more permanently attach wires to the Arduino pins.  It comes in kit form and was the perfect re-introduction to soldering, with no active components.  Here you can see the 3 shields connected together and a couple of LEDs hooked in too.  I was amazed at how easy everything was so far.</p>
<p style="text-align: center;"><a href="http://www.longsteve.com/fixmybugs/wp-content/uploads/2010/04/arduino_screw_ethernet_shield_with_leds_small.jpg"><img class="size-full wp-image-404  aligncenter" title="arduino_screw_ethernet_shield_with_leds_small" src="http://www.longsteve.com/fixmybugs/wp-content/uploads/2010/04/arduino_screw_ethernet_shield_with_leds_small.jpg" alt="Arduino Screw Ethernet Shields with LEDs" width="640" height="442" /></a></p>
<p style="text-align: left;">
<h2 style="text-align: left;">Relay boards, more soldering and some network progamming</h2>
<p style="text-align: left;">The next day I soldered up the <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=9096http://www.sparkfun.com/commerce/product_info.php?products_id=9096">Sparkfun relay boards</a>.  These were very easy to solder together with literally only 6 small components, 2 screw terminals and the relay itself, a totaly of 22 solder points.  After these were done I plugged them into the Arduino and tested them, each one worked fine.  There&#8217;s a nice loud click as the relays switch, although they weren&#8217;t connected to any load at this point.</p>
<p style="text-align: left;">The rest of the day I spent looking into the Arduino libraries for networking.  In particular, I discovered that Georg Kaindl had created both <a href="http://gkaindl.com/software/arduino-ethernet">DHCP and Zeroconf/Bonjour libraries for the Arduino</a> that he&#8217;d documented very well.  This is awesome and meant that the networking side of things would be pretty much plug and play.  I wrote some code that got all this working, and included the <a href="http://code.google.com/p/webduino/">Webduino web server</a> code to handle requests.  This was both easy and exciting, but unfortunately, later on, the Ethernet Shield proved a bit of a problem and I had to ditch all the work I&#8217;d done.</p>
<h2 style="text-align: left;">Dremel day</h2>
<p style="text-align: left;">Now it was time to actually butcher the Ikea lamp housing and install all the electronics I&#8217;d soldered up.  Here&#8217;s my workbench before anything is removed:</p>
<p style="text-align: center;"><img class="size-full wp-image-405  aligncenter" title="Workbench 1" src="http://www.longsteve.com/fixmybugs/wp-content/uploads/2010/04/on_the_workbench_before_dremeling_small.jpg" alt="" width="640" height="480" /></p>
<p style="text-align: left;">Now after 2 switch mounts have been removed.</p>
<p style="text-align: center;"><img class="size-full wp-image-406  aligncenter" title="After Dremeling" src="http://www.longsteve.com/fixmybugs/wp-content/uploads/2010/04/after_dremeling_small.jpg" alt="" width="640" height="480" /></p>
<p style="text-align: left;">I decided to leave one switch in place, the &#8216;green&#8217; lamp switch.  I realised that after everything else was mounted inside the case, I could use the remaining switch as a master power on/off switch for the 240V supply.  Something that might be quite handy.</p>
<p style="text-align: left;">After removing the switch mounting, I needed to create mounts for the 3 relay boards and the Arduini board itself.  PC Motherboard risers are excellent for this sort of thing, and I had loads sitting around in my PC kit drawers!</p>
<p style="text-align: center;"><a href="http://www.longsteve.com/fixmybugs/wp-content/uploads/2010/04/after_dremeling_closeup_small.jpg"><img class="size-full wp-image-407  aligncenter" title="Motherboard Risers Closeup" src="http://www.longsteve.com/fixmybugs/wp-content/uploads/2010/04/after_dremeling_closeup_small.jpg" alt="" width="640" height="480" /></a></p>
<p style="text-align: left;">After all the mountings were in place, again using the Dremel to drill out the plastic, I screwed the 3 relay boards and the Arduino board in place.  The gap in the middle will be for the Arduino power supply later on.</p>
<p style="text-align: center;"><img class="size-full wp-image-408  aligncenter" title="Boards Screwed On" src="http://www.longsteve.com/fixmybugs/wp-content/uploads/2010/04/boards_screwed_on_small.jpg" alt="" width="640" height="480" /></p>
<h2 style="text-align: left;">Ethernet Shield Problems</h2>
<p style="text-align: left;">After I&#8217;d mounted all the relays and done all the Dremeling work in the case, I naturally wired everything up and started testing.  Unfortunately, the Ethernet Shield seemed to be reducing the power the Arduini could supply to it&#8217;s IO pins.  The relays needed 5V to switch, but with the Ethernet Shield connected, and all the DHCP, Zeroconf and web server code running, I was only getting 3.9V on the output pins, and the relay switching was unreliable.  I was also having problem with the <a href=" http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1225354009/30">shield reseting and starting up properly under external power</a>.  It seems there are some problems in this area, and I didn&#8217;t have time to look too deeply, so I decided to ditch the idea of the TCP/IP connection and instead focus on my original plan of just the Arduino connected to a USB port on PC.</p>
<h2 style="text-align: left;">Final Assembly</h2>
<p style="text-align: left;">Thursday was the final assembly day, wiring up the relay boards, and mounting the power supply.  The power supply I was using was <a href="http://www.maplin.co.uk/Module.aspx?ModuleNo=48908">this one from Maplin</a>, and it&#8217;s nice and light, being switched mode.  It fits just nicely in the gap between the two bulbs, and I chopped off the barrel adapter to wire it straight into the Arduino input terminals.  None of the original bulb wiring needed to be cut at all, with each of the points that originally went into the manual switches fitting nicely into the relay terminals.  I used a couple of extra wiring blocks to route all the external mains power into both the bulbs and the power adapter, through the one remaining switch.  This gives the whole unit a master power on/off switch if I need it.  You could leave the switch in place and wire it up to one of the free Arduino IO pins if you like.  It would make a handy mode switcher or something.</p>
<p style="text-align: center;"><img class="size-full wp-image-409  aligncenter" title="All Wired Up" src="http://www.longsteve.com/fixmybugs/wp-content/uploads/2010/04/power_and_all_wires_small.jpg" alt="" width="640" height="283" /></p>
<h2 style="text-align: left;">All lit up</h2>
<p style="text-align: left;">The one last thing to do was to Dremel a hole in the top of the front casing for the USB cable to go.  The power cord drops out of a hole in the base (on the left of the picture above), but the way I&#8217;d mounted the Arduino meant that the USB socket was right against the top edge of the unit.  Since the unit was going to be mounted on a wall anyway, having a cut out at the top wouldn&#8217;t be noticable by anyone, luckily for me!</p>
<p style="text-align: left;">So, here&#8217;s the final unit put back together again, with one of the lamps on.  You can see both cables (power and USB) can be routed out of the top of the unit, buy running the power cable underneath it.</p>
<p style="text-align: center;"><img class="size-full wp-image-410  aligncenter" title="Green light means go" src="http://www.longsteve.com/fixmybugs/wp-content/uploads/2010/04/all_back_together_small.jpg" alt="" width="591" height="455" /></p>
<p style="text-align: left;">
<p style="text-align: left;">That&#8217;s a brief summary of my weeks work then.  As I said, there were problems with the Ethernet Shield that caused me to waste a days programming, but it wasn&#8217;t so bad really.  Apart from that though, I&#8217;m well pleased with the results.  The lights are now mounted on a wall in our office, and I&#8217;m going to elaborate on the code and the problems in more details soon, I just wanted to get all my pictures onto the blog and uploaded as soon as I could.  I&#8217;ll probably update this post with links to the high res images soon too.</p>



Share this post:


	<a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D402&amp;title=Build%20Indicator%20Lights%20-%20The%20Pictures&amp;bodytext=It%20%27s%20a%20lovely%20Sunday%20afternoon%2C%20and%20my%20week%20of%20soldering%2C%20Dremeling%20and%20programming%20has%20ended%21%20My%20build%20system%20indicator%20lights%20are%20complete%2C%20for%20the%20most%20part..." title="Digg"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://reddit.com/submit?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D402&amp;title=Build%20Indicator%20Lights%20-%20The%20Pictures" title="Reddit"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D402&amp;title=Build%20Indicator%20Lights%20-%20The%20Pictures&amp;notes=It%20%27s%20a%20lovely%20Sunday%20afternoon%2C%20and%20my%20week%20of%20soldering%2C%20Dremeling%20and%20programming%20has%20ended%21%20My%20build%20system%20indicator%20lights%20are%20complete%2C%20for%20the%20most%20part..." title="del.icio.us"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D402" title="Technorati"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D402&amp;title=Build%20Indicator%20Lights%20-%20The%20Pictures&amp;annotation=It%20%27s%20a%20lovely%20Sunday%20afternoon%2C%20and%20my%20week%20of%20soldering%2C%20Dremeling%20and%20programming%20has%20ended%21%20My%20build%20system%20indicator%20lights%20are%20complete%2C%20for%20the%20most%20part..." title="Google Bookmarks"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D402&amp;t=Build%20Indicator%20Lights%20-%20The%20Pictures" title="Facebook"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D402&amp;title=Build%20Indicator%20Lights%20-%20The%20Pictures" title="StumbleUpon"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=Build%20Indicator%20Lights%20-%20The%20Pictures%20-%20http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D402" title="Twitter"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.fixmybugs.com/?feed=rss2&amp;p=402</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Engaging development</title>
		<link>http://www.fixmybugs.com/?p=395</link>
		<comments>http://www.fixmybugs.com/?p=395#comments</comments>
		<pubDate>Tue, 13 Apr 2010 19:38:38 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[projects]]></category>

		<guid isPermaLink="false">http://www.fixmybugs.com/?p=395</guid>
		<description><![CDATA[What do you get if you add  an Ikea childrens bedroom traffic light lamp: to an Arduino Duemilanove microprocessor IO board, Arduino Ethernet Shield and some 240V 30A relays? Well, my hope is that I can get our whole office engaged in the work us programmers do as part of the development process for our [...]]]></description>
			<content:encoded><![CDATA[<p>What do you get if you add  an <a href="http://www.google.co.uk/#hl=en&amp;source=hp&amp;q=ikea+traffic+light+lamp&amp;btnG=Google+Search&amp;meta=&amp;aq=f&amp;aqi=&amp;aql=&amp;oq=ikea+traffic+light+lamp&amp;gs_rfai=&amp;fp=459b761b84e2996a">Ikea childrens bedroom traffic light lamp</a>:</p>
<p><a href="http://www.longsteve.com/fixmybugs/wp-content/uploads/2010/04/ikea_lights.jpg"><img class="alignnone size-full wp-image-396" title="Traffic lights from Ikea and Jessie" src="http://www.longsteve.com/fixmybugs/wp-content/uploads/2010/04/ikea_lights.jpg" alt="" width="589" height="450" /></a></p>
<p>to an <a href="http://www.arduino.cc/en/Main/ArduinoBoardDuemilanove">Arduino Duemilanove</a> microprocessor IO board, <a href="http://www.coolcomponents.co.uk/catalog/product_info.php?products_id=232">Arduino Ethernet Shield</a> and some <a href="http://www.sparkfun.com/commerce/tutorial_info.php?tutorials_id=119">240V 30A relays</a>?</p>
<p><a href="http://www.longsteve.com/fixmybugs/wp-content/uploads/2010/04/arduino_ethernet_relays.jpg"><img class="alignnone size-full wp-image-397" title="Arduino, Ethernet Shield and Relays" src="http://www.longsteve.com/fixmybugs/wp-content/uploads/2010/04/arduino_ethernet_relays.jpg" alt="" width="556" height="456" /></a></p>
<p>Well, my hope is that I can get our whole office <strong>engaged </strong>in the work us programmers do as part of the development process for our games.</p>
<p>I am making a network connected indicator light for the <a href="http://cruisecontrol.sourceforge.net/">continuous integration</a> build process that I&#8217;m going to put our next product under.</p>
<p>Some time ago, I was inspired by an <a href="http://www.pragmaticautomation.com/cgi-bin/pragauto.cgi/Monitor/Devices/BubbleBubbleBuildsInTrouble.rdoc">article I read about using lava lamps </a>as success/failure indicators for an automated build process.  An automated build process has a host of benefits in it&#8217;s own right.  Those benefits are further realised when the relevent people know immediately when a build has completed, where to get it and what&#8217;s in it that&#8217;s new.  The first part then to make everyone aware when builds are ready, and a whopping great big green light stuck to a prominent wall in the office should do the trick.</p>
<p>I originally planned just to attach the lights using the Arduino USB port to the build machine.  Then I looked into the Ethernet Shield, available as a simple plug on module, it looked so simple to get working that I couldn&#8217;t resist it!  There&#8217;s much more flexibility in terms of programmatic access and physical positioning if the lights aren&#8217;t tied to a host with a USB cable.  You can go <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=9367">Wi-Fi with the Arduino</a> (you can even go Bluetooth or GSM if you like) but that was a little costlier, and who needs Wi-Fi in an office with Ethernet ports all over the place!</p>
<p>Obviously there&#8217;s a bunch of components to solder together, <a href="http://www.ladyada.net/learn/arduino/">tutorials to follow</a>, embedded code to learn and some assembly with <em>extreme care</em>, the traffic light has 3 bulbs run directly from the UK 240Volt mains!</p>
<p>Everything I ordered for the project is working well so far, and I have a small breadboard with LEDs on wired up like a traffic light and the Arduino board is turning them on and off.  I&#8217;ll post more as I carry on!</p>



Share this post:


	<a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D395&amp;title=Engaging%20development&amp;bodytext=What%20do%20you%20get%20if%20you%20add%C2%A0%20an%20Ikea%20childrens%20bedroom%20traffic%20light%20lamp%3A%0D%0A%0D%0A%0D%0A%0D%0Ato%20an%20Arduino%20Duemilanove%20microprocessor%20IO%20board%2C%20Arduino%20Ethernet%20Shield%20and%20some%20240V%2030A%20relays%3F%0D%0A%0D%0A%0D%0A%0D%0AWell%2C%20my%20hope%20is%20that%20I%20can%20get%20our%20whole%20office%20engaged%20in%20" title="Digg"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://reddit.com/submit?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D395&amp;title=Engaging%20development" title="Reddit"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D395&amp;title=Engaging%20development&amp;notes=What%20do%20you%20get%20if%20you%20add%C2%A0%20an%20Ikea%20childrens%20bedroom%20traffic%20light%20lamp%3A%0D%0A%0D%0A%0D%0A%0D%0Ato%20an%20Arduino%20Duemilanove%20microprocessor%20IO%20board%2C%20Arduino%20Ethernet%20Shield%20and%20some%20240V%2030A%20relays%3F%0D%0A%0D%0A%0D%0A%0D%0AWell%2C%20my%20hope%20is%20that%20I%20can%20get%20our%20whole%20office%20engaged%20in%20" title="del.icio.us"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D395" title="Technorati"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D395&amp;title=Engaging%20development&amp;annotation=What%20do%20you%20get%20if%20you%20add%C2%A0%20an%20Ikea%20childrens%20bedroom%20traffic%20light%20lamp%3A%0D%0A%0D%0A%0D%0A%0D%0Ato%20an%20Arduino%20Duemilanove%20microprocessor%20IO%20board%2C%20Arduino%20Ethernet%20Shield%20and%20some%20240V%2030A%20relays%3F%0D%0A%0D%0A%0D%0A%0D%0AWell%2C%20my%20hope%20is%20that%20I%20can%20get%20our%20whole%20office%20engaged%20in%20" title="Google Bookmarks"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D395&amp;t=Engaging%20development" title="Facebook"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D395&amp;title=Engaging%20development" title="StumbleUpon"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=Engaging%20development%20-%20http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D395" title="Twitter"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.fixmybugs.com/?feed=rss2&amp;p=395</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deadliest Catch on iPhone</title>
		<link>http://www.fixmybugs.com/?p=388</link>
		<comments>http://www.fixmybugs.com/?p=388#comments</comments>
		<pubDate>Mon, 12 Apr 2010 09:34:19 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://www.fixmybugs.com/?p=388</guid>
		<description><![CDATA[It&#8217;s finally out&#8230; The game I and others at FinBlade have been working on for the last 7 months is available to buy on the iTunes App Store, just in time for the new series of Deadliest Catch too.  Of course, 7 months doesn&#8217;t just get you an iPhone game, there&#8217;s Android, J2ME, BREW, Blackberry [...]]]></description>
			<content:encoded><![CDATA[<p><img src="file:///C:/Documents%20and%20Settings/Stephen%20Longhurst/Desktop/dc.jpg" alt="" /></p>
<p style="text-align: center;"><a href="http://itunes.apple.com/gb/app/deadliest-catch/id331933780?mt=8"><img class="size-full wp-image-389 aligncenter" title="Deadliest Catch" src="http://www.longsteve.com/fixmybugs/wp-content/uploads/2010/04/dc.jpg" alt="Deadliest Catch" width="480" height="320" /></a></p>
<p>It&#8217;s finally out&#8230;  The game I and others at FinBlade have been working on for the last 7 months is available to buy on the <a href="http://itunes.apple.com/gb/app/deadliest-catch/id331933780?mt=8">iTunes App Store</a>, just in time for the new series of <a href="http://dsc.discovery.com/tv/deadliest-catch/">Deadliest Catch</a> too.  Of course, 7 months doesn&#8217;t just get you an iPhone game, there&#8217;s Android, J2ME, BREW, Blackberry and others coming.</p>
<p>I&#8217;ve been so busy at work over the last couple of months I&#8217;ve not managed any postings to this blog, as you can of course see from the sorry state of the updates.  My logs show that people are actually looking at this site, and the numbers have remained small but steady, so I will be continuing postings as I can.</p>
<p>I have a week off work at this very moment with an interesting project I&#8217;m actually excited to be doing, so I shall be posting updates on that as I go.  There are also plenty of things still to write about on my list, so with some nice weather finally here, maybe I can get a bit of posting momentum going again.</p>



Share this post:


	<a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D388&amp;title=Deadliest%20Catch%20on%20iPhone&amp;bodytext=%0D%0A%0D%0AIt%27s%20finally%20out...%20%20The%20game%20I%20and%20others%20at%20FinBlade%20have%20been%20working%20on%20for%20the%20last%207%20months%20is%20available%20to%20buy%20on%20the%20iTunes%20App%20Store%2C%20just%20in%20time%20for%20the%20new%20series%20of%20Deadliest%20Catch%20too.%C2%A0%20Of%20course%2C%207%20months%20doesn%27t%20just%20get%20you%20an%20i" title="Digg"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://reddit.com/submit?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D388&amp;title=Deadliest%20Catch%20on%20iPhone" title="Reddit"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D388&amp;title=Deadliest%20Catch%20on%20iPhone&amp;notes=%0D%0A%0D%0AIt%27s%20finally%20out...%20%20The%20game%20I%20and%20others%20at%20FinBlade%20have%20been%20working%20on%20for%20the%20last%207%20months%20is%20available%20to%20buy%20on%20the%20iTunes%20App%20Store%2C%20just%20in%20time%20for%20the%20new%20series%20of%20Deadliest%20Catch%20too.%C2%A0%20Of%20course%2C%207%20months%20doesn%27t%20just%20get%20you%20an%20i" title="del.icio.us"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D388" title="Technorati"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D388&amp;title=Deadliest%20Catch%20on%20iPhone&amp;annotation=%0D%0A%0D%0AIt%27s%20finally%20out...%20%20The%20game%20I%20and%20others%20at%20FinBlade%20have%20been%20working%20on%20for%20the%20last%207%20months%20is%20available%20to%20buy%20on%20the%20iTunes%20App%20Store%2C%20just%20in%20time%20for%20the%20new%20series%20of%20Deadliest%20Catch%20too.%C2%A0%20Of%20course%2C%207%20months%20doesn%27t%20just%20get%20you%20an%20i" title="Google Bookmarks"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D388&amp;t=Deadliest%20Catch%20on%20iPhone" title="Facebook"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D388&amp;title=Deadliest%20Catch%20on%20iPhone" title="StumbleUpon"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=Deadliest%20Catch%20on%20iPhone%20-%20http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D388" title="Twitter"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.fixmybugs.com/?feed=rss2&amp;p=388</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Liang-Barsky Polygon Clipping Example</title>
		<link>http://www.fixmybugs.com/?p=359</link>
		<comments>http://www.fixmybugs.com/?p=359#comments</comments>
		<pubDate>Sun, 08 Nov 2009 10:30:50 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.fixmybugs.com/?p=359</guid>
		<description><![CDATA[According to site stats, my Sky Diver article is one of the popular ones so far, and in particular, people seem to hit it after searching for Liang-Barsky clipping. Since I&#8217;ve not had any comments or contacts relating to the code I posted, I don&#8217;t know if it&#8217;s what people are expecting or not. However, [...]]]></description>
			<content:encoded><![CDATA[<p>According to site stats, my <a href="http://www.fixmybugs.com/?p=183">Sky Diver article</a> is one of the popular ones so far, and in particular, people seem to hit it after searching for Liang-Barsky clipping.  Since I&#8217;ve not had any comments or contacts relating to the code I posted, I don&#8217;t know if it&#8217;s what people are expecting or not.  However, I do know that it&#8217;s not immediately usable without some thought, and I&#8217;ve wanted to provide a complete example for a while.</p>
<p>So, here it is. I&#8217;ve taken the <a href="http://www.fixmybugs.com/?page_id=210" target="_blank">Liang-Barsky polygon clip code</a> I posted, and worked it into an example Java Applet, which you can hopefully see below if you have Java enabled in your browser.  The code has only been changed to remove it&#8217;s fixed point nature (no more <strong>&#8216;&lt;&lt; 8&#8242;</strong> to confuse things), and I&#8217;ve added a framework around it that calls the clip method, so you can hopefully see what&#8217;s going on.</p>
<p>I&#8217;ve not written up a complete tutorial on how the clipping works, like I said before, for that you need to read <a href="http://www.amazon.co.uk/Computer-Graphics-reissued-2nd-Ed/dp/0201848406">Computer Graphics, Principles and Practice</a> by Foley, Van Dam, et. al. or search the internet for tutorials like <a href="http://www.skytopia.com/project/articles/compsci/clipping.html">this good one at </a>Skytopia.</p>
<p>Here&#8217;s the applet for you to play with.  Click on the image below to load and start it, then use the arrow keys to adjust the clip boundaries.</p>
<p><script src="/fixmybugs/java-applets/startapplet.js" type="text/javascript"></script></p>
<div id="appletplace"><img onclick="startApplet('http://www.longsteve.com/fixmybugs/java-applets/', 'LiangBarskyPolygonClip', 'LiangBarskyPolygonClip.jar', 200, 200)" src="/fixmybugs/java-applets/LiangBarskyPolygonClip.png" alt="" /></div>
<p><em>Note that I&#8217;ve used a little bit of Javascript to start the applet with a click on the image so that the full Java environment isn&#8217;t loaded every time this post is shown. You need Java and Javascript enabled for it all to work.</em></p>
<h3><a href="http://www.longsteve.com/fixmybugs/java-applets/LiangBarskyPolygonClip.zip">Full source code can be downloaded here. </a></h3>
<p>Hope it&#8217;s useful.</p>



Share this post:


	<a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D359&amp;title=Liang-Barsky%20Polygon%20Clipping%20Example&amp;bodytext=According%20to%20site%20stats%2C%20my%20Sky%20Diver%20article%20is%20one%20of%20the%20popular%20ones%20so%20far%2C%20and%20in%20particular%2C%20people%20seem%20to%20hit%20it%20after%20searching%20for%20Liang-Barsky%20clipping.%20%20Since%20I%27ve%20not%20had%20any%20comments%20or%20contacts%20relating%20to%20the%20code%20I%20posted%2C%20I%20don%27t%20k" title="Digg"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://reddit.com/submit?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D359&amp;title=Liang-Barsky%20Polygon%20Clipping%20Example" title="Reddit"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D359&amp;title=Liang-Barsky%20Polygon%20Clipping%20Example&amp;notes=According%20to%20site%20stats%2C%20my%20Sky%20Diver%20article%20is%20one%20of%20the%20popular%20ones%20so%20far%2C%20and%20in%20particular%2C%20people%20seem%20to%20hit%20it%20after%20searching%20for%20Liang-Barsky%20clipping.%20%20Since%20I%27ve%20not%20had%20any%20comments%20or%20contacts%20relating%20to%20the%20code%20I%20posted%2C%20I%20don%27t%20k" title="del.icio.us"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D359" title="Technorati"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D359&amp;title=Liang-Barsky%20Polygon%20Clipping%20Example&amp;annotation=According%20to%20site%20stats%2C%20my%20Sky%20Diver%20article%20is%20one%20of%20the%20popular%20ones%20so%20far%2C%20and%20in%20particular%2C%20people%20seem%20to%20hit%20it%20after%20searching%20for%20Liang-Barsky%20clipping.%20%20Since%20I%27ve%20not%20had%20any%20comments%20or%20contacts%20relating%20to%20the%20code%20I%20posted%2C%20I%20don%27t%20k" title="Google Bookmarks"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D359&amp;t=Liang-Barsky%20Polygon%20Clipping%20Example" title="Facebook"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D359&amp;title=Liang-Barsky%20Polygon%20Clipping%20Example" title="StumbleUpon"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=Liang-Barsky%20Polygon%20Clipping%20Example%20-%20http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D359" title="Twitter"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.fixmybugs.com/?feed=rss2&amp;p=359</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Games I&#8217;ve Coded &#8211; Adventure Race</title>
		<link>http://www.fixmybugs.com/?p=328</link>
		<comments>http://www.fixmybugs.com/?p=328#comments</comments>
		<pubDate>Tue, 03 Nov 2009 20:46:45 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[projects]]></category>

		<guid isPermaLink="false">http://www.fixmybugs.com/?p=328</guid>
		<description><![CDATA[Finally, here&#8217;s the last of the embedded Nokia Series 40 &#8220;Games I&#8217;ve Coded&#8221;, Adventure Race (AR). Originally available on the Nokia 5140i, a beefed up successor to the 5100 that came with Sky Diver.  The 5140i was one of the newer breed of Series 40 2nd Edition devices, which included increased heap memory (up from [...]]]></description>
			<content:encoded><![CDATA[<p>Finally, here&#8217;s the last of the embedded Nokia Series 40 &#8220;Games I&#8217;ve Coded&#8221;, Adventure Race (AR).</p>
<p><img class="alignnone size-full wp-image-338" title="AR Splash" src="http://www.longsteve.com/fixmybugs/wp-content/uploads/2009/10/splash.png" alt="AR Splash" width="127" height="115" /><img class="alignnone size-full wp-image-339" title="Nokia 5140i" src="http://www.longsteve.com/fixmybugs/wp-content/uploads/2009/10/5140i.jpg" alt="Nokia 5140i" width="144" height="312" /></p>
<p>Originally available on the <a href="http://www.nokia.co.uk/find-products/all-phones/nokia-5140i">Nokia 5140i</a>, a beefed up successor to the 5100 that came with <a href="http://www.fixmybugs.com/?p=183">Sky Diver</a>.  The 5140i was one of the newer breed of Series 40 2nd Edition devices, which included increased heap memory (up from 200k to 500k), bigger jar file size limits (up from 64k to 128k) and the MIDP 2.0 specification programming interfaces.  It still had a 128&#215;128 pixel display with a pretty slow refresh, but we&#8217;d gotten used to that by now!</p>
<p>The device was aimed at outdoor type people, with a splash proof case, digital compass, thermometer and built in flash-light.  Nokia at the time were sponsoring and entering teams into <a href="http://press.nokia.com/PR/200003/774971_5.html">Adventure Sports</a> events, and wanted a game on their &#8216;sporty&#8217; device to reflect this, so we (Iomo) proposed Adventure Race, and it was my job to code it.  From the outset, with the extra memory to fill, the scope of AR was bigger than my previous games, and this was the first one that I was going to code completely from scratch.  Almost none of the game&#8217;s ideas had been prototyped by someone else first, or coded for other devices, so this was my first completely &#8216;solo&#8217; programming project.</p>
<p>The game concept involved bringing together 3 sports, cycling, running and kayaking, into &#8216;iron man&#8217; like events, with some orienteering thrown in for good measure.  I&#8217;ll write about each sport game here including any coding high (and low) points that I can remember.  But first, here&#8217;s a video&#8230;</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/nJbce6dqfvM" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/nJbce6dqfvM"></embed></object></p>
<p>There&#8217;s another video at the end of the post if you&#8217;d like to see some more <img src='http://www.longsteve.com/fixmybugs/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h2>Cycling</h2>
<p>The cycling game was based around rhythmic button presses to move the bike forward (pedalling), with interspersed downhill sections (free-wheeling) where the player was required to move left and right, or in and out of the screen, avoiding obstacles.  At the bottom of the hills the action back to the rhythmic pedalling again.  The correct rhythm was key to moving along at a decent pace, and avoiding obstacles so as to not crash got you the best time for the section.</p>
<p>The interesting bit of code that came out of this game was the algorithm to generate a terrain to cycle along, with hills and flats.  I found details on the net for <a href="http://gameprogrammer.com/fractal.html">midpoint displacement</a>, and it was so simple, and exactly what I wanted for a 2D terrain that coding it was a no brainer.  The concept is simple:</p>
<ol>
<li>Take a straight horizontal line.</li>
<li>Find the mid point, then displace that point vertically by a random amount.</li>
<li>Then repeat for the two new line segments, and so on.</li>
</ol>
<p>By varying the ranges of the random numbers, and the number of times you repeat the iteration, you end up with very realistic looking mountain ridge lines, it&#8217;s awesome.  Here&#8217;s the code I ended up with:</p>
<pre name="code" class="java"> course_line_segments = 1;
 course_map = new int[4];
 course_map[course_map_x1] = 0;
 course_map[course_map_h1] = 0;
 course_map[course_map_x2] = (256&lt;&lt;8);
 course_map[course_map_h2] = 0;

 int roughness = 32;     // Should be between 0 and 128
 int iterations = 4;     // 4 gives a good value
 int displace = 32768;   // +/-
 for(i = 0; i &lt; iterations; i++) {
    new_course_map = new int[course_line_segments &lt;&lt; 3]; // (course_line_segments*2) * 4

    // for each course line segment, we output 2 new segments
    for(int j = 0; j &lt; course_line_segments; j++) {
       int x1 = course_map[(j&lt;&lt;2)+course_map_x1];
       int h1 = course_map[(j&lt;&lt;2)+course_map_h1];
       int x2 = course_map[(j&lt;&lt;2)+course_map_x2];
       int h2 = course_map[(j&lt;&lt;2)+course_map_h2];

       // first new segment
       new_course_map[(j&lt;&lt;3)+course_map_x1] = x1;
       new_course_map[(j&lt;&lt;3)+course_map_h1] = h1;
       new_course_map[(j&lt;&lt;3)+course_map_x2] = x1 + ((x2-x1)&gt;&gt;1);
       int rn = random(displace);
       int mid_height = (h2&gt;h1?h2-h1:h1-h2)&gt;&gt;1;
       new_course_map[(j&lt;&lt;3)+course_map_h2] = mid_height + (rn - (displace&gt;&gt;1));

       // second new segment
       new_course_map[4+(j&lt;&lt;3)+course_map_x1] = new_course_map[(j&lt;&lt;3)+course_map_x2];
       new_course_map[4+(j&lt;&lt;3)+course_map_h1] = new_course_map[(j&lt;&lt;3)+course_map_h2];
       new_course_map[4+(j&lt;&lt;3)+course_map_x2] = x2;
       new_course_map[4+(j&lt;&lt;3)+course_map_h2] = h2;
    }

    course_map = new_course_map;
    new_course_map = null;

    course_line_segments &lt;&lt;= 1;
    displace = (displace*(roughness+128))&gt;&gt;8;
 }</pre>
<p>I&#8217;ve <a href="http://www.longsteve.com/fixmybugs/wp-content/uploads/2009/10/displacement.zip">created a simple demo</a> using this code and packaged it up into a Java class that just displays a window on the screen 128&#215;128 pixels in size, and continuously creates new displacement ridge lines.  It looks a bit like an audio monitor or something!  Change the iterations to 8 and you get something even more like the output from a speech synthesizer.</p>
<p><img class="alignnone size-full wp-image-340" title="AdventureRace Cycling" src="http://www.longsteve.com/fixmybugs/wp-content/uploads/2009/10/AdventureRace_cycling.png" alt="AdventureRace Cycling" width="128" height="128" /></p>
<p>Drawing the terrain in the game turned out to be pretty easy too.  After scaling the data to something appropriate (smoothing out steep slopes, that sort of thing), simply draw a rectangle on the right hand side of the screen, shift the screen buffer left by the width of the rectangle, then draw another one a bit taller or shorter, depending upon the current slope.  This approach is very easy to tune for performance too.  By drawing larger rectangles, you need fewer of them (which means drawing a screen is faster), however the trade off is that the terrain looks blockier.  If you look at the screenshot below, you can see all the rectangles for a screen coloured differently.  The best speed/visual trade off turned out to be about 24 rectangles or so by the looks of things.</p>
<h2>Running</h2>
<p>Having sorted out the terrain for the cycling game, reusing it for the running was the obvious thing to do.  Rather than duplicate the rhythm mechanic though, we decided to go with a more resource management approach.  The runner has energy that gets used up the faster he runs, and the faster he runs uphill, running downhill uses less energy.  You directly control the speed of the runner, and have to manage his energy so he gets to the finish line in the best time.  Obviously sprinting flat out isn&#8217;t going to work because he&#8217;ll quickly get tired and slowly jog along knackered!  Since the running mechanic doesn&#8217;t involve constantly pressing keys, we reused the left/right dodge oncoming objects idea from the cycling game and made it a core part of the running, so the player can&#8217;t just sit back and watch.  There are also sprint sections where other runners come up and attempt to overtake you, and you must button bash to keep ahead of them.  For fairness, the sprint sections work independently of the energy levels, and there are also energy drinks you can collect on the way.</p>
<p><img class="alignnone size-full wp-image-341" title="AdventureRace Running" src="http://www.longsteve.com/fixmybugs/wp-content/uploads/2009/10/AdventureRace_running.png" alt="AdventureRace Running" width="128" height="128" /></p>
<p>From the code point of view, there is lots of reuse between the cycling and running games.  The colour palettes are changed, and the control schemes differ, but due to both games using the same core, the game specific bits are quite small.  Even combined, they are still smaller than the kayaking game!</p>
<h2>Kayaking</h2>
<p>The 3rd game in the sequence was a top down, vertically scrolling kayak game.  I&#8217;m pretty sure that this was the 3rd game I implemented too, sorting out the running and cycling first with their similar code, then moving onto the more involved kayaking.  I say more involved because there turned out to be several elements to this game that were (at the time) new to me and things I&#8217;d not done before.</p>
<p><a href="http://www.longsteve.com/fixmybugs/wp-content/uploads/2009/11/kayak_screenshot_1.png"><img class="alignnone size-full wp-image-348" title="Kayaking" src="http://www.longsteve.com/fixmybugs/wp-content/uploads/2009/11/kayak_screenshot_1.png" alt="Kayaking" width="128" height="128" /></a></p>
<p>As you might be able to see from the screenshot (and the earlier video), this game needed the following major elements:</p>
<ul>
<li>Collision detection for both the water obstacles and the river bank edges.</li>
<li>A procedurally generated river bank.</li>
<li>A large number of animated sprites.</li>
</ul>
<h3>Collision Detection</h3>
<p>The front of the kayak sprite is pointed, and as it&#8217;s moving down the river, simple bounding rectangle collision didn&#8217;t look all that great.  It was frustrating to get stuck on objects when the point of the kayak was clearly free.  I ended up creating a pixel perfect collision system based on pre-generated bit masks for all the sprites.  Using bit masks, and performing shifts and logical <strong>&amp;</strong> operations after two sprites had failed a bounding rectangle collision test worked very well.  All I had to do was write a simple tool that took a sprite PNG file and generated mask bytes for each pixel row based on the non-transparent pixels.  Skimming edges of the river and the rocks felt nice after that.</p>
<h3>Spline Curve River Bank</h3>
<p>The best way to generate the river bank turned out to be using two natural cubic spline curves (one for each bank).  By generating the curve in sections as the river scrolled up the screen, only a few calculations needed to be performed each frame to keep things moving along.  Obviously the first screen had to all generated before display, but that was done during the loading phase.  To get the graduated blue to yellow effect, I simple scaled the x value of the spline calculation, so getting a decent looking &#8216;shallows&#8217; effect.</p>
<p>I was really proud of that spline curve shoreline.  It&#8217;s segmented calculation and subsequent rendering using only (fast) horizontal lines worked really well.  I&#8217;d like to post some of the spline code, but it&#8217;s quite awkward to understand with all the fixed point maths, and the specialised segmented calculations.  If I get any requests to see it, and I can be bothered to tidy it into something I&#8217;d be prepared to post (like the midpoint displacement example above) then I might do it!</p>
<h3>Animated Sprites</h3>
<p>The kayak sprite itself has 52 frames of animation, the wake 24, rolling log 16 (+16 for it&#8217;s water splash), 6 frames for the weir, 9 leaping fish frames 15 different rock frames and an 8 frame finish line flag animation.  Not only is that a lot of pixels for one quarter of a 4 game pack that needs to fit into a 128k jar file, but that&#8217;s a lot of runtime heap when you needs 2 bytes per pixel. Here is the kayak sprite animation the artist created:</p>
<p><a href="http://www.longsteve.com/fixmybugs/wp-content/uploads/2009/11/kayaking.png"><img class="alignnone size-full wp-image-349" title="Kayaking Sprite Frames" src="http://www.longsteve.com/fixmybugs/wp-content/uploads/2009/11/kayaking.png" alt="Kayaking Sprite Frames" width="380" height="152" /><br />
</a></p>
<p>It&#8217;s only pointing one direction since the Nokia UI was used to draw the sprite horizontally flipped when moving to the right.</p>
<p>I ended up compressing the sprites into a palettised format that squashed 3 or 4 pixels into a byte depending upon the number if colours in the image, then RLE compressing this data. Then, rather than loading the data into individual pixel buffers for each sprite, which would take up  2  * width * height bytes for each sprite, I actually decompressed each sprite frame into a single small buffer as it needed drawing, each render cycle.  Because the actual number of operations to decode a sprite wasn&#8217;t huge, and there weren&#8217;t very large numbers of sprites on the screen at any one time, the 5140i coped perfectly well.  This technique saved loads of heap memory and I allowed for a really richly animated game in total, not just for the kayaking section.</p>
<h2>Orienteering</h2>
<p>Finally, the &#8216;filler&#8217; section was a bit of orienteering.  This involved seeing a sort of first person view from a position on a map, and you had to guess where you were.  The concept had already been done by iomo as a WAP game, and I found a screen grab!</p>
<p><a href="http://www.longsteve.com/fixmybugs/wp-content/uploads/2009/11/mockup_orienteering.png"><img class="alignnone size-full wp-image-353" title="Orienteering WAP" src="http://www.longsteve.com/fixmybugs/wp-content/uploads/2009/11/mockup_orienteering.png" alt="Orienteering WAP" width="128" height="128" /></a></p>
<p>The code for this was a simple perspective projection of a 2D bitmap I borrowed from one of the other programmers at iomo.    Since this was done last, it ended up being a bit squeezed for development time and only 4 maps were included in the end, with some rotation for variation.  Still, it was a nice enough short diversion in between the other fairly long and involved sections of the game.</p>
<h2>Finally</h2>
<p>Whilst looking over the bits of my old project (remember this dates back to around mid 2003) I also happened upon probably the most reused bit of code I&#8217;ve ever wrote.  The ending sequence for AR was a podium animation with the player getting 1st, 2st or 3rd, and a failure screen where they were weeping for their loss.  In the background of the podium animation I added some simple particle fireworks, which you can see in this video:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/gMNEy2BbRtE" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/gMNEy2BbRtE"></embed></object></p>
<p>That small particle routine has been reused in a considerable number of my games since then, and it&#8217;s still included in my very latest project, that&#8217;s being coded this minute.  Having also showed it to <a href="http://www.megadev.co.uk">Mike Tucker</a>, another iomo original programmer and all round awesome guy, he reused it all over the place too.  I wouldn&#8217;t be surprised if the same code is the basis for the particles you see in the very latest Flash stuff Mike does!</p>
<p>Finally finally, thanks for reading this far and as a treat here&#8217;s my original programmer art splash screen.  Much better than the professional artist created one if you ask me <img src='http://www.longsteve.com/fixmybugs/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><a href="http://www.longsteve.com/fixmybugs/wp-content/uploads/2009/11/splash.png"><img class="alignnone size-full wp-image-354" title="Programmer Art" src="http://www.longsteve.com/fixmybugs/wp-content/uploads/2009/11/splash.png" alt="Programmer Art" width="128" height="128" /></a></p>



Share this post:


	<a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D328&amp;title=Games%20I%27ve%20Coded%20-%20Adventure%20Race&amp;bodytext=Finally%2C%20here%27s%20the%20last%20of%20the%20embedded%20Nokia%20Series%2040%20%22Games%20I%27ve%20Coded%22%2C%20Adventure%20Race%20%28AR%29.%0D%0A%0D%0A%0D%0A%0D%0AOriginally%20available%20on%20the%20Nokia%205140i%2C%20a%20beefed%20up%20successor%20to%20the%205100%20that%20came%20with%20Sky%20Diver.%C2%A0%20The%205140i%20was%20one%20of%20the%20newer%20breed%20of%20Se" title="Digg"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://reddit.com/submit?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D328&amp;title=Games%20I%27ve%20Coded%20-%20Adventure%20Race" title="Reddit"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D328&amp;title=Games%20I%27ve%20Coded%20-%20Adventure%20Race&amp;notes=Finally%2C%20here%27s%20the%20last%20of%20the%20embedded%20Nokia%20Series%2040%20%22Games%20I%27ve%20Coded%22%2C%20Adventure%20Race%20%28AR%29.%0D%0A%0D%0A%0D%0A%0D%0AOriginally%20available%20on%20the%20Nokia%205140i%2C%20a%20beefed%20up%20successor%20to%20the%205100%20that%20came%20with%20Sky%20Diver.%C2%A0%20The%205140i%20was%20one%20of%20the%20newer%20breed%20of%20Se" title="del.icio.us"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D328" title="Technorati"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D328&amp;title=Games%20I%27ve%20Coded%20-%20Adventure%20Race&amp;annotation=Finally%2C%20here%27s%20the%20last%20of%20the%20embedded%20Nokia%20Series%2040%20%22Games%20I%27ve%20Coded%22%2C%20Adventure%20Race%20%28AR%29.%0D%0A%0D%0A%0D%0A%0D%0AOriginally%20available%20on%20the%20Nokia%205140i%2C%20a%20beefed%20up%20successor%20to%20the%205100%20that%20came%20with%20Sky%20Diver.%C2%A0%20The%205140i%20was%20one%20of%20the%20newer%20breed%20of%20Se" title="Google Bookmarks"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D328&amp;t=Games%20I%27ve%20Coded%20-%20Adventure%20Race" title="Facebook"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D328&amp;title=Games%20I%27ve%20Coded%20-%20Adventure%20Race" title="StumbleUpon"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=Games%20I%27ve%20Coded%20-%20Adventure%20Race%20-%20http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D328" title="Twitter"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.fixmybugs.com/?feed=rss2&amp;p=328</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bookmarks and RSS out of the dark ages</title>
		<link>http://www.fixmybugs.com/?p=330</link>
		<comments>http://www.fixmybugs.com/?p=330#comments</comments>
		<pubDate>Sat, 26 Sep 2009 14:56:52 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[bookmarks]]></category>
		<category><![CDATA[delicious]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.fixmybugs.com/?p=330</guid>
		<description><![CDATA[There have been a couple of things I've wanted to do for ages now that I simply haven't had the time to get around to.  They involve tearing myself away from the antiquated single user RSS reader and browser bookmarking that I use. 

I know this stuff isn't new, online bookmark services and news aggregators have been around for ages. However, these two aspects of my computer use have been deeply ingrained for so long that changing them would be quite a time consuming task. There are literally hundreds of such services to choose from, with feature sets, compatibility, security and general ease of use to be considered before jumping into one.

However, Google Reader and Delicious are now my RSS and Bookmark services of choice.]]></description>
			<content:encoded><![CDATA[<p>There have been a couple of things I&#8217;ve wanted to do for ages now that I simply haven&#8217;t had the time to get around to.  They involve tearing myself away from the antiquated single user RSS reader and browser bookmarking that I use.</p>
<p><a href="http://en.wikipedia.org/wiki/RSS">RSS</a> and <a href="http://en.wikipedia.org/wiki/Atom_%28standard%29">Atom</a> are excellent, truly a triumph of the useful. I have a large number of RSS feeds I love to read, all saved in <a href="https://addons.mozilla.org/en-US/firefox/addon/77">Sage</a>, the Firefox add-on RSS reader  The problem is that I have Firefox installations on 5 computers, and I&#8217;m now using my iPhone more and more for reading.  If I read some of those feeds on my machine at work, or add a new one, that information isn&#8217;t replicated to the other devices I also use. Similarly with the bookmarks, no central store, so they&#8217;re duplicated all over the place, and if I add a new bookmark on one machine, but would like to look at it somewhere else, I&#8217;m stuck trying to remember the page and Googling it.</p>
<p>I know this stuff isn&#8217;t new, online bookmark services and news <a href="http://en.wikipedia.org/wiki/Aggregator">aggregators</a> have been around for ages. However, these two aspects of my computer use have been deeply ingrained for so long that changing them would be quite a time consuming task. There are literally hundreds of such services to choose from, with feature sets, compatibility, security and general ease of use to be considered before jumping into one.</p>
<p>I primarily spend time on a computer at work, and when at work, I need to spend the majority of my time programming, and actually working.  Reading about online bookmark and RSS aggregator sites, actually choosing one, signing up, testing it out, installing plugins, migrating my existing data into it all takes time I can&#8217;t spend at work.  When I get home, having spent all day on a computer, the last thing I want to do is spend more time at a keyboard.  At the weekends, there are also plenty of things to do that don&#8217;t involve computers, and rarely do I type on Saturday or Sunday, unless it&#8217;s to work!</p>
<p>So, there&#8217;s my dilema! Luckily though, today (Saturday) I happen to find myself with a desire to update my computer using experience with some modern online based tools, and the time to actually do it.  There&#8217;s even time to write on this blog.</p>
<h2>Bookmarks</h2>
<p>I took a bit of time to wonder if I wanted to actually use a site that shared my bookmarks with everyone else, or look for a &#8216;<a href="http://www.devlounge.net/code/how-to-use-wordpress-for-bookmarking">roll you own</a>&#8216; solution using my own hosted server (longsteve.com) and probably some WordPress addon or custom PHP code.  The benefit would be that I maintained control of my own bookmark data, and that I didn&#8217;t have to care about anyone else seeing my bookmarks unless I unwittingly exposed them in some way.  Then I thought, I don&#8217;t really care about other people seeing my bookmarks, or at least the vast majority of them.  All the sites I looked at allowed me to set a private flag on any bookmarks I created. It then becomes a matter of how much trust I want to place in the site I choose to give all my bookmarks too.  Since lots of other companies already have more data on me than I care to think about, I think my bookmarks are really nothing to worry about!</p>
<p>Since <a href="http://delicious.com/">Delicious</a> were pretty much the pioneers in this area, and <a href="http://blog.wired.com/business/2009/01/magnolia-suffer.html">Ma.gnolia</a> went down some time ago, I think the choice was already made for me.  So far things look good.  The site is easy to use, there are iPhone apps that allow me access to the bookmark data, and the Firefox plugin keeps all the bookmarks in sync between different computers, exactly what I need.</p>
<h2>RSS Reader</h2>
<p>I&#8217;ve already enjoyed reading on digital devices, especially my Nokia E90 with it&#8217;s awesome internal 800 pixel wide screen, for some time now.  Web pages and e-books are great.  I was skeptical about the iPhone for a while, with it&#8217;s lower resolution, but the screen is so bright and clear that reading on it is a joy.  My 3GS is so fast that it seems pointless waiting for a PC to boot up, or even my laptop to wake up from sleeping if I want to read something on the web.  More so than bookmarking, having a decent iPhone/mobile experience for an online RSS reader was important, and <a href="http://www.google.com/reader">Google Reader</a> fits the bill.  It&#8217;s great on the iPhone and the desktop experience isn&#8217;t that far from Sage.  Again, my only concern is the sharing of my personal preferences with a large corporation like Google.  They&#8217;re not getting any money out of me directly, and although they try and tempt me with adverts, <a href="https://addons.mozilla.org/en-US/firefox/addon/1865">AdBlock</a> sees most of those off, so what&#8217;s in it for Google?  Of course, it&#8217;s information about me they are getting, and every day, I willingly give them more and more of it.  One day, Google will buy Nectar and O2, and then they will know more about me than even I or my wife do.  The <a href="http://whereismydata.wordpress.com/category/2-law/uk-law/isp-data-retention/">UK government</a> don&#8217;t need to use ISP data to keep tabs on people, they just need to get cosy with Google.</p>
<p>Although I occasionally use GMail, I&#8217;m not giving up <a href="http://www.ritlabs.com/en/products/thebat/">The Bat!</a> and my own POP3 hosting account just yet!</p>



Share this post:


	<img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://reddit.com/submit?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D330&amp;title=Bookmarks%20and%20Fix+My+Bugs%20out%20of%20the%20dark%20ages" title="Reddit"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D330" title="Technorati"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D330&amp;t=Bookmarks%20and%20Fix+My+Bugs%20out%20of%20the%20dark%20ages" title="Facebook"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D330&amp;title=Bookmarks%20and%20Fix+My+Bugs%20out%20of%20the%20dark%20ages" title="StumbleUpon"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=Bookmarks%20and%20Fix+My+Bugs%20out%20of%20the%20dark%20ages%20-%20http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D330" title="Twitter"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.fixmybugs.com/?feed=rss2&amp;p=330</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Games I&#8217;ve Coded &#8211; Snake EX2</title>
		<link>http://www.fixmybugs.com/?p=306</link>
		<comments>http://www.fixmybugs.com/?p=306#comments</comments>
		<pubDate>Sun, 23 Aug 2009 17:56:14 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[J2ME]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[snake]]></category>

		<guid isPermaLink="false">http://www.fixmybugs.com/?p=306</guid>
		<description><![CDATA[An article on Snake EX2, which I coded for the Nokia 3300 and other devices when I was at iomo.]]></description>
			<content:encoded><![CDATA[<p>My next game in the &#8220;Games I&#8217;ve Coded&#8221; series is Snake EX2, originally available with the Nokia 3300.</p>
<p><img class="size-full wp-image-319 alignnone" title="Snake EX2 Title" src="http://www.longsteve.com/fixmybugs/wp-content/uploads/2009/08/SnakeEX2_001.png" alt="Snake EX2 Title" width="128" height="127" /></p>
<p><img class="size-full wp-image-318 alignnone" title="Nokia 3300" src="http://www.longsteve.com/fixmybugs/wp-content/uploads/2009/08/3300_main.jpg" alt="Nokia 3300" width="312" height="204" /></p>
<p>From what I remember, I&#8217;m going pretty much in chronological order of Nokia embedded &#8216;white label&#8217; games at the moment.  There&#8217;s one more game to go for Nokia and one more application that wasn&#8217;t a game but more of a handy utility.  I wish I could find the time at the moment to write more, and I&#8217;d love to get a post in about my companies latest product as soon as it&#8217;s available and I can talk about it publicly.  I&#8217;m probably going to jump around a bit then with games I&#8217;ve coded and cherry pick the good ones that will make for some interesting writing.</p>
<p>I&#8217;m really glad I can say I wrote a <a href="http://en.wikipedia.org/wiki/Snake_(video_game)">Snake</a> game on mobile.  Even today, when I tell almost anyone what I do for a living, they know what Snake is.  It&#8217;s one of those milestone beacons in the mobile game industry that shines out into the wider media and public consciousness.  Of course, I didn&#8217;t come up with the Snake idea, and even the code base for Snake EX2 was an iteration of the J2ME version of Snake 2, done by my then colleague <a href="http://www.linkedin.com/in/slick">Nick Slaven</a>, but at least I can truthfully answer yes when anyone says &#8220;You do mobile phone games eh?  Like Snake?&#8221;.</p>
<p><img class="alignnone size-full wp-image-325" title="Snake_128x128_001" src="http://www.longsteve.com/fixmybugs/wp-content/uploads/2009/08/Snake_128x128_001.png" alt="Snake_128x128_001" width="128" height="128" /></p>
<p>There nothing very technically interesting to say about the Snake code really.  It consists of the usual small number of J2ME essentials, a MIDlet, Canvas, TimerTask, a game engine class and a couple of extras like a custom gauge canvas for picking the difficulty level and two classes for the sound code.  The game was designed to use the (then new) Multimedia API for J2ME which was included with the 3300, but it also needed to work on phones without the MMAPI, so it had a fallback using old style Nokia ringtone audio.  Total lines of code came to ~5000.  As you can imagine,  Snake isn&#8217;t very heavy on the resources either.  12 midi files for the audio effects and 8 differnet PNG images for the graphics, not including the title screen, were all that was needed.</p>
<p>One thing that I do remember is the way that the game only updated the screen where necessary each frame.  These days, it&#8217;s pretty common to do a full screen refresh each frame on mobile games, but on the older devices, it was worth being careful about full screen updates.  In Snake, only the head, tail and any food that popped in or out needed to be updated each frame.  Doing this meant the frame rate would keep to a steady 15 fps no matter how long the snake got.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/EBYIJ1GPvG8&amp;hl=en&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/EBYIJ1GPvG8&amp;hl=en&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>You might notice there isn&#8217;t a background &#8216;texture&#8217; to the playing area, it&#8217;s a plain colour.  We originally had a sand like background tile, but when we finally got a real device to test with, the screen quality was quite poor.  It couldn&#8217;t cope with the background pattern and there was a noticeable pixel crawl that occurred, so we had to get rid of it before the game was finished.</p>
<p><img class="alignnone size-full wp-image-321" title="sand tile" src="http://www.longsteve.com/fixmybugs/wp-content/uploads/2009/08/sand-tile.png" alt="sand tile" width="32" height="32" /></p>
<p>If you search <a href="http://www.youtube.com">YouTube</a>, you can find various videos of people getting massive scores on Snake games, including EX2.  One even shows a nice bug where the food spawns over the snake when it&#8217;s really long and fills the screen.  It  doesn&#8217;t seem to crash the game or cause a problem, except for having to keep moving the snake until the food gets free before eating it!  Nokia QA must have missed that one.</p>



Share this post:


	<a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D306&amp;title=Games%20I%27ve%20Coded%20-%20Snake%20EX2&amp;bodytext=An%20article%20on%20Snake%20EX2%2C%20which%20I%20coded%20for%20the%20Nokia%203300%20and%20other%20devices%20when%20I%20was%20at%20iomo." title="Digg"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://reddit.com/submit?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D306&amp;title=Games%20I%27ve%20Coded%20-%20Snake%20EX2" title="Reddit"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D306&amp;title=Games%20I%27ve%20Coded%20-%20Snake%20EX2&amp;notes=An%20article%20on%20Snake%20EX2%2C%20which%20I%20coded%20for%20the%20Nokia%203300%20and%20other%20devices%20when%20I%20was%20at%20iomo." title="del.icio.us"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D306" title="Technorati"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D306&amp;title=Games%20I%27ve%20Coded%20-%20Snake%20EX2&amp;annotation=An%20article%20on%20Snake%20EX2%2C%20which%20I%20coded%20for%20the%20Nokia%203300%20and%20other%20devices%20when%20I%20was%20at%20iomo." title="Google Bookmarks"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D306&amp;t=Games%20I%27ve%20Coded%20-%20Snake%20EX2" title="Facebook"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D306&amp;title=Games%20I%27ve%20Coded%20-%20Snake%20EX2" title="StumbleUpon"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=Games%20I%27ve%20Coded%20-%20Snake%20EX2%20-%20http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D306" title="Twitter"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.fixmybugs.com/?feed=rss2&amp;p=306</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Forest of Unconstrained Functionality</title>
		<link>http://www.fixmybugs.com/?p=308</link>
		<comments>http://www.fixmybugs.com/?p=308#comments</comments>
		<pubDate>Wed, 24 Jun 2009 18:01:39 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[projects]]></category>

		<guid isPermaLink="false">http://www.fixmybugs.com/?p=308</guid>
		<description><![CDATA[Make sure you keep an eye on the design processes for upcoming games.  Creative designers and artists without technical experience often underestimate how much work can be involved in implementing features.]]></description>
			<content:encoded><![CDATA[<h3>Where do artists and designers go at the very early stages of a project, when they&#8217;re creating designs for a new game?</h3>
<p><img class="aligncenter size-full wp-image-312" title="Gambolling" src="http://www.longsteve.com/fixmybugs/wp-content/uploads/2009/06/gambolling_600.jpg" alt="Gambolling" width="600" height="556" /></p>
<p>As the plans and designs for a new project are being drawn up, the programmers are still hard at work on the tail end of their current project, which will be the testing (QA) phase.  This is usually when programmers (or the lead programmer)  have the least spare time to cast their technical eyes over new designs or game proposals.</p>
<p>Off go the creative fellows, gambolling in the forests of unconstrained functionality.  The iPhone seems to have a particularly lush and thick forest, populated with accelerometer trees, gesture recognition glades, multi-touch creeks and camera roll clearings.  If you know you&#8217;re the technical lead on an upcoming project, make sure you keep an eye on what&#8217;s being promised to your clients and publishers.  New and innovative features may make a game stand out, but they&#8217;re going to be high risk and time consuming.  If you read a design document two months into the development cycle, as you sit down to implement a feature for your new game, only to discover what you thought would take 3 days requires gesture recognition and motion detection (and there&#8217;s no money for 3rd party libraries), you&#8217;ve only got yourself to blame!</p>
<p>Thanks to <a href="http://www.ministryofjoy.co.uk/home.htm">Fergus McNeill</a> for the awesome poster.</p>



Share this post:


	<a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D308&amp;title=The%20Forest%20of%20Unconstrained%20Functionality&amp;bodytext=Make%20sure%20you%20keep%20an%20eye%20on%20the%20design%20processes%20for%20upcoming%20games.%20%20Creative%20designers%20and%20artists%20without%20technical%20experience%20often%20underestimate%20how%20much%20work%20can%20be%20involved%20in%20implementing%20features." title="Digg"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://reddit.com/submit?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D308&amp;title=The%20Forest%20of%20Unconstrained%20Functionality" title="Reddit"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D308&amp;title=The%20Forest%20of%20Unconstrained%20Functionality&amp;notes=Make%20sure%20you%20keep%20an%20eye%20on%20the%20design%20processes%20for%20upcoming%20games.%20%20Creative%20designers%20and%20artists%20without%20technical%20experience%20often%20underestimate%20how%20much%20work%20can%20be%20involved%20in%20implementing%20features." title="del.icio.us"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D308" title="Technorati"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D308&amp;title=The%20Forest%20of%20Unconstrained%20Functionality&amp;annotation=Make%20sure%20you%20keep%20an%20eye%20on%20the%20design%20processes%20for%20upcoming%20games.%20%20Creative%20designers%20and%20artists%20without%20technical%20experience%20often%20underestimate%20how%20much%20work%20can%20be%20involved%20in%20implementing%20features." title="Google Bookmarks"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D308&amp;t=The%20Forest%20of%20Unconstrained%20Functionality" title="Facebook"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D308&amp;title=The%20Forest%20of%20Unconstrained%20Functionality" title="StumbleUpon"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=The%20Forest%20of%20Unconstrained%20Functionality%20-%20http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D308" title="Twitter"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.fixmybugs.com/?feed=rss2&amp;p=308</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The bleeding edge</title>
		<link>http://www.fixmybugs.com/?p=299</link>
		<comments>http://www.fixmybugs.com/?p=299#comments</comments>
		<pubDate>Sat, 13 Jun 2009 21:37:25 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://www.fixmybugs.com/?p=299</guid>
		<description><![CDATA[New PC build needed some different RAM, but went ok in the end.]]></description>
			<content:encoded><![CDATA[<p>Only one post in May, crikey, sorry about that but I&#8217;ve been so insanely busy at work that it&#8217;s really hard to find the time to add to the blog.  I would humbly compare my bloginess to that of <a href="http://stinkygoat.livejournal.com/">Jeff Minter</a>.  His blog is updated often with charming photos of sheep and days out in Wales, when he&#8217;s not busy crunching code.  When he&#8217;s working, blog updates become few and far between, but who can blame him?  In my case, I hope the massive Map-Reduce article makes up for it a bit though, and I thought I&#8217;d follow up on my new PC build too.</p>
<h3>Building a new PC -Update</h3>
<p>I don&#8217;t usually class myself as an early adopter in most areas, but when it comes to a building a new PC, one might as well get the latest kit.  I thought I was following a recommended list of hardware but it turned out the RAM I ordered wasn&#8217;t exactly the same as the set Custom PC magazine had listed.  After two sets of the Corsair 6GB kits wouldn&#8217;t work with the Gigabyte motherboard, but an uber cheap Dabs value 1GB stick booted fine, I knew the memory wasn&#8217;t compatible.  So, after browsing some forums, I plumped for the somewhat more expensive, but known to work, <a href="http://www.crucial.com/uk/store/partspecs.aspx?imodule=bl3kit25664tn1608">Crucial Ballistix Tracer 6GB</a> kit, and everything works a treat now.  I also bought a second 1TB Samsung hard drive since they are such good value, and have a RAID 0 configuration for performance.  Ubuntu Linux 9.04 installed from my USB drive without a hickup and it runs like a demon.  I love the fact that the Gnome CPU speed taskbar applet opened up 8 tabs for all the CPU cores, bonkers!  The flashing lights on the RAM also provide a nice ambience where they shine out of the case vents and fan holes.</p>



Share this post:


	<a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D299&amp;title=The%20bleeding%20edge&amp;bodytext=New%20PC%20build%20needed%20some%20different%20RAM%2C%20but%20went%20ok%20in%20the%20end." title="Digg"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://reddit.com/submit?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D299&amp;title=The%20bleeding%20edge" title="Reddit"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D299&amp;title=The%20bleeding%20edge&amp;notes=New%20PC%20build%20needed%20some%20different%20RAM%2C%20but%20went%20ok%20in%20the%20end." title="del.icio.us"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D299" title="Technorati"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D299&amp;title=The%20bleeding%20edge&amp;annotation=New%20PC%20build%20needed%20some%20different%20RAM%2C%20but%20went%20ok%20in%20the%20end." title="Google Bookmarks"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D299&amp;t=The%20bleeding%20edge" title="Facebook"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D299&amp;title=The%20bleeding%20edge" title="StumbleUpon"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=The%20bleeding%20edge%20-%20http%3A%2F%2Fwww.fixmybugs.com%2F%3Fp%3D299" title="Twitter"><img src="http://www.longsteve.com/fixmybugs/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.fixmybugs.com/?feed=rss2&amp;p=299</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
