<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5302779470292853103</id><updated>2012-02-17T03:36:23.074Z</updated><category term='Life'/><category term='Microsuck'/><category term='Internet Exploder'/><category term='SQL'/><category term='PS3'/><category term='Commodore 64'/><category term='Moving House'/><category term='BDD'/><category term='Christmas'/><category term='Music'/><category term='Etc'/><category term='Food'/><category term='Software'/><category term='Gadgets'/><category term='Ruby on Rails'/><category term='Apple'/><category term='Ex-director-y'/><category term='Burnout'/><category term='Programming'/><category term='Politics'/><title type='text'>RedFurSnake</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>87</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-989160686857896962</id><published>2010-03-14T10:06:00.000Z</published><updated>2010-03-14T10:06:22.373Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>Reliable Time Machine backups on a NAS</title><content type='html'>I have a Synology NAS which is supposed to support Mac OS X Time Machine backups. However, I was finding that after a while, backups would stop working. Despite tips on the web for getting it working again, the only way I found was to start again with a new backup.&amp;nbsp;I would be interested to hear if anyone has a reliable NAS Time Machine backup working with Snow Leopard, because I'm not sure if the problems are with Apple or Synology.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_exkOqgGkZN8/S5ysDeJ4hNI/AAAAAAAAAGM/0QH_RbCu3yI/s1600-h/Screen+shot+2010-03-14+at+07.59.59.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_exkOqgGkZN8/S5ysDeJ4hNI/AAAAAAAAAGM/0QH_RbCu3yI/s320/Screen+shot+2010-03-14+at+07.59.59.png" /&gt;&lt;/a&gt;&lt;/div&gt;Anyway, iSCSI to the rescue! iSCSI volumes are supported by the Synology NAS, but to access them on the Mac you need a third-party iSCSI initiator like&amp;nbsp;&lt;a href="http://www.studionetworksolutions.com/products/product_detail.php?t=more&amp;amp;pi=11"&gt;globalSAN&lt;/a&gt;&amp;nbsp;(which is free!).&amp;nbsp;Occasionally, TimeMachine still complains that it cannot mount the volume, but a simple disconnect/reconnect in globalSAN sorts it out.&lt;br /&gt;&lt;br /&gt;I'm not sure how the performance of iSCSI compares with standard network shares, but that's not really important for Time Machine, where all I care about is reliability.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-989160686857896962?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/989160686857896962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=989160686857896962' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/989160686857896962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/989160686857896962'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2010/03/reliable-time-machine-backups-on-nas.html' title='Reliable Time Machine backups on a NAS'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_exkOqgGkZN8/S5ysDeJ4hNI/AAAAAAAAAGM/0QH_RbCu3yI/s72-c/Screen+shot+2010-03-14+at+07.59.59.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-6967730050549724010</id><published>2010-03-14T07:50:00.000Z</published><updated>2010-03-14T07:50:40.300Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><title type='text'>Changing the order of scriptaculous Droppables</title><content type='html'>If you have two overlapping Drop areas using s&lt;a href="http://script.aculo.us/"&gt;criptaculous&lt;/a&gt; &lt;a href="http://wiki.github.com/madrobby/scriptaculous/droppables"&gt;Droppables&lt;/a&gt;, you would naturally want the uppermost droppable to receive the dragged object. However, you will only get this behaviour if you the Droppables.add them in the right order. Droppables added first are checked first, which seems wrong to me since divs added first will naturally be rendered underneath divs added later (if they overlap).&lt;br /&gt;&lt;br /&gt;Anyway, I came up with a nasty hack to move an added Droppable to the front of list so it is checked before the others (great for dynamically created popups, etc):&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;// Make the new element Droppable as usual&lt;br /&gt;Droppables.add(popup);&lt;br /&gt;&lt;br /&gt;// Move the just added element to the front of Droppables internal drops list&lt;br /&gt;Droppables.drops.unshift(Droppables.drops.pop());&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This isn't ideal and could easily break if the implementation of Droppables is changed. Hopefully, in future releases of scriptaculous, it will be possible to prepend/insert Droppables rather than just append them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-6967730050549724010?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/6967730050549724010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=6967730050549724010' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/6967730050549724010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/6967730050549724010'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2010/03/changing-order-of-scriptaculous.html' title='Changing the order of scriptaculous Droppables'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-6306860816975431534</id><published>2010-02-16T14:16:00.004Z</published><updated>2010-03-08T15:19:03.118Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><title type='text'>Get your user's time zone from their IP address in Rails</title><content type='html'>I have a Rails web app that would like to have a good guess at what 'today' is for users that could be scattered across time zones. Here's how I am currently doing it, with services from &lt;a href="http://www.hostip.info/"&gt;hostIP.info&lt;/a&gt; and the g&lt;a href="http://www.geonames.org/"&gt;eonames&lt;/a&gt; &lt;a href="http://www.tbcn.ca/ruby_geonames"&gt;gem&lt;/a&gt;. In the model that has the user's time_zone attribute:&lt;br /&gt;&lt;pre&gt;require 'open-uri'&lt;br /&gt;require 'geonames'&lt;br /&gt;&lt;br /&gt;class User &amp;lt; ActiveRecord::Base&lt;br /&gt;  def set_time_zone_from_ip(ip)&lt;br /&gt;    location = open("http://api.hostip.info/get_html.php?ip=#{ip}&amp;amp;position=true")&lt;br /&gt;    if location.string =~ /Latitude: (.+?)\nLongitude: (.+?)\n/&lt;br /&gt;      timezone = Geonames::WebService.timezone($1, $2)&lt;br /&gt;      self.time_zone = ActiveSupport::TimeZone::MAPPING.index(timezone.timezone_id) unless timezone.nil?&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;This uses two third party free web services, &amp;nbsp;so may not be suitable, or may require commercial versions if you want to do a lot of look ups.&lt;br /&gt;&lt;br /&gt;The time zone is set at the start of each request, via a before_filter in ApplicationController that calls:&lt;br /&gt;&lt;pre&gt;def set_time_zone&lt;br /&gt;  Time.zone = current_user.time_zone&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;I have also monkey patched the standard Date.today function in an initializer, so that all my calls to Date.today return the correct time zone adjusted date:&lt;br /&gt;&lt;pre&gt;class Date&lt;br /&gt;  def self.today&lt;br /&gt;    Time.zone.today&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;I'm not sure if this is the best way to do this, but thought it might help someone out...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-6306860816975431534?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/6306860816975431534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=6306860816975431534' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/6306860816975431534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/6306860816975431534'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2010/02/get-your-users-time-zone-from-their-ip.html' title='Get your user&apos;s time zone from their IP address in Rails'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-1405282281946502289</id><published>2010-01-28T10:59:00.001Z</published><updated>2010-01-28T10:59:21.512Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gadgets'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>Apple iPad</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_exkOqgGkZN8/S2Fp2wJcWCI/AAAAAAAAAGE/8im0SHJAx1I/s1600-h/home_screen_20100127.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_exkOqgGkZN8/S2Fp2wJcWCI/AAAAAAAAAGE/8im0SHJAx1I/s320/home_screen_20100127.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;So here is is, the new &lt;a href="http://www.apple.com/ipad/"&gt;Apple iPad&lt;/a&gt;. As expected, it's pretty sexy. I wasn't sure if there would be a market for this sort of thing, but now I think this device could replace most home PCs. Why? Because most consumers only do email, ebay, facebook, photos/video/tunes/games on their computers anyway, and this device is going to be great for all that and even easier to use than a Mac.&lt;br /&gt;&lt;br /&gt;With the optional &lt;a href="http://www.engadget.com/2010/01/27/ipad-has-optional-keyboard-dock/"&gt;keyboard dock&lt;/a&gt; and iWork suite, it could even do for home office chores.&lt;br /&gt;&lt;br /&gt;Used in conjunction with a media server/time capsule, &amp;nbsp;I would say it satisfies the needs of most home users.&lt;br /&gt;&lt;br /&gt;Is it for me? Not yet, but I think it's inevitable: every home will have one.&lt;br /&gt;&lt;br /&gt;Omissions? Same as iPod touch: I'd like it to have a front facing camera for Skype iChat calls and an IR emitter so it can be used as a universal remote.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-1405282281946502289?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/1405282281946502289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=1405282281946502289' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/1405282281946502289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/1405282281946502289'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2010/01/apple-ipad.html' title='Apple iPad'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_exkOqgGkZN8/S2Fp2wJcWCI/AAAAAAAAAGE/8im0SHJAx1I/s72-c/home_screen_20100127.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-6194987774345401720</id><published>2010-01-17T11:01:00.002Z</published><updated>2010-01-22T10:13:10.860Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gadgets'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>New iMac</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_exkOqgGkZN8/S1Lt-2BoHJI/AAAAAAAAAF8/6b2RqwA3CGM/s1600-h/imac_632714g.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_exkOqgGkZN8/S1Lt-2BoHJI/AAAAAAAAAF8/6b2RqwA3CGM/s320/imac_632714g.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;I have been the proud owner of a new iMac 27" i7 for a few weeks now... time to report back. Here's how it compares to my old setup: a MacBook Pro 2.33MHz with 30" cinema display:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Slightly smaller screen (same width, but a couple of inches shorter than the 30"). This compromise has made no difference to me. It could be said that the aspect ratio of 16:9 (as opposed to 16:10) is actually slightly more pleasing to the eye and leads to less neck straining.&lt;/li&gt;&lt;li&gt;Glossy screen. Although it tends to suffer from reflections, careful positioning gives a more pleasing smoother picture than the matt 30" screen, with deeper blacks, etc.&lt;/li&gt;&lt;li&gt;Memory. 8GB (as opposed to 3GB) means I can run everything at the same time without slowdown: Parallels VM with 2GB, RubyMine, Safari, Photoshop, iTunes all at once with memory to spare (but only a small amount I admit!)&lt;/li&gt;&lt;li&gt;Graphics card. This coupled with extra memory makes a huge difference to Aperture. Finally, no more waiting!&lt;/li&gt;&lt;li&gt;Magic Mouse. I wasn't expecting this to replace my current Logitech mouse, but it has. I love it! Shame it's not rechargeable though...&lt;/li&gt;&lt;li&gt;Wireless keyboard. Again, I wasn't expecting this to replace my wired full size apple keyboard, but it has. At first, I really missed the forwards delete key, until I realised it is available via fn-backspace. I'm surprised I haven't missed the numeric keypad more. I appreciate the smaller form factor of the keyboard and the lack of wires.&lt;/li&gt;&lt;li&gt;Speed. Overall, it is significantly faster than my old machine, and showing 8 cores regularly busing themselves in iStat!&lt;/li&gt;&lt;li&gt;Built-in iSight, mic and more decent sound. Icing on the cake.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;Downsides? As a computer, none at all, but I suppose it would have been nice if it had had Blu Ray and an HDMI input...&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Should you buy one? Oh yes! And make sure its the i7: Most agree that the performance boost is worth the extra expense. Shame that Apple have just increased the lead time to 3 weeks!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-6194987774345401720?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/6194987774345401720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=6194987774345401720' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/6194987774345401720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/6194987774345401720'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2010/01/new-imac.html' title='New iMac'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_exkOqgGkZN8/S1Lt-2BoHJI/AAAAAAAAAF8/6b2RqwA3CGM/s72-c/imac_632714g.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-8104376617581001712</id><published>2009-11-07T10:47:00.000Z</published><updated>2009-11-07T10:47:11.349Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Unusual Coding Tips, Part 1</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_exkOqgGkZN8/SvVPxthBXYI/AAAAAAAAAF0/81qPLndsx00/s1600-h/Screen+shot+2009-11-07+at+10.44.56.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_exkOqgGkZN8/SvVPxthBXYI/AAAAAAAAAF0/81qPLndsx00/s320/Screen+shot+2009-11-07+at+10.44.56.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;Make your font larger in your IDE/text editor. Not only is it easier to read, but you'll tend to write shorter methods and simpler code. In &lt;a href="http://www.jetbrains.com/ruby/index.html"&gt;RubyMine&lt;/a&gt;, I'm using Monaco 13.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-8104376617581001712?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/8104376617581001712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=8104376617581001712' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/8104376617581001712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/8104376617581001712'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2009/11/unusual-coding-tips-part-1.html' title='Unusual Coding Tips, Part 1'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_exkOqgGkZN8/SvVPxthBXYI/AAAAAAAAAF0/81qPLndsx00/s72-c/Screen+shot+2009-11-07+at+10.44.56.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-5933804737785651436</id><published>2009-09-01T20:43:00.005+01:00</published><updated>2009-09-02T15:31:31.556+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>Snow Leopard</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_exkOqgGkZN8/Sp16CFhjsbI/AAAAAAAAAFs/wEVidG8ImlQ/s1600-h/cat+in+snow.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_exkOqgGkZN8/Sp16CFhjsbI/AAAAAAAAAFs/wEVidG8ImlQ/s200/cat+in+snow.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;I upgraded to Snow Leopard a few days ago. Conclusion? Largely inoffensive. In no particular order, the changes I have seen are:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The icons in the top-right of the menu bar are now greyed out when inactive, e.g. when airport is off, iChat isn't running.&lt;/li&gt;&lt;li&gt;There's a new keyboard and character viewer next to the clock. Does this replace the international preferences&lt;/li&gt;&lt;li&gt;Spotlight can now (and should have been all along) configured to search the current folder when used in a Finder window.&lt;/li&gt;&lt;li&gt;New desktop background.&lt;/li&gt;&lt;li&gt;Changing Spaces animation is quicker and/or smoother.&lt;/li&gt;&lt;li&gt;Selecting a 32-bit panel in System Preferences, causes SP to restart in 32-bit mode. Shame the user has to see this, but I suppose everything will be 64 bit soon enough.&lt;/li&gt;&lt;li&gt;More disk space available, not sure how much (about 5 degrees on the Activity Monitor disk usage pie chart!!)&lt;/li&gt;&lt;li&gt;Time Machine is a bit more informative. It's also quicker, but since it goes on in the background anyway, it hardly matters how long it takes (within reason).&lt;/li&gt;&lt;li&gt;Mail is quicker and I think the tool buttons look a bit different (worse actually).&lt;/li&gt;&lt;li&gt;Aqua style scroll bars still around the place (I thought they would all now look more like iTunes).&lt;/li&gt;&lt;li&gt;I installed without Rosetta, so now if I try to run a PowerPC app (like Word 2004), I get the change to download Rosetta first. So far, I have resisted!&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.machangout.com/"&gt;Glims&lt;/a&gt; doesn't work in Safari any more.&lt;/li&gt;&lt;li&gt;Context menus on dock icons are now black.&lt;/li&gt;&lt;li&gt;You can press and hold an application's dock icon to Exposé it.&lt;/li&gt;&lt;li&gt;The Software Update 'checking...' window is bigger.&lt;/li&gt;&lt;li&gt;Errr....&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;All a bit of an anti-climax. I knew it wouldn't be that different, but I was hoping for a general speed boost, especially in apps like Aperture and Logic. It is supposed to be more stable, but stability wasn't an issue for me before. Perhaps other types of Mac benefit more than mine?&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Let me know if you think I'm missing something important...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-5933804737785651436?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/5933804737785651436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=5933804737785651436' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/5933804737785651436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/5933804737785651436'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2009/09/snow-leopard.html' title='Snow Leopard'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_exkOqgGkZN8/Sp16CFhjsbI/AAAAAAAAAFs/wEVidG8ImlQ/s72-c/cat+in+snow.jpg' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-2211223211621012413</id><published>2009-07-02T08:09:00.009+01:00</published><updated>2009-07-05T09:13:19.797+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsuck'/><category scheme='http://www.blogger.com/atom/ns#' term='Ex-director-y'/><title type='text'>Ex-director-y, Part 10. Myers Briggs for Programmers</title><content type='html'>I just found an article relating &lt;a href="http://www.myersbriggs.org/"&gt;Myers Briggs&lt;/a&gt; For &lt;a href="http://c2.com/cgi/wiki?MyersBriggsForProgrammers"&gt;Programmers&lt;/a&gt;. Quite interesting, if you like stuff like this (which I confess I do: I automatically try to 'type' everyone I meet!).&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are a few points of interest to me (as an ENTJ):&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;As an E, I shouldn't really be working alone. It's true, I do struggle sometimes, and often talk out loud to myself!&lt;/li&gt;&lt;li&gt;The Author couldn't easily relate F for programmers, which from my experience doesn't matter: few programmers are F!&lt;/li&gt;&lt;li&gt;J's would tend to prefer C++ to Smalltalk (or Ruby), because they need to fully understand things. I would tend to agree that I found Ruby almost too powerful at first, asking myself &lt;i&gt;how&lt;/i&gt; it could possibly do some of the things it does. P's wouldn't care; they would just use the power. How did I cope? I wasted loads of time finding out how Ruby (and Rails) works!&lt;/li&gt;&lt;li&gt;Very few (software?) workplaces have high N. I have experienced this too (much to my frustration). S's will tend to resist change, opting for tried and tested approaches, or the quickest (not necessarily best) solutions. This might be OK for business in the short term, but there is a risk of falling behind more progressive N companies, who define bolder goals and &lt;i&gt;invest&lt;/i&gt; to achieve them. As I've mentioned previously in my &lt;a href="http://redfursnake.blogspot.com/search/label/Ex-director-y"&gt;Ex-director-y&lt;/a&gt; posts, I wish I'd been tougher on this, but I wasn't and that's why I had to go...&lt;/li&gt;&lt;li&gt;I'm gratified that Google is ENTJ, and Microsoft is ISTJ. This makes complete sense to me. I have looked inside a few low N, high S led organisations and the most frustrating thing for me (as a strong N), is that it is &lt;i&gt;exactly&lt;/i&gt; an S quality not to appreciate the need for some N, which leaves them floundering about in the present rather than moving towards a future. Microsoft obviously hasn't always been an S organisation, but it clearly is now, so was Woolworths.&lt;/li&gt;&lt;li&gt;I'd most like to work with an N-F, to blend their &lt;i&gt;wacky&lt;/i&gt; with my &lt;i&gt;mighty&lt;/i&gt;.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-2211223211621012413?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/2211223211621012413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=2211223211621012413' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/2211223211621012413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/2211223211621012413'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2009/07/myers-briggs-for-programmers.html' title='Ex-director-y, Part 10. Myers Briggs for Programmers'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-7490803873005819791</id><published>2009-07-01T10:07:00.004+01:00</published><updated>2009-07-01T10:14:04.289+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><category scheme='http://www.blogger.com/atom/ns#' term='Commodore 64'/><title type='text'>Ruby on Commodore 64</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_exkOqgGkZN8/Sksnm25djsI/AAAAAAAAAFI/X3GXsGiRO7E/s1600-h/ruby64.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 317px; height: 218px;" src="http://2.bp.blogspot.com/_exkOqgGkZN8/Sksnm25djsI/AAAAAAAAAFI/X3GXsGiRO7E/s320/ruby64.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5353416130585005762" /&gt;&lt;/a&gt;&lt;div style="text-align: left;"&gt;&lt;a href="http://idelampoon.blogspot.com/2007/12/ruby-support-comes-to-commodore-64.html"&gt;Yep!&lt;/a&gt; But of course, real progressives would expect nothing less than &lt;a href="http://www.npsnet.com/danf/cbm/languages.html#Ada"&gt;Ada&lt;/a&gt;.&lt;/div&gt;&lt;div style="text-align: left;"&gt;(And I thought my ideas for Object Oriented Assembler were nuts...)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-7490803873005819791?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/7490803873005819791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=7490803873005819791' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/7490803873005819791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/7490803873005819791'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2009/07/ruby-on-commodore-64.html' title='Ruby on Commodore 64'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_exkOqgGkZN8/Sksnm25djsI/AAAAAAAAAFI/X3GXsGiRO7E/s72-c/ruby64.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-8677316940709146473</id><published>2009-06-23T14:22:00.006+01:00</published><updated>2009-07-02T10:36:00.237+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Commodore 64'/><title type='text'>My New Commodore 64</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_exkOqgGkZN8/SkDZzbHHwtI/AAAAAAAAAFA/4ivlIT-6zjg/s1600-h/Picture+1.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 320px;" src="http://3.bp.blogspot.com/_exkOqgGkZN8/SkDZzbHHwtI/AAAAAAAAAFA/4ivlIT-6zjg/s320/Picture+1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5350515834790331090" /&gt;&lt;/a&gt;My computing career began at age 13 with a Commodore 64. I originally wanted a BBC Micro, but couldn't save enough pennies, so bought a C64 instead. In retrospect, this was a good decision: BBCs were mostly for skiers; C64 for snowboarders (even though snowboards probably weren't invented then). Anyway, I'm not sure what I did with my original C64 so have just bought a similar one on ebay because I decided I ought to own the computer that changed my life! I think I've still got some of my old programs somewhere, including a drum machine (Drumz) and a half finished side scrolling shooter game (OffWorld) (all in assembler of course).&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The screenshot shows a &lt;a href="http://www.infinite-loop.at/Power64/"&gt;Power64&lt;/a&gt; emulator, behind my real C64 (through an &lt;a href="http://www.eyetv.com/"&gt;EyeTV&lt;/a&gt;).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Has anyone got any spare 5.25" Double Density floppies?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-8677316940709146473?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/8677316940709146473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=8677316940709146473' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/8677316940709146473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/8677316940709146473'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2009/06/commodore-64.html' title='My New Commodore 64'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_exkOqgGkZN8/SkDZzbHHwtI/AAAAAAAAAFA/4ivlIT-6zjg/s72-c/Picture+1.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-3049674947869677175</id><published>2009-06-20T21:59:00.005+01:00</published><updated>2009-07-05T09:15:43.517+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsuck'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>ExpanDrive</title><content type='html'>I mentioned &lt;a href="http://www.expandrive.com/mac"&gt;ExpanDrive&lt;/a&gt; in a recent post. It makes a remote server connected via SFTP, FTP or Amazon S3 seem like a USB drive plugged into your Mac. Everything happens in the Finder, so it's a more elegant solution than utilities like &lt;a href="http://cyberduck.ch/"&gt;Cyberduck&lt;/a&gt; or &lt;a href="http://www.panic.com/transmit/"&gt;Transmit&lt;/a&gt; (although it presumably lacks some of the advanced features of those, e.g. file permissions control). It's probably the best way to edit remote files in &lt;a href="http://macromates.com/"&gt;TextMate&lt;/a&gt; (which lacks an integrated FTP client like &lt;a href="http://www.barebones.com/products/bbedit/"&gt;BBEdit&lt;/a&gt; or &lt;a href="http://www.panic.com/coda/"&gt;Coda&lt;/a&gt;). &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are two reasons for another post about ExpanDrive:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;I found a coupon code that gives $10 off the usual $39.95 price, which is valid at the time of this post, but could expire at any time: &lt;span class="Apple-style-span" style="font-family: 'Lucida Sans', 'Lucida Sans Unicode', 'Lucida Grande', Verdana, sans-serif; font-size: 13px; font-weight: bold; "&gt;6NI1DW5ZKW233HYI&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:Georgia, -webkit-fantasy;"&gt;Another utility &lt;a href="http://www.macfusionapp.org/"&gt;MacFusion&lt;/a&gt; appears to be very similar to ExpanDrive (&lt;a href="http://code.google.com/p/macfuse/"&gt;MacFUSE&lt;/a&gt; does the heavy lifting for both) but is free. &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:Georgia, -webkit-fantasy;"&gt;Perhaps one day, Apple will build this functionality into the Finder... Also, I notice that there is a version of &lt;a href="http://www.expandrive.com/windows"&gt;ExpanDrive for Windows&lt;/a&gt; too, so I guess Windows Explorer doesn't support SFTP/FTP out of the box either (not that I know or care about that).&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:Georgia, -webkit-fantasy;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-3049674947869677175?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/3049674947869677175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=3049674947869677175' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/3049674947869677175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/3049674947869677175'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2009/06/expandrive.html' title='ExpanDrive'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-7464925831193222649</id><published>2009-05-29T09:24:00.003+01:00</published><updated>2009-05-29T09:49:18.088+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsuck'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Why Subversion?</title><content type='html'>Despite all the more interesting links in my last post, my use of &lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt; was the only one that sparked any interest, so I thought I'd explore my reasons for sticking with Subversion, despite the current &lt;a href="http://git-scm.com/"&gt;Git&lt;/a&gt; frenzy:&lt;div&gt;&lt;ol&gt;&lt;li&gt;My subversion repo is on another server so when I commit, I'm also backing up. Git does commits really fast, but only because everything is happening locally until you push (I think). I'd end up committing, then pushing every time to maintain my 'backup', so I presume the Git speed advantage would be lost...?&lt;/li&gt;&lt;li&gt;Subversion was designed to be a better &lt;a href="http://www.nongnu.org/cvs/"&gt;CVS&lt;/a&gt;, and I already knew how to use that, so switching to Subversion was easy for me. I believe Git has a bit of a learning curve?&lt;/li&gt;&lt;li&gt;I'm not working in a huge distributed team so wouldn't benefit from Git's more sophisticated branching/merging/rebasing (whatever that is).&lt;/li&gt;&lt;li&gt;Subversion has better clients: e.g. how sexy is &lt;a href="http://versionsapp.com/"&gt;Versions&lt;/a&gt;? It's also integrated into &lt;a href="https://www.panic.com/coda/"&gt;Coda&lt;/a&gt;. Git support/integration is gradually appearing, but it's not widespread yet.&lt;/li&gt;&lt;li&gt;My &lt;a href="http://www.brightbox.co.uk/"&gt;Brightbox&lt;/a&gt; VPS came reconfigured with Subversion support. To use Git, I believe I'd have to install something like &lt;a href="http://eagain.net/gitweb/?p=gitosis.git;a=blob;f=README.rst"&gt;Gitosis&lt;/a&gt;...? &lt;/li&gt;&lt;li&gt;Git is difficult on Windows (or was). Wait a minute, that's a plus point for Git!&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;Don't get me wrong, part of me wants to switch to Git, perhaps just because it's the latest greatest thing. On the other hand, I can't really see how it improves things for me. Feel free to convince me to switch to Git, or defend Subversion, or recommend something else (&lt;a href="http://bazaar-vcs.org/"&gt;Bazaar&lt;/a&gt;, &lt;a href="http://www.selenic.com/mercurial/wiki/"&gt;Mercurial&lt;/a&gt;?).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-7464925831193222649?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/7464925831193222649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=7464925831193222649' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/7464925831193222649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/7464925831193222649'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2009/05/why-subversion.html' title='Why Subversion?'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-6313503041527230119</id><published>2009-05-08T21:14:00.016+01:00</published><updated>2010-03-14T07:33:37.265Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Etc'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsuck'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><title type='text'>Links to look at</title><content type='html'>&lt;ol&gt;&lt;li&gt;CocoaSQL has been superceded by &lt;a href="http://www.sequelpro.com/"&gt;Sequel Pro&lt;/a&gt;. Nice. I like the query window: You can write multiple queries and execute whichever you want via Run Selection: nicer than using the Query History. Ah, but I've just found &lt;a href="http://www.araelium.com/querious/"&gt;Querious&lt;/a&gt;... not free ($25) but includes SSH tunnelling and user admin, which Sequel Pro does not.&lt;a href="http://studios.thoughtworks.com/mingle-agile-project-management"&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://studios.thoughtworks.com/mingle-agile-project-management"&gt;Mingle 2.3&lt;/a&gt;. Still haven't used this in anger, but still think it might be the dogs for collaborative project management.&lt;a href="http://www.theregister.co.uk/2009/05/07/verity_stob_cplusplus/"&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.theregister.co.uk/2009/05/07/verity_stob_cplusplus/"&gt;C++0x&lt;/a&gt;. Better than C++ as we know it? Oh yes, but what's it for? Err.... device drivers?&lt;a href="http://www.microsoft.com/windows/windows-7/"&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/windows/windows-7/"&gt;Windows 7&lt;/a&gt; the best OS Microsoft has ever produced, but a bit like the latest Chris De Burgh album &lt;i&gt;Footsteps&lt;/i&gt;: it's all relative (but at least he can play in &lt;a href="http://www.gigwise.com/news/39504/Chris-De-Burgh-to-Play-Groundbreaking-Iran-Gig"&gt;Iran&lt;/a&gt;).&lt;a href="http://guides.rubyonrails.org/2_3_release_notes.html"&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://guides.rubyonrails.org/2_3_release_notes.html"&gt;Rails 2.3&lt;/a&gt;. Rails just gets more exciting.&lt;a href="http://subversion.tigris.org/svn_1.6_releasenotes.html"&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://subversion.tigris.org/svn_1.6_releasenotes.html"&gt;Subversion 1.6&lt;/a&gt;. Not sure what's in it for me, but it can only be good!&lt;a href="http://www.jetbrains.com/ruby/"&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.jetbrains.com/ruby/"&gt;RubyMine 1.0&lt;/a&gt; Released. Well I've been trying it and there's a lot to like... but it has that horrible Eclipsy Java-ness about it. &lt;a href="http://macromates.com/"&gt;TextMate&lt;/a&gt;, RubyMine, TextMate, RubyMine... dunno. And what about &lt;a href="https://www.panic.com/coda/"&gt;Coda&lt;/a&gt; (which is half price at the moment!) and now supports &lt;a href="http://www.panic.com/coda/developer/howto/plugins.php"&gt;plugins&lt;/a&gt;, which means it could soon see more of the bundle cleverness of TextMate.&lt;a href="http://jeremy.zawodny.com/blog/archives/007624.html"&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://jeremy.zawodny.com/blog/archives/007624.html"&gt;Amazon S3&lt;/a&gt; The end of home backups?&lt;a href="http://www.globrix.com/"&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.globrix.com/"&gt;Globrix&lt;/a&gt; is the best way to find properties and &lt;a href="http://www.zoopla.co.uk/"&gt;Zoopla&lt;/a&gt; is getting better.&lt;/li&gt;&lt;li&gt;Got to love &lt;a href="http://www.spotify.com/"&gt;Spotify&lt;/a&gt;. Oh dear, could be the end of iTunes? Oh deary me... could be coming to &lt;a href="http://www.wired.com/epicenter/2009/02/end-game-spotif/"&gt;iPhone&lt;/a&gt;.&lt;a href="http://www.google.com/apps/intl/en/business/index.html"&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.google.com/apps/intl/en/business/index.html"&gt;Google Apps&lt;/a&gt; gives you free email for your own domain and supports the same users across multiple domains if you like. Excellent Spam filtering. Easier than setting up you own mail server.&lt;a href="http://www.drobo.com/products/drobopro/"&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.drobo.com/products/drobopro/"&gt;DroboPro&lt;/a&gt; Now it's got 8 drives and iSCSI.&lt;a href="http://www.macports.org/"&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.macports.org/"&gt;MacPorts&lt;/a&gt; is a package manager for OS X, and &lt;a href="http://porticus.alittledrop.com/"&gt;Porticus&lt;/a&gt; is a great way to interact with it.&lt;a href="http://www.expandrive.com/mac"&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.expandrive.com/mac"&gt;ExpanDrive&lt;/a&gt; is the FTP/SFTP you wish the OS X Finder had built-in. Time to ditch all the other FTP clients? Maybe, if you don't mind spending $40.&lt;a href="http://project-voldemort.com/"&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://project-voldemort.com/"&gt;Project-Voldemort&lt;/a&gt; You know, if you need to store blobs of data securely around the place...&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-6313503041527230119?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/6313503041527230119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=6313503041527230119' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/6313503041527230119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/6313503041527230119'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2009/05/links-to-look-at.html' title='Links to look at'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-2790683151378204433</id><published>2009-03-25T20:42:00.004Z</published><updated>2009-03-25T20:56:07.706Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Life'/><title type='text'>Help the Aged to merge with Age Concern</title><content type='html'>So these two old peeps' charities are to merge and need a new name...&lt;br /&gt;&lt;br /&gt;What about "Help the Concerned", or "Concerning the Aged"?&lt;br /&gt;Or  "Oak Aged Concerned Helpers" perhaps?&lt;br /&gt;Or for something short and snappy "Concernage" or "Helpage".&lt;br /&gt;Let's go for an anagram of the two names... "Clenched Reggae Phaeton". Yep, that's the one!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-2790683151378204433?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/2790683151378204433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=2790683151378204433' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/2790683151378204433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/2790683151378204433'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2009/03/help-aged-to-merge-with-age-concern.html' title='Help the Aged to merge with Age Concern'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-4415969589670088256</id><published>2009-03-05T09:57:00.004Z</published><updated>2009-03-05T10:21:13.942Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsuck'/><category scheme='http://www.blogger.com/atom/ns#' term='Life'/><title type='text'>Does beating spam mean I need a wider email reader?</title><content type='html'>Spam filtering is essential to rid my inbox of the 200 or so messages I receive each day about watches, drugs, erections, bank account phishing, casinos, cheap software, receipts for purchases I haven't made, etc, etc. I use &lt;a href="http://c-command.com/spamsieve/"&gt;SpamSieve&lt;/a&gt; and it works superbly. Only about 2 or 3 spam messages a week slip through, and I've yet to see it filter any messages incorrectly.&lt;br /&gt;&lt;br /&gt;Despite having my spam under control, I  am increasingly receiving legitimate messages with various spam filter related prefixes in the email subject, for example...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;[Scanned][Span score: 11%]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[SPAM]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[***SPAM*** Score/Req: 8.7/5.0]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[WARNING: A/V UNSCANNABLE]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;{spam?}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What is the point of this? If the spammers thought&lt;span style="font-style: italic;"&gt; &lt;/span&gt;I took any notice, they'd be adding this shit to the subject lines of spam emails too.&lt;br /&gt;&lt;br /&gt;And what's the scoring all about? A spam score of 11%. Does that mean the message is a bit spammy? What about 8.7/5.0? Is that a good score?&lt;br /&gt;&lt;br /&gt;In the end, it just means I have to widen my email client so that I can see the real subject of the message to fit things like:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Subject: FW: [Scanned][***SPAM*** Score/Req: 8.7/5.0][WARNING: A/V UNSCANNABLE] Are you as hard as your friends?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Not impressed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-4415969589670088256?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/4415969589670088256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=4415969589670088256' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/4415969589670088256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/4415969589670088256'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2009/03/does-beating-spam-mean-i-need-wider.html' title='Does beating spam mean I need a wider email reader?'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-6513327079112385469</id><published>2009-02-27T10:01:00.007Z</published><updated>2009-05-12T08:13:40.684+01:00</updated><title type='text'>Desktop Apps in Ruby</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_exkOqgGkZN8/SafIqMxDZ3I/AAAAAAAAAEw/sMyrSsDDDUg/s1600-h/nks.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 206px; height: 320px;" src="http://1.bp.blogspot.com/_exkOqgGkZN8/SafIqMxDZ3I/AAAAAAAAAEw/sMyrSsDDDUg/s320/nks.png" alt="" id="BLOGGER_PHOTO_ID_5307431313186449266" border="0" /&gt;&lt;/a&gt;As you know, I have been working on web apps using &lt;a href="http://rubyonrails.org/"&gt;Ruby on Rails&lt;/a&gt;, which is pretty marvellous. But much as it scares me, I can see the need for the occasional desktop app to complement  my web services. My requirements would be:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Cross platform, including mobile devices.&lt;/li&gt;&lt;li&gt;Free or cheap open source development tools and libraries.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ability to use a programmer's programming language like Ruby.&lt;/li&gt;&lt;/ol&gt;I've found some interesting stuff out there...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.rhomobile.com/products/rhodes"&gt;Rhodes&lt;/a&gt; by &lt;a href="http://www.rhomobile.com/home"&gt;Rhomobile&lt;/a&gt;, is a Ruby-based platform for mobile device apps similar in concept to Rails. It is complemented by &lt;a href="http://www.rhomobile.com/products/rhosync"&gt;RhoSync&lt;/a&gt;, which is a Rails application that syncs local data from mobile device apps back to the web. This could be a winner...&lt;br /&gt;&lt;br /&gt;I also stumbled across &lt;a href="http://shoooes.net/"&gt;Shoes&lt;/a&gt;, which allows you to 'make nice, colorful programs for Mac OS X, Linux and Windows... and do it all in Ruby!' I urge you to take a look at the &lt;a href="http://shoooes.net/tutorial/"&gt;tutorial&lt;/a&gt;, even if you're not into Ruby. I find this sort of thing really refreshing, I have to say.&lt;br /&gt;&lt;br /&gt;Another possibility is &lt;a href="http://www.qtsoftware.com/"&gt;Qt&lt;/a&gt; from Nokia (who have &lt;a href="http://www.nokia.com/A4136001?newsid=1185531"&gt;bought trolltech&lt;/a&gt;). Qt is a cross-platform application framework for Windows, Mac, Linux/X11, Windows CE, Embedded Linux and S60. It's expensive for commercial licences, but will be cheaper (free?) from &lt;a href="http://www.qtsoftware.com/developer/preview-qt-4.5"&gt;version 4.5&lt;/a&gt; onwards with the adoption of  &lt;a href="http://www.qtsoftware.com/about/news/lgpl-license-option-added-to-qt"&gt;LGPL&lt;/a&gt;. Qt can be used with Java or C++, and there are Ruby bindings in &lt;a href="http://rubyforge.org/projects/korundum/"&gt;QtRuby&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I'm not ready to work with any of this yet (still have web apps to finish), but I'm uplifted that I may not have to return to Visual C++ in a hurry, or learn Java.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-6513327079112385469?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/6513327079112385469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=6513327079112385469' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/6513327079112385469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/6513327079112385469'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2009/02/destop-apps-in-ruby.html' title='Desktop Apps in Ruby'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_exkOqgGkZN8/SafIqMxDZ3I/AAAAAAAAAEw/sMyrSsDDDUg/s72-c/nks.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-4962586522663171094</id><published>2008-12-16T07:52:00.004Z</published><updated>2008-12-16T08:34:19.546Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gadgets'/><title type='text'>Domestic RAID</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_exkOqgGkZN8/SUdm1P0ANfI/AAAAAAAAAEg/pofjLSkqNis/s1600-h/synology-ds408.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 256px;" src="http://2.bp.blogspot.com/_exkOqgGkZN8/SUdm1P0ANfI/AAAAAAAAAEg/pofjLSkqNis/s320/synology-ds408.jpg" alt="" id="BLOGGER_PHOTO_ID_5280302153078945266" border="0" /&gt;&lt;/a&gt;After carefully loading four virgin hard disks into my new &lt;a href="http://synology.com/enu/products/DS408/index.php"&gt;Synology DS408&lt;/a&gt;, I had to choose a RAID configuration. RAID 5 was the obvious choice as a balance of performance and data redundancy, or even RAID 6 is possible with 4 drives. I decided to do something slightly more elaborate: Create a RAID 5 from three drives and keep the fourth drive separate, because:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;It is useful to have some transient storage, where performance is more important than redundancy.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In a domestic situation, you are unlikely to have spare disks hanging around to repair a RAID failure. The fourth disk doubles up as a spare for the RAID.&lt;/li&gt;&lt;li&gt;Local backup of particularly important stuff could be done nightly from the RAID to the spare if you're feeling particularly insecure.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The &lt;a href="http://www.seagate.com/ww/v/index.jsp?locale=en-US&amp;amp;name=st31500341as-barracuda-7200-11-sata-32mb-c-1.5tb-hd&amp;amp;vgnextoid=511a8cf6a794b110VgnVCM100000f5ee0a0aRCRD&amp;amp;vgnextchannel=47f281f8c0f43110VgnVCM100000f5ee0a0aRCRD&amp;amp;reqPage=Model"&gt;Seagate 1.5TB&lt;/a&gt; disks I have bought seem to have firmware problems (google for it), especially in RAID configurations, especially in RAID configurations of more than 3 drives.&lt;/li&gt;&lt;/ol&gt;Capacity? 2744.8GB RAID + 1372.4GB = 4117.2GB.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-4962586522663171094?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/4962586522663171094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=4962586522663171094' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/4962586522663171094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/4962586522663171094'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/12/domestic-raid.html' title='Domestic RAID'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_exkOqgGkZN8/SUdm1P0ANfI/AAAAAAAAAEg/pofjLSkqNis/s72-c/synology-ds408.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-7504579733380856509</id><published>2008-11-16T19:03:00.001Z</published><updated>2008-11-16T19:04:31.488Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='PS3'/><title type='text'>Little BIG Planet</title><content type='html'>&lt;a href="http://www.littlebigplanet.com/en_GB/"&gt;Little BIG Planet&lt;/a&gt; Great or Lame?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-7504579733380856509?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/7504579733380856509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=7504579733380856509' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/7504579733380856509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/7504579733380856509'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/11/little-big-planet.html' title='Little BIG Planet'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-2770530661267127247</id><published>2008-11-12T16:27:00.003Z</published><updated>2008-11-12T16:49:23.779Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Life'/><category scheme='http://www.blogger.com/atom/ns#' term='Politics'/><title type='text'>Remembrance</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_exkOqgGkZN8/SRsI6wGyOrI/AAAAAAAAAEY/OMe1GAMDHvU/s1600-h/poppy_square.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 282px; height: 242px;" src="http://3.bp.blogspot.com/_exkOqgGkZN8/SRsI6wGyOrI/AAAAAAAAAEY/OMe1GAMDHvU/s320/poppy_square.jpg" alt="" id="BLOGGER_PHOTO_ID_5267813994578721458" border="0" /&gt;&lt;/a&gt;I've been struggling to work out why I wouldn't wear a red poppy. I think we should remember those that have given their lives, so in theory I should want to wear one, but I don't. I think it is because the military pomp that surrounds Remembrance Day ceremonies has me remembering those that died as &lt;span style="font-style: italic;"&gt;soldiers&lt;/span&gt; instead of &lt;span style="font-style: italic;"&gt;people&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Turns out there are others who feel uncomfortable about red poppies and their association with military culture and choose &lt;a href="http://www.ppu.org.uk/whitepoppy/index.html"&gt;white poppies&lt;/a&gt;  instead. Sounds good to me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-2770530661267127247?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/2770530661267127247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=2770530661267127247' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/2770530661267127247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/2770530661267127247'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/11/remembrance.html' title='Remembrance'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_exkOqgGkZN8/SRsI6wGyOrI/AAAAAAAAAEY/OMe1GAMDHvU/s72-c/poppy_square.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-383953778525475152</id><published>2008-10-16T21:02:00.008+01:00</published><updated>2008-10-22T19:02:57.063+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Project Management Software</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_exkOqgGkZN8/SPekxHGcRkI/AAAAAAAAAEQ/26O33M-v5L0/s1600-h/minglehead.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_exkOqgGkZN8/SPekxHGcRkI/AAAAAAAAAEQ/26O33M-v5L0/s320/minglehead.gif" alt="" id="BLOGGER_PHOTO_ID_5257852253604955714" border="0" /&gt;&lt;/a&gt;Despite being a one man band, I still need to plan and keep track of my progress, note down bugs/feature requests and various other management tasks. I've been using &lt;a href="http://www.basecamphq.com/"&gt;Basecamp&lt;/a&gt; To Do lists for most things, phases, features, bugs, user comments requiring action, etc, but it's all got in a bit of a mess! I think I might switch to &lt;a href="http://lighthouseapp.com/"&gt;Lighthouse&lt;/a&gt;, as that handles issue tracking properly, as well as simple planning. I wish there was a free single user version of &lt;a href="http://studios.thoughtworks.com/mingle-agile-project-management/"&gt;Mingle&lt;/a&gt;... that looks like it has it all (even &lt;a href="http://redfursnake.blogspot.com/2008/09/off-rails.html"&gt;Zed Shaw&lt;/a&gt; thinks this software is &lt;strong style="font-weight: normal;"&gt;'very truly great'&lt;/strong&gt; even though he seems to really hate ThoughtWorks).&lt;br /&gt;&lt;br /&gt;All I really need is...&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Simple requirements capture.&lt;/li&gt;&lt;li&gt;Ability to group requirements into phases/releases.&lt;/li&gt;&lt;li&gt;Ability to update/track progress.&lt;/li&gt;&lt;li&gt;Bug tracking.&lt;/li&gt;&lt;li&gt;Somewhere to note down stuff so I don't forget it.&lt;/li&gt;&lt;/ol&gt;I'm not too bothered about...&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Time tracking.&lt;/li&gt;&lt;li&gt;Report generation.&lt;/li&gt;&lt;li&gt;Collaboration features (chatrooms, writeboards, file sharing).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;SCM integration.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;And it would be nice if it was written with Rails (like Basecamp, Lighthouse and Mingle) or maybe a Mac app. I'm going to try Lighthouse, but would be interested in any other suggestions...?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE&lt;/span&gt; Turns out I was misunderstood the pricing of Mingle: it is free for five users or less (thanks Adam). I have now downloaded it and despite only playing with Mingle for a few minutes, I suspect it may be something special. It comes with project templates to support common Agile methodologies, but I'm more excited by the fact that I can create my own, and Mingle appears to offer great flexibility for structuring stuff how ever I want. Elements of the project are modelled with &lt;span style="font-weight: bold;"&gt;Cards&lt;/span&gt;. You can configure any number of colour-coded Card types, e.g. Features, Defects, Releases, Risks. Cards can be organised into &lt;span style="font-weight: bold;"&gt;Trees&lt;/span&gt;, so you could break down broad Features areas into smaller Featurettes, for example. Cards can be added to more than one tree, so Featurette Cards might appear in the Releases Tree to show what functionality is planned for each release. Then there are &lt;span style="font-weight: bold;"&gt;Transitions&lt;/span&gt; for modelling the lifetime of a card, e.g. the state of a Defect from New, to Open, to Awaiting Re-test, etc. Munge all of that structured data with flexible viewing, metrics collection, free-text searching, filtering, reporting, collaboration, SCM integration and you've got one pretty powerful and flexible package. Shame it won't write the code for me, although version 2.1 is out in a few days, so maybe that's coming...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE 2 &lt;/span&gt;Version 2.1 is now available.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-383953778525475152?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/383953778525475152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=383953778525475152' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/383953778525475152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/383953778525475152'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/10/project-management-software.html' title='Project Management Software'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_exkOqgGkZN8/SPekxHGcRkI/AAAAAAAAAEQ/26O33M-v5L0/s72-c/minglehead.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-3432310206899026466</id><published>2008-10-15T15:26:00.005+01:00</published><updated>2008-11-10T10:17:14.367Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>My MacBook Pro is old</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_exkOqgGkZN8/SPYBa8OmBEI/AAAAAAAAAEA/34h4DvZRYlA/s1600-h/product-black-aluminum.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_exkOqgGkZN8/SPYBa8OmBEI/AAAAAAAAAEA/34h4DvZRYlA/s320/product-black-aluminum.jpg" alt="" id="BLOGGER_PHOTO_ID_5257391177357198402" border="0" /&gt;&lt;/a&gt;Finally, my 2006 MacBook Pro looks old. Apple have announced new MacBooks, MacBook Pros and an updated MacBook Air. Also a new 24 inch LED cinema display.&lt;br /&gt;&lt;br /&gt;The Good:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;New MacBooks look even sexier than the old ones (obviously). Thinner, with unibody aluminium enclosures (no ugly seams with plastic gaskets). Nice glass displays, LED backlit. New style keyboard with nice flat keys. Glass trackpad with no button (whole trackpad is the button). Upgraded graphics performance. User accessible hard drive. Bigger hard disk options, including a 320GB 7200.&lt;/li&gt;&lt;li&gt;24 inch LED display, with full glass front (like iMac). No external power supply. Includes power connector for MacBook Pro, so no need for a MacBook power supply either when using with the display. Built-in iSight.&lt;/li&gt;&lt;/ol&gt;The Bad:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;New mini DisplayPort connector is neater than old DVI, but means an optional £69 adapter is required to connect to my older 30 inch cinema display.&lt;/li&gt;&lt;li&gt;Processors not much faster than before, although graphics power may make up for that?&lt;/li&gt;&lt;li&gt;No FireWire 400 (although available via the right cable), fewer ports generally.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;No HDMI port on new cinema display.&lt;/li&gt;&lt;li&gt;No new 30 inch display, and even if there was, probably wouldn't have HDMI either.&lt;/li&gt;&lt;/ol&gt;The Ugly:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;MacBook Pros now have faster memory than Mac Pros. New Mac Pros must be coming soon to incorporate new DisplayPort connector, faster RAM, even more cores (eight is no where near enough is it?).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Is FireWire going to disappear soon?&lt;/li&gt;&lt;li&gt;At the Key Note, Steve Jobs still looking very thin, voice a bit wobbly...&lt;/li&gt;&lt;/ol&gt;Conclusion:&lt;br /&gt;&lt;br /&gt;Would obviously like a new MacBook Pro (to my spec £1994), but will wait for new 30 inch cinema display and lottery win, then consider upgrading both. Would be an expensive way to sort out my MacBook Pro's battery which now only lasts 15 mins per charge!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE&lt;/span&gt; Have now had a hands-on play with the new MacBook and MacBook Pro. Yes, they are extremely nice. The unibody enclosure makes the old design seem scruffy. A pleasant surprise was the hidden trackpad button. The whole trackpad pivots slightly along the top edge and clicks. It's the best of both worlds: the tactile feedback of a clicking button, without losing track pad area.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-3432310206899026466?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/3432310206899026466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=3432310206899026466' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/3432310206899026466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/3432310206899026466'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/10/my-macbook-pro-is-old.html' title='My MacBook Pro is old'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_exkOqgGkZN8/SPYBa8OmBEI/AAAAAAAAAEA/34h4DvZRYlA/s72-c/product-black-aluminum.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-8528501692975830658</id><published>2008-10-12T09:42:00.010+01:00</published><updated>2008-10-12T15:03:12.300+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsuck'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Exploder'/><title type='text'>Run IE6, IE7 and IE8 on the Mac for Free!</title><content type='html'>I only own a Mac, but need to test my web sites in Internet Explorer. Up to now, I have been using Parallels with Windows XP and IE7, with IE6 installed as a standalone browser alongside. This worked OK, until I tried to install IE8. Since IE8 is still in beta, I presumed that it wouldn't overwrite my &lt;span style="font-style: italic;"&gt;stable&lt;/span&gt; IE7. But this is Microsuck, so no, it upgraded my IE7 and hosed my IE6.&lt;br /&gt;&lt;br /&gt;Looking round for an alternative way to do this, I found &lt;a href="http://blog.mozmonkey.com/2008/vpc-ie6-ie7-ie8-on-mac-os-x/"&gt;this blog post&lt;/a&gt; by Jeremy Gillick and decided to give it a go.  &lt;span style="font-style: italic; color: rgb(204, 0, 0);"&gt;It almost works, but for the blue screen of death at the end!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The steps below are a combination of the original post and stuff in the comments to the post. This approach requires an Intel Mac, but does not require a PC or Parallels, or a Windows licence.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Download the windows VPC images for the browsers you want to test with. I wanted &lt;a href="http://download.microsoft.com/download/b/7/2/b72085ae-0f04-4c6f-9182-bf1ee90f5273/IE6-XPSP3_VPC.EXE"&gt;IE6&lt;/a&gt;, &lt;a href="http://download.microsoft.com/download/b/7/2/b72085ae-0f04-4c6f-9182-bf1ee90f5273/IE7-XPSP3_VPC.EXE"&gt;IE7&lt;/a&gt; and &lt;a href="http://download.microsoft.com/download/b/7/2/b72085ae-0f04-4c6f-9182-bf1ee90f5273/IE8B2-XPSP3_VPC.EXE"&gt;IE8&lt;/a&gt; all for XP SP3. (Note if these specific browser links no longer work, try the main &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=21EABB90-958F-4B64-B5F1-73D0A413C8EF&amp;amp;displaylang=en"&gt;Download&lt;/a&gt; page to get the images).&lt;/li&gt;&lt;li&gt;Change the file extension of the downloaded files from &lt;span style="font-weight: bold;"&gt;.exe&lt;/span&gt; to &lt;span style="font-weight: bold;"&gt;.zip&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Download and install &lt;a href="http://www.zipeg.com/home.html"&gt;Zipeg&lt;/a&gt; and use it to extract the &lt;span style="font-weight: bold;"&gt;.vhd&lt;/span&gt; file from each of the &lt;span style="font-weight: bold;"&gt;.zip&lt;/span&gt; files.&lt;/li&gt;&lt;li&gt;Download and install &lt;a href="http://www.kju-app.org/"&gt;Q&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Use the Q qemu-img utility to convert each &lt;span style="font-weight: bold;"&gt;.vhd&lt;/span&gt; to a &lt;span style="font-weight: bold;"&gt;.vmdk&lt;/span&gt;, e.g. for IE6:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/Applications/Q.app/Contents/MacOS/qemu-img convert -O vmdk -f vpc "XP SP3 with IE6.vhd" IE6.vmdk&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Download, install and run &lt;a href="http://www.virtualbox.org/wiki/Downloads"&gt;VirtualBox&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Create a 'New' virtual machine, e.g. IE6, Windows XP, 350MB and select an 'Existing...' boot hard disk. In the Virtual Disk Manager, choose 'Add' and browse to the &lt;span style="font-weight: bold;"&gt;.vmdk&lt;/span&gt; file created at Step 5. Choose Finish.&lt;/li&gt;&lt;li&gt;You should now be able to Start the new virtual machine from the main VirtualBox window.&lt;/li&gt;&lt;/ol&gt;Great! And it all looks promising as Windows appears to start, but then &lt;span style="font-style: italic;"&gt;blue screens&lt;/span&gt; with the following:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_exkOqgGkZN8/SPHA3WYPp9I/AAAAAAAAAD4/HIcZtjCzw2E/s1600-h/Picture+5.png"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_exkOqgGkZN8/SPHA3WYPp9I/AAAAAAAAAD4/HIcZtjCzw2E/s320/Picture+5.png" alt="" id="BLOGGER_PHOTO_ID_5256194297250686930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Does this work for anyone else? Can anyone help me get this working?&lt;br /&gt;&lt;br /&gt;Aternatively, if you have a copy of Windows and Parallels or VMWare (or a PC) you could use &lt;a href="http://www.tothepc.com/archives/install-use-multiple-versions-of-internet-explorer/"&gt;The Internet Explorer Collection&lt;/a&gt;. This is the best option for me, as I can run all three browsers side-by-side in one VM. My Mac isn't beefy enough to run three VMs concurrently!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-8528501692975830658?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/8528501692975830658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=8528501692975830658' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/8528501692975830658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/8528501692975830658'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/10/run-ie6-ie7-and-ie8-on-mac-for-free.html' title='Run IE6, IE7 and IE8 on the Mac for Free!'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_exkOqgGkZN8/SPHA3WYPp9I/AAAAAAAAAD4/HIcZtjCzw2E/s72-c/Picture+5.png' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-3810475170356792882</id><published>2008-10-05T19:19:00.009+01:00</published><updated>2008-10-06T09:56:37.179+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Politics'/><category scheme='http://www.blogger.com/atom/ns#' term='Moving House'/><title type='text'>The Mandelson Brown Thing</title><content type='html'>I'm not too interested in this politix stuff, but...&lt;br /&gt;&lt;br /&gt;Without quoting anyone in particular, I've heard it said that Peter Mandelson is back in the cabinet despite the 15 year feud with Gordon Brown because these difficult times need the best and most experienced people to fix things.&lt;br /&gt;&lt;br /&gt;My question is: Why wouldn't you want the &lt;span style="font-style: italic;"&gt;best&lt;/span&gt; people running the country &lt;span style="font-style: italic;"&gt;all&lt;/span&gt; the time?&lt;br /&gt;&lt;br /&gt;Of course, I'm not suggesting that Brown or Mandelbrot are the best people, but it seems like an admission by Brown that in &lt;span style="font-style: italic;"&gt;normal&lt;/span&gt; times, he just surrounds himself with his mates, rather than those best to serve.&lt;br /&gt;&lt;br /&gt;What's going on with the world economy? I don't really understand, and it would appear that no one else does either... and no one wants to buy our &lt;a href="http://redfursnake.blogspot.com/2008/09/old-diary.html"&gt;house&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-3810475170356792882?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/3810475170356792882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=3810475170356792882' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/3810475170356792882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/3810475170356792882'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/10/mandelson-brown-thing.html' title='The Mandelson Brown Thing'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-3637966430756468932</id><published>2008-09-23T08:13:00.006+01:00</published><updated>2008-09-23T20:23:04.620+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Life'/><title type='text'>Social Notworking</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_exkOqgGkZN8/SNlCDTYJyRI/AAAAAAAAADc/E3ZQjzMn83M/s1600-h/business-man-5+copy.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_exkOqgGkZN8/SNlCDTYJyRI/AAAAAAAAADc/E3ZQjzMn83M/s320/business-man-5+copy.jpg" alt="" id="BLOGGER_PHOTO_ID_5249299465185642770" border="0" /&gt;&lt;/a&gt;The large group of acquaintances I had in my teens-twenties has gradually reduced over the years to a much smaller core of close friends. I think that's quite common. I'd rather spend more time with good friends, than little time with lots. Why then, would I want to form hundreds of shallow relations with a load of people I don't know at all? Well I wouldn't, but I signed up with a load of Social Networking sites anyway: Friends Reunited, Facebook, Linkedin, ecademy and others that I can't even remember.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I don't need to communicate with my close friends via Facebook as I see them regularly. I remained in contact with the old school friends I wanted to, and didn't need to be contacted by old acquaintances boasting about their fabulous jobs/lives.&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Linkedin and ecademy could have been useful for professional networking, but I fear that genuinely useful contacts are lost in the noise of desperate needy Suits. Unless of course you are a *&lt;b&gt;Black Star&lt;/b&gt; on ecademy which is only for a &lt;i&gt;select pool of talented and influential people&lt;/i&gt;: yeah, those that are willing to pay £105 per month!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I haven't got a problem with contacting new people via the web, but not by social networking sites. I think blogging is far better. You can find people blogging about topics of mutual interest, or demonstrating their knowledge and experience far beyond any CV or FaceSpace home page.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you just want to connect with a complete stranger, why not hold someone's hand on the train? If it's a professional connection you're after, make sure they're wearing a &lt;a href="http://redfursnake.blogspot.com/2007/10/men-in-suits.html"&gt;suit&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-3637966430756468932?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/3637966430756468932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=3637966430756468932' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/3637966430756468932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/3637966430756468932'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/09/social-notworking.html' title='Social Notworking'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_exkOqgGkZN8/SNlCDTYJyRI/AAAAAAAAADc/E3ZQjzMn83M/s72-c/business-man-5+copy.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-7082536949765675536</id><published>2008-09-13T07:59:00.005+01:00</published><updated>2008-09-13T08:17:11.906+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><title type='text'>Off the Rails</title><content type='html'>Sorry, a bit behind the curve (Jan 2008) but you have to read the &lt;a href="http://www.zedshaw.com/rants/rails_is_a_ghetto.html"&gt;Rails is a Ghetto&lt;/a&gt; article by &lt;a href="http://www.zedshaw.com/index.html"&gt;Zed Shaw&lt;/a&gt;, the creator of &lt;a href="http://mongrel.rubyforge.org/"&gt;Mongrel&lt;/a&gt; the web server that pretty much all Rails apps use. It's more entertaining, passionate and honest than most articles from such figures of tech-authority. I hardly know PHP, so I should be OK.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-7082536949765675536?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/7082536949765675536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=7082536949765675536' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/7082536949765675536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/7082536949765675536'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/09/off-rails.html' title='Off the Rails'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-2132524015497873757</id><published>2008-09-12T19:01:00.006+01:00</published><updated>2008-10-06T09:43:37.476+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Moving House'/><title type='text'>The Old Dairy</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_exkOqgGkZN8/SMqvRkF2qaI/AAAAAAAAAC8/w0vMNFKL5N0/s1600-h/front1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_exkOqgGkZN8/SMqvRkF2qaI/AAAAAAAAAC8/w0vMNFKL5N0/s200/front1.jpg" alt="" id="BLOGGER_PHOTO_ID_5245197432307231138" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Our house is &lt;a href="http://www.howardcundey.com/property/PropDetails.asp?id=%2010504"&gt;For Sale&lt;/a&gt;. Go on, buy it. You know you want to...&lt;br /&gt;&lt;br /&gt;&lt;iframe width="300" height="300" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.co.uk/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;t=h&amp;amp;s=AARTsJofwmDE9UVIve8Jlfwr0XPHLoc7dg&amp;amp;msa=0&amp;amp;msid=118349976192021717257.000456b6c1f9d49b9a3c0&amp;amp;ll=51.109814,0.13837&amp;amp;spn=0.00101,0.001609&amp;amp;z=18&amp;amp;output=embed"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;small&gt;&lt;a href="http://maps.google.co.uk/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;t=h&amp;amp;msa=0&amp;amp;msid=118349976192021717257.000456b6c1f9d49b9a3c0&amp;amp;ll=51.109814,0.13837&amp;amp;spn=0.00101,0.001609&amp;amp;z=18&amp;amp;source=embed" style="color:#0000FF;text-align:left"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-2132524015497873757?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/2132524015497873757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=2132524015497873757' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/2132524015497873757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/2132524015497873757'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/09/old-diary.html' title='The Old Dairy'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_exkOqgGkZN8/SMqvRkF2qaI/AAAAAAAAAC8/w0vMNFKL5N0/s72-c/front1.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-1242856543536749136</id><published>2008-09-12T14:12:00.004+01:00</published><updated>2008-09-15T08:58:00.032+01:00</updated><title type='text'>Google Chrome, first look</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_exkOqgGkZN8/SMpyHh1sOZI/AAAAAAAAAC0/ivOorMpSLOE/s1600-h/logo_sm.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_exkOqgGkZN8/SMpyHh1sOZI/AAAAAAAAAC0/ivOorMpSLOE/s200/logo_sm.jpg" alt="" id="BLOGGER_PHOTO_ID_5245130189694581138" border="0" /&gt;&lt;/a&gt;I just tried Google's new browser: &lt;a href="http://www.google.com/chrome"&gt;Google Chrome&lt;/a&gt;. The beta is currently only available for Windows so I didn't play with it for long. However, initial impressions...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Rendering is predictable (since based on WebKit).&lt;/li&gt;&lt;li&gt;Safari rendering is slightly &lt;span style="font-style: italic;"&gt;nicer&lt;/span&gt; (Safari anti-aliasing smoother, e.g. fonts and CSS rounded corners).&lt;/li&gt;&lt;li&gt;Clean interface (though inconsistent with OS).&lt;/li&gt;&lt;li&gt;Clever address bar that combines search and URLs, and has auto-completion for popular sites (not just sites you have previously visited, like Firefox/Safari).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Nice 'Create application shortcuts...' feature. You can save a web page as a desktop shortcut/start menu item, which when activated, starts the web application in a standalone Chrome window, without the normal browser controls. This can make a web app appear more like a desktop app. I think that's a clever idea and works well with &lt;a href="http://www.aworka.com/"&gt;Aworka&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Option to create an 'Incognito' browser window for private browsing (history, search history and cookies are all cleared when you close the window). &lt;/li&gt;&lt;/ul&gt;Plenty of other features I expect, but I won't look at it much more until it is available for the Mac.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-1242856543536749136?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/1242856543536749136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=1242856543536749136' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/1242856543536749136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/1242856543536749136'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/09/google-chrome-first-look.html' title='Google Chrome, first look'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_exkOqgGkZN8/SMpyHh1sOZI/AAAAAAAAAC0/ivOorMpSLOE/s72-c/logo_sm.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-4512478070471349740</id><published>2008-09-10T15:28:00.009+01:00</published><updated>2008-09-10T16:01:04.266+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='Gadgets'/><title type='text'>Let's Rock</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_exkOqgGkZN8/SMfaXVNKt_I/AAAAAAAAAB8/TfeNsUaQ1kc/s1600-h/ipodnano.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_exkOqgGkZN8/SMfaXVNKt_I/AAAAAAAAAB8/TfeNsUaQ1kc/s200/ipodnano.jpg" alt="" id="BLOGGER_PHOTO_ID_5244400385460451314" border="0" /&gt;&lt;/a&gt;Following Apple's Let's Rock event, it's good to see that the &lt;a href="http://www.apple.com/uk/ipodnano/"&gt;iPod nano&lt;/a&gt; has gone back to a sensible shape. I was never keen on the square one... evidently nor were Apple.&lt;br /&gt;&lt;br /&gt;I've got billions of tracks in iTunes, but never get round to creating Playlists so I normally engage random shuffle, which means inappropriate tracks from The Prodigy when you're trying to have a leisurely Sunday luncheon with friends. iTunes 8 has this new 'Genius' recommendation engine which can automatically create a Playlist of songs that fit one you select. I'm using it now... seems quite good. Give me downtempo...&lt;br /&gt;&lt;br /&gt;I also see that Apple are to sell &lt;a href="http://www.apple.com/uk/ipod/inearheadphones/"&gt;new headphones&lt;/a&gt; similar to the 'canalphone' &lt;a href="http://redfursnake.blogspot.com/2008/01/extraordin-eary-earphones.html"&gt;Shure&lt;/a&gt; ones I purchased some time back. About time to: the standard iPod headphones are shockingly bad.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_exkOqgGkZN8/SMfd6Q4TKII/AAAAAAAAACE/UYA6AlWm8aw/s1600-h/778135486_small.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_exkOqgGkZN8/SMfd6Q4TKII/AAAAAAAAACE/UYA6AlWm8aw/s200/778135486_small.jpg" alt="" id="BLOGGER_PHOTO_ID_5244404284129486978" border="0" /&gt;&lt;/a&gt;I feel I have to reiterate how good the &lt;a href="http://www.shure.co.uk/PersonalAudio/Products/Earphones/SEModels/uk_pa_se530_content"&gt;Shure SE530&lt;/a&gt;s are. I've also got some &lt;a href="http://www.sennheiser.com/sennheiser/home_en.nsf/product.html?ReadForm&amp;amp;path=professional_headphones-headsets_headphones&amp;amp;product=004974"&gt;Sennheiser HD280 pro&lt;/a&gt; headphones, which I hadn't used since I got my 530s, but just decided to compare them. Being full-sized headphones, I would have expected them to have better sound quality, deeper bass extension, etc. Wrong! Needless to say, I don't think I'll be listening on them again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-4512478070471349740?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/4512478070471349740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=4512478070471349740' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/4512478070471349740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/4512478070471349740'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/09/lets-rock.html' title='Let&apos;s Rock'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_exkOqgGkZN8/SMfaXVNKt_I/AAAAAAAAAB8/TfeNsUaQ1kc/s72-c/ipodnano.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-4415260907539233254</id><published>2008-09-04T08:12:00.010+01:00</published><updated>2008-09-06T12:20:37.051+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><title type='text'>Python for Skiiers; Ruby for Snowboarders</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_exkOqgGkZN8/SL-Xd1jFM4I/AAAAAAAAABc/PcQNqwUsz7M/s1600-h/ski_crash.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_exkOqgGkZN8/SL-Xd1jFM4I/AAAAAAAAABc/PcQNqwUsz7M/s400/ski_crash.jpg" alt="" id="BLOGGER_PHOTO_ID_5242075030128767874" border="0" /&gt;&lt;/a&gt;I notice that my &lt;span style="font-style: italic;"&gt;incredibly&lt;/span&gt; popular programming language poll, currently has &lt;a href="http://www.ruby-lang.org/en/"&gt;Ruby&lt;/a&gt; and &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt; neck and neck, so I thought I would start yet another Python vs Ruby debate. I know very little about Python, but I know what I like about Ruby over C++, my previous language of choice:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Pure OO: not bolted on as an after thought.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Dynamic typing: no more STL or templates; reduced need for inheritance or abstract base classes.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Blocks: no more fragmented STL predicate functions.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Single inheritance + mix-ins. The &lt;span style="font-style: italic;"&gt;right&lt;/span&gt; multiple inheritance, no more virtual base classes.&lt;/li&gt;&lt;li&gt;Built-in Regular Expressions (like most scripting languages).&lt;/li&gt;&lt;li&gt;More power from the core libraries like String and container classes etc.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Elegant simple and clean syntax, e.g. no need for end of line semi-colons; parenthesis often optional (great for Domain Specific Languages like stories in &lt;a href="http://www.rspec.info/"&gt;RSpec&lt;/a&gt;).&lt;/li&gt;&lt;li&gt;Garbage Collection.&lt;/li&gt;&lt;li&gt;Written in C, so easy to extend, e.g. to optimise performance.&lt;/li&gt;&lt;li&gt;Rails.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Mac bias: Apple supports Python and Ruby for OS X development via Cocoa bridges, but  points out that "Leopard is also the premier platform for Ruby on Rails development, thanks to Rails, Mongrel, and Capistrano bundling."&lt;/li&gt;&lt;li&gt;Generally a feeling that you can do anything and it will work as expected!&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Limited things I know about Python (based only on hearsay):&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Indentation level syntactically important (Yuk!)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Python is a procedural/OO hybrid (Yuk! This might be the main reason Matz designed Ruby)&lt;/li&gt;&lt;li&gt;Python scripts run faster (hmmm, not sure about this one, especially with the &lt;a href="http://antoniocangiano.com/2007/11/28/holy-shmoly-ruby-19-smokes-python-away/"&gt;more recent versions of Ruby&lt;/a&gt;).&lt;/li&gt;&lt;li&gt;Python scripts can be compiled for extra speed (work in progress for Ruby, e.g. &lt;a href="http://www.atdot.net/yarv/"&gt;YARV&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Python is more mature and has more comprehensive libraries, full support for unicode, etc.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Python doesn't have Ruby style blocks (It should get them, they're great!)&lt;/li&gt;&lt;li&gt;Weird variables with lots of __underscores__ (not sure what that's all about!?!)&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Why did I choose Ruby? I wanted to start developing web applications. There was a lot of buzz around Rails and I liked the elegant user experience that Rails sites seemed to offer. I knew of Python, but didn't realise it was a contender (no buzz). I'm not certain why: maybe I was a victim of tech-fashion, or perhaps it was that Ruby on Rails appeared to be the web development platform of choice for the Mac.&lt;br /&gt;&lt;br /&gt;So why choose Python?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-4415260907539233254?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/4415260907539233254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=4415260907539233254' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/4415260907539233254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/4415260907539233254'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/09/python-for-skiiers-ruby-for.html' title='Python for Skiiers; Ruby for Snowboarders'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_exkOqgGkZN8/SL-Xd1jFM4I/AAAAAAAAABc/PcQNqwUsz7M/s72-c/ski_crash.jpg' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-2326407204511885894</id><published>2008-09-02T14:29:00.006+01:00</published><updated>2008-10-12T10:32:18.466+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsuck'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Exploder'/><title type='text'>Goodbye IE6?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_exkOqgGkZN8/SMDi_V5OV6I/AAAAAAAAABs/NakNeu-F5NQ/s1600-h/notie6_128.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_exkOqgGkZN8/SMDi_V5OV6I/AAAAAAAAABs/NakNeu-F5NQ/s400/notie6_128.png" alt="" id="BLOGGER_PHOTO_ID_5242439544096053154" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.37signals.com/"&gt;37signals&lt;/a&gt;' web service &lt;a href="http://www.basecamphq.com/"&gt;Basecamp&lt;/a&gt; announced a while ago that it would be phasing out support for Internet Explorer 6 on 1st August this year. Now they have extended that deadline until the 1st October. Does this mean that there are still a significant number of people using IE6 to access Basecamp (and the web)? I do hope not because supporting IE6 is a real pain and I had only planned to support  IE7 (and 8), Firefox, Safari and Google Chrome for my own web services.&lt;br /&gt;&lt;br /&gt;In some ways I would prefer not to support Internet Explorer at all,  because I have to crank up Windows to test it. However, despite the availability of Firefox and Safari for Windows, many  users will still use Internet Explorer as their default browser even when they don't want to, just because they need to use  the ActiveX crud of Microsoft Update. Why can't Microsoft use a standalone control panel like Software Update in OS X? (I think we know why). If you're really determined, you can access Microsoft Update from Firefox by installing the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1419"&gt;IE Tab&lt;/a&gt; add on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-2326407204511885894?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/2326407204511885894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=2326407204511885894' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/2326407204511885894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/2326407204511885894'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/09/goodbye-ie6.html' title='Goodbye IE6?'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_exkOqgGkZN8/SMDi_V5OV6I/AAAAAAAAABs/NakNeu-F5NQ/s72-c/notie6_128.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-1010199351127513382</id><published>2008-08-23T09:12:00.014+01:00</published><updated>2008-08-24T10:31:07.521+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ex-director-y'/><title type='text'>Ex-director-y, Part 9. The anti-director</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_exkOqgGkZN8/SLENUOBvbyI/AAAAAAAAAAo/ufjzJLU_7Zs/s1600-h/asleep-at-desk.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_exkOqgGkZN8/SLENUOBvbyI/AAAAAAAAAAo/ufjzJLU_7Zs/s400/asleep-at-desk.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5237982482622541602" /&gt;&lt;/a&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Q:&lt;/span&gt; What's worse than a bad director?&lt;/div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;A:&lt;/span&gt; An &lt;span class="Apple-style-span" style="font-style: italic;"&gt;anti&lt;/span&gt;-director.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have to admit, this is what I was for much of my directing career: a director in name only; aware of my role, but unaware of its significance, busy and distracted by non-director day-to-day work. Ironically, my most directorial achievement was resignation!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Companies with anti-directors typically have:&lt;br /&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;No published Mission, Vision or Strategy.&lt;/li&gt;&lt;li&gt;No published plans.&lt;/li&gt;&lt;li&gt;No review of plans against progress.&lt;/li&gt;&lt;li&gt;No changes to staff levels; no promotions in the last year.&lt;/li&gt;&lt;li&gt;No new customers in the last year.&lt;/li&gt;&lt;li&gt;No improvements to service/product quality or process in the last year.&lt;/li&gt;&lt;li&gt;No increase in turnover/profit.&lt;/li&gt;&lt;li&gt;No updates to marketing or sales strategy, including marketing materials.  &lt;/li&gt;&lt;li&gt;No investment.&lt;/li&gt;&lt;li&gt;No proactive changes, only reactive ones.&lt;/li&gt;&lt;li&gt;No passion or excitement.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;In other words, if your company is in much the same place it was a year ago and you have only reacted to change rather than initiating it, you are probably an anti-director.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-1010199351127513382?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/1010199351127513382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=1010199351127513382' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/1010199351127513382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/1010199351127513382'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/08/ex-director-y-part-9-anti-director.html' title='Ex-director-y, Part 9. The anti-director'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_exkOqgGkZN8/SLENUOBvbyI/AAAAAAAAAAo/ufjzJLU_7Zs/s72-c/asleep-at-desk.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-5941331023312345547</id><published>2008-08-07T08:13:00.007+01:00</published><updated>2008-08-24T08:19:19.310+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>SQL Hell, Part 1. Selecting Nearby</title><content type='html'>The biggest challenge I have faced developing my first Ruby on Rails application has been grasping SQL, closely followed by the challenge of getting Rails to produce the SQL I want.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The problem with frameworks like Rails, is that whilst they can make it very easy to write database backed applications without dropping into SQL at all, there are many cases where the generated SQL queries are far too numerous and/or inefficient to be used in a multi-user production environment. Rails has techniques, like &lt;span class="Apple-style-span" style="font-style: italic;"&gt;eager loading&lt;/span&gt; and &lt;span class="Apple-style-span" style="font-style: italic;"&gt;named_scopes &lt;/span&gt;that can help in many situations. It also does its own &lt;span class="Apple-style-span" style="font-style: italic;"&gt;caching&lt;/span&gt; to prevent some queries happening more than once. Sooner or later though, you end up with problems that cannot be easily solved efficiently in SQL, let alone via Rails. That's what this series is mostly about.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's an example of the first problem I had, in the context of a blogging application (which mine isn't, but it's easier to illustrate):&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Given Users who each have many blog Posts, what is the &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;most efficient&lt;/span&gt; query (or queries) that for a specified date, selects all User's names, along with the title of their Post made closest &lt;span class="Apple-style-span" style="font-style: italic;"&gt;before&lt;/span&gt; the specified date (if any) and the title of their Post made closest &lt;span class="Apple-style-span" style="font-style: italic;"&gt;after&lt;/span&gt; the specified date (if any)?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My answer to follow... (if anyone shows any interest!)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-5941331023312345547?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/5941331023312345547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=5941331023312345547' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/5941331023312345547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/5941331023312345547'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/08/sql-hell-part-1-selecting-nearby.html' title='SQL Hell, Part 1. Selecting Nearby'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-255896363359718815</id><published>2008-07-27T09:14:00.007+01:00</published><updated>2009-06-08T16:41:46.568+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ex-director-y'/><title type='text'>Ex-director-y, Part 8. Role of a Director</title><content type='html'>What is the role of a Director in a nutshell?&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Set Mission, Vision and Strategy.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Establish Culture and Values.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Build the right (Management) Team.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Lead and Motivate.&lt;/li&gt;&lt;li&gt;Allocate Budgets.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Devise ways to measure own performance.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-255896363359718815?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/255896363359718815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=255896363359718815' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/255896363359718815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/255896363359718815'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/07/ex-director-y-part-8-role-of-director.html' title='Ex-director-y, Part 8. Role of a Director'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-6496809660936668794</id><published>2008-07-26T09:45:00.005+01:00</published><updated>2008-08-24T10:31:56.696+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Food'/><title type='text'>Healthy Diet</title><content type='html'>"Eat food. Not too much. Mostly plants."&lt;br /&gt;&lt;a href="http://www.nytimes.com/2007/01/28/magazine/28nutritionism.t.html?ex=1339473600&amp;amp;en=6682649fff1d46f7&amp;amp;ei=5124&amp;amp;partner=permalink&amp;amp;exprod=permalink"&gt;Unhappy Food&lt;/a&gt;&lt;br /&gt;Michael Pollan&lt;br /&gt;&lt;br /&gt;BTW I have been Pescetarian for a month now. I'm not really missing meat at all so far. I'm having about three fish meals a week; vege for the rest. Even if I started eating meat again, I can see that I would eat far less, having found that a surprising number of meals are actually better without it. Try it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-6496809660936668794?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/6496809660936668794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=6496809660936668794' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/6496809660936668794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/6496809660936668794'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/07/healthy-diet.html' title='Healthy Diet'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-6864407092640879791</id><published>2008-07-24T09:54:00.004+01:00</published><updated>2008-08-09T22:34:21.025+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ex-director-y'/><title type='text'>Ex-director-y, Part 7. Opportunity Knocks</title><content type='html'>Spotting and exploiting opportunities is one of the most important things a director should be able to do. More specifically, spotting  &lt;span style="font-style: italic;"&gt;good&lt;/span&gt; opportunities and disregarding the rest.&lt;br /&gt;&lt;br /&gt;Despite being ex-director-y, my software background means I'm still bombarded regularly by other people's &lt;span style="font-style: italic;"&gt;great ideas&lt;/span&gt;; ideas that allegedly just require someone who knows about computers. My opportunity filter goes something like this:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Is it a good/interesting idea? (For a company read: is this something that fits with the Company Vision?) &lt;/li&gt;&lt;li&gt;Has it already been done? If yes, is there any scope to do it better?&lt;/li&gt;&lt;li&gt;Will the idea be easily stolen/displaced by a more capable/applicable competitor?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Is it something I can do, or get people to help me do?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How long will it take, how much will it cost and where is the funding going to come from?&lt;/li&gt;&lt;li&gt;What are the potential revenues and how will they be split?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Given the above, is it worth doing?&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;I applied this filter to a proposition I received recently for an online shop selling bankrupt stock. On the face of it, it could have been a goer: their knowledge of  bankrupt stock, augmented by my knowledge of software and the internet. However, a far better solution was to suggest &lt;a href="http://www.shopify.com/"&gt;shopify&lt;/a&gt;. This is a generic online shop builder that, for a small monthly fee, allows anyone to get a shop up and running in a few minutes. Although I might have enjoyed spending months creating a bespoke online shop application, it would have been commercial idiocy, falling foul of Step 2 in my filter.&lt;br /&gt;&lt;br /&gt;The opportunity to write an online application for small service businesses fared rather better: I could see a market for it and could not find an alternative, so that's what I'm working on now.&lt;br /&gt;&lt;br /&gt;Unfortunately, some of the best opportunities are the most difficult to spot because they are &lt;span style="font-style: italic;"&gt;hidden&lt;/span&gt;. The subtle skill and out-of-the-box thinking required is often mistaken for &lt;span style="font-style: italic;"&gt;good luck&lt;/span&gt; by the more blinkered. Professor Richard Wiseman  wrote this article: &lt;a href="http://news.bbc.co.uk/1/hi/magazine/3335275.stm"&gt;The loser's guide to getting lucky&lt;/a&gt;, which explores this.&lt;br /&gt;&lt;br /&gt;In essence, if someone tries to interest you in an idea for a new type of iPod, it might be worth trying to sell them your old car or TV before you show them the door.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-6864407092640879791?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/6864407092640879791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=6864407092640879791' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/6864407092640879791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/6864407092640879791'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/07/ex-director-y-part-7-opportunity-knocks.html' title='Ex-director-y, Part 7. Opportunity Knocks'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-6834546064616127306</id><published>2008-06-25T20:03:00.004+01:00</published><updated>2008-08-24T11:21:29.282+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Food'/><title type='text'>Pescetarianism</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_exkOqgGkZN8/SLE2IE1DrkI/AAAAAAAAAA4/T4h4H-cO8uc/s1600-h/chickpeas.jpeg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_exkOqgGkZN8/SLE2IE1DrkI/AAAAAAAAAA4/T4h4H-cO8uc/s400/chickpeas.jpeg" border="0" alt="" id="BLOGGER_PHOTO_ID_5238027353971732034" /&gt;&lt;/a&gt;I'm giving &lt;a href="http://en.wikipedia.org/wiki/Pescetarianism"&gt;Pescetarianism&lt;/a&gt; a try. This is the latest in a line of long-standing moral dilemmas that  has finally got the better of me. I'm finding that eliminating the denial from your life can be very liberating! Vegetarianism may follow, but I don't feel so bad about fish at the moment...&lt;br /&gt;&lt;br /&gt;Look out for my forthcoming book "101 Tasty Chickpea Treats".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-6834546064616127306?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/6834546064616127306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=6834546064616127306' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/6834546064616127306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/6834546064616127306'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/06/pescetarianism.html' title='Pescetarianism'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_exkOqgGkZN8/SLE2IE1DrkI/AAAAAAAAAA4/T4h4H-cO8uc/s72-c/chickpeas.jpeg' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-5371348857025635151</id><published>2008-06-21T08:32:00.013+01:00</published><updated>2008-06-26T08:58:32.074+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><title type='text'>Upgrading to Ruby 1.8.7 using MacPorts</title><content type='html'>I thought it would have been simple to upgrade to the latest version of Ruby (1.8.7) since I had previously used MacPorts to install 1.8.6. However, my first attempt went like this...&lt;br /&gt;&lt;div class="code"&gt;bash$ sudo port install ruby&lt;br /&gt;---&gt;  Building ruby with target all&lt;br /&gt;Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_&lt;br /&gt;lang_ruby/work/ruby-1.8.6" &amp;amp;&amp;amp; make all " returned error 2&lt;br /&gt;Command output: ruby: [BUG] Segmentation fault&lt;br /&gt;ruby 1.8.6 (2007-03-13) [i686-darwin9.3.0]&lt;br /&gt;&lt;br /&gt;make: *** [.rbconfig.time] Abort trap&lt;br /&gt;&lt;br /&gt;Error: Status 1 encountered during processing.&lt;br /&gt;&lt;/div&gt;First, I thought maybe macports itself was out of date (I hadn't used it for months)...&lt;br /&gt;&lt;div class="code"&gt;bash$ sudo port selfupdate&lt;br /&gt;MacPorts base version 1.520 installed&lt;br /&gt;Downloaded MacPorts base version 1.600&lt;br /&gt;Configuring, Building and Installing new MacPorts base&lt;br /&gt;selfupdate done!&lt;br /&gt;&lt;/div&gt;Try to get Ruby again...&lt;br /&gt;&lt;div class="code"&gt;bash$ sudo port install ruby&lt;br /&gt;---&gt;  Building ruby with target all&lt;br /&gt;Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_&lt;br /&gt;lang_ruby/work/ruby-1.8.7-p22" &amp;amp;&amp;amp; make all " returned error 1&lt;br /&gt;Command output: sh: line 0: cd: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_&lt;br /&gt;lang_ruby/work/ruby-1.8.7-p22: No such file or directory&lt;br /&gt;&lt;br /&gt;Error: Status 1 encountered during processing.&lt;br /&gt;&lt;/div&gt;A slightly different error, but still not working. A little reading on the macports page suggested that a clean might help, to remove any leftover build files...&lt;br /&gt;&lt;div class="code"&gt;bash$ sudo port clean --all ruby&lt;br /&gt;---&gt;  Cleaning ruby&lt;br /&gt;&lt;/div&gt;Third time lucky...&lt;br /&gt;&lt;div class="code"&gt;bash$ sudo port install ruby&lt;br /&gt;...lots of output...&lt;br /&gt;bash$ sudo port deactivate ruby&lt;br /&gt;bash$ sudo port activate ruby&lt;br /&gt;---&gt;  Activating ruby&lt;br /&gt;---&gt;  The following versions of ruby are currently installed:&lt;br /&gt;---&gt;   ruby @1.8.6_0&lt;br /&gt;---&gt;   ruby @1.8.7-p22_1+thread_hooks&lt;br /&gt;Error: port activate failed: Registry error: Please specify the full version as recorded in the port registry.&lt;br /&gt;&lt;/div&gt;Just need to explicity activate the new version...&lt;br /&gt;&lt;div class="code"&gt;bash$ sudo port activate ruby @1.8.7-p22_1+thread_hooks&lt;br /&gt;---&gt;  Activating ruby 1.8.7-p22_1+thread_hooks&lt;br /&gt;&lt;/div&gt;And sure enough...&lt;br /&gt;&lt;div class="code"&gt;bash$ ruby -v&lt;br /&gt;ruby 1.8.7 (2008-06-20 patchlevel 22) [i686-darwin9.3.0]&lt;br /&gt;&lt;/div&gt;Mission accomplished. Now just need to check that my app still works...&lt;br /&gt;&lt;br /&gt;UPDATE 26 June: Looks like there are good reasons for updating to Ruby 1.8.7, since &lt;a href="http://weblog.rubyonrails.com/2008/6/26/this-week-in-rails-june-26-2008"&gt;security vulnerabilities&lt;/a&gt; have been found in 1.8.5/6. Patches to the older versions seem to be causing some segmentation faults. Ruby 1.8.7 is the way to go, provided you are prepared to upgrade Rails to 2.1 (earlier versions are not compatible, hence the 1.8.6 patches).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-5371348857025635151?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/5371348857025635151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=5371348857025635151' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/5371348857025635151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/5371348857025635151'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/06/upgrading-to-ruby-187-using-macports.html' title='Upgrading to Ruby 1.8.7 using MacPorts'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-3369345457448911580</id><published>2008-06-11T08:33:00.010+01:00</published><updated>2008-06-11T20:35:30.689+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BDD'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><title type='text'>Rails 2.1, RSpec stories, BDD</title><content type='html'>Here's a few useful links (for me at least):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.rubyonrails.org/"&gt;Rails 2.1&lt;/a&gt; has been released with some major new features and enhancements. I was having trouble identifing all the new stuff, but have found this &lt;a href="http://www.akitaonrails.com/2008/5/25/rolling-with-rails-2-1-the-first-full-tutorial-part-1"&gt;Rolling with Rails 2.1 - The First Full Tutorial&lt;/a&gt; on Akita on Rails. There is also this free book by Carlos Brando: &lt;a href="http://www.nomedojogo.com/2008/06/09/new-free-book-ruby-on-rails-21-whats-new/"&gt;Ruby on Rails 2.1 - What's New&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I hadn't realised how new &lt;a href="http://rspec.info/"&gt;RSpec&lt;/a&gt; was, especially the plain text story runner part: there isn't much proper documentation on the RSpec site yet, and it appears that some conventions are yet to be agreed, e.g. directory structure. However, I have found this useful &lt;a href="http://www.vaporbase.com/postings/Getting_Started_with_Story_Runner"&gt;Getting Started With Story Runner&lt;/a&gt; article by Jonathan Linowes on his Vaporbase blog to get me going. RSpec team member Pat Maddox has produced a &lt;a href="http://evang.eli.st/blog/2007/10/8/story-runner-top-to-bottom-screencast"&gt;Story Runner top to bottom screencast&lt;/a&gt;. This isn't quite up to date, since it doesn't use plain text stories, but is a great introduction to the RSpec BDD process: write a story, implement the story's steps, implement the specs for the code required for the steps, and finally implement the application code.&lt;br /&gt;&lt;br /&gt;The BDD link on my previous post was biased towards Ruby and RSpec (written by Dave Astels who is a member of the RSpec team). More general information about BDD can be found at the &lt;a href="http://behaviour-driven.org/"&gt;Behavior-Driven&lt;/a&gt; wiki. I also found &lt;a href="http://www.laughingpanda.org/projects/cppspec/"&gt;CppSpec&lt;/a&gt; for BDD with C++, for C++ fans... you know who you are. Even better, if you are looking for an excuse to give Ruby a whirl, why not &lt;a href="http://blog.objectmentor.com/articles/2008/02/04/unit-testing-c-and-c-with-ruby-and-rspec"&gt;Unit Test your C++ with Ruby and RSpec&lt;/a&gt;?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-3369345457448911580?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/3369345457448911580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=3369345457448911580' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/3369345457448911580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/3369345457448911580'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/06/rails-21-rspec-stories-bdd.html' title='Rails 2.1, RSpec stories, BDD'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-3050415126303752592</id><published>2008-06-05T07:44:00.007+01:00</published><updated>2008-06-11T10:19:10.491+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='BDD'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Towards well-behaved software</title><content type='html'>I have over 20 years programming experience, from BASIC to 8 bit Assembler at home and school, to &lt;a href="http://www.poplog.org/index.html"&gt;Lisp, POP-11, Prolog&lt;/a&gt; and C at university, to Ada 83 and more C, then C++ and Ada 95 in the workplace. Now I am exploring &lt;a href="http://www.rubyonrails.org/"&gt;Ruby (and Rails)&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I'd say I'm pretty good at programming, but terrible at testing. So bad in fact, that I have needed to develop an extra sense to &lt;a href="http://en.wikipedia.org/wiki/Code_smell"&gt;smell&lt;/a&gt; when my code is likely to contain lots of bugs so that I can rework it to prempt the need for testing. However, if I claimed that I was able to write even the smallest amount of bug-free code without testing it, I'd be lying.&lt;br /&gt;&lt;br /&gt;So why am I so bad at testing? Testing has always meant pain in one form or another. Testing was typcially done after all the code was written; sometimes lots of code. There was never enough time or patience to test properly (although no one would admit it), instead relying on integration activites to eek out most of the bugs. Everyone hated writing unit tests, which  seemed incapable of detecting any important bugs, despite considerable time and effort. Valuable functional, integration and acceptance tests invariably involved working through extremely long scripts verifying functionality by hand, which could take many days. Regression Testing? &lt;span style="font-style: italic;"&gt;Oh no, not again&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Strong typing and the enforcement of other compile-time truths were incoporated into programming languages so that the computer would be in a better position to point out when your program was invalid. It sounded like a great idea, but I don't think it worked. It prevented a small set of errors, but did little to reduce the amount of testing that would be required. In addition, in an attempt to make programming &lt;span style="font-style: italic;"&gt;safer&lt;/span&gt;, programs would be more difficult to write and more difficult to read. More code with no useful semantic value would be needed just to satisfy the compiler. Restrictions enforced by the compiler would also mean less expressive code, requiring overly complex designs and workarounds, again with no semantic value applicable to the problem domain.&lt;br /&gt;&lt;br /&gt;I should acknowledge at this point that programming language design has as much to do with execution efficiency as programmer protection. Restricting what a programmer can do can make programs run much quicker, but with today's computers most things can be &lt;span style="font-style: italic;"&gt;fast enough &lt;/span&gt;in most programming languages&lt;span style="font-style: italic;"&gt; &lt;/span&gt;for most applications&lt;span style="font-style: italic;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So now I have left behind my traditional programming roots to start something new. I've moved back to an dynamic programming language (&lt;a href="http://www.ruby-lang.org/en/"&gt;Ruby&lt;/a&gt;) because I want to solve programming problems in the most direct and elegant way possible. I have started to adopt Behaviour Driven Development (&lt;a href="http://rspec.info/"&gt;RSpec&lt;/a&gt;), which should make it safe to code without strongly-typed &lt;span style="font-style: italic;"&gt;seatbelts&lt;/span&gt; as well as ensuring I implement what's required and nothing more. It's early days, but smells right to me so far...&lt;br /&gt;&lt;br /&gt;I'm sure to post again about my experiences with BDD and RSpec. In the meantime, you might like to read &lt;a href="http://blog.daveastels.com/files/BDD_Intro.pdf"&gt;A New Look At Test-Driven Development&lt;/a&gt;, by Dave Astels, which explains the difference between TDD and BDD.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-3050415126303752592?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/3050415126303752592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=3050415126303752592' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/3050415126303752592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/3050415126303752592'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/06/towards-well-behaved-software.html' title='Towards well-behaved software'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-4405023023351846473</id><published>2008-03-19T16:38:00.002Z</published><updated>2008-10-06T09:43:37.477+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Moving House'/><title type='text'>Estate Agents, Part 2</title><content type='html'>First, the answers to my previous post... The properties and agents were in the same order, i.e. property 1 was presented by agent 1, 2 by 2, etc.&lt;br /&gt;&lt;br /&gt;Our favourite property was 2. This property had the most character and potential compared to the others. It's going to be a tall order though: we would have to develop at least three more holiday units (it currently has two) to pay the mortgage (which would need to include the cost of the development).&lt;br /&gt;&lt;br /&gt;I did a detailed breakdown of all the costs and income, etc. Lots of the numbers are guesses at best, but imagine my surprise when I discovered that the venture would yield a monthly profit of... 29 pence! This is a lifestyle move, so profit isn't important, but 29p might be cutting things a bit fine.&lt;br /&gt;&lt;br /&gt;Next step: discuss with Planning dept of West Devon Borough Council.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-4405023023351846473?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/4405023023351846473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=4405023023351846473' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/4405023023351846473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/4405023023351846473'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/03/estate-agents-part-2.html' title='Estate Agents, Part 2'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-8988167444995099920</id><published>2008-03-17T08:33:00.003Z</published><updated>2008-10-06T09:43:37.477+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Moving House'/><title type='text'>Estate Agents</title><content type='html'>We have looked at four properties in the last couple of days, spread across Devon and Cornwall. Four very different properties:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Polished and Established Holiday letting business, created from a Farmhouse with four converted farm buildings. Includes, outdoor play area, games room, tennis court.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A more equestrian property, with paddocks, stables, cart sheds, plus a couple of lets in a converted cottage.&lt;/li&gt;&lt;li&gt;A well presented home in park like grounds, with detached holiday cottage, outdoor swimming pool.&lt;/li&gt;&lt;li&gt;Converted stone barns: one to live in, two to let out, with pretty garden.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Four very different agents:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The Cuddly. No sales aggression at all. All smiles, lets the vendor do most of the talking. Probably used to work at the local pet shop. Only usually found in sparsely populated rural areas, where there are so few people, anyone can do any job.&lt;/li&gt;&lt;li&gt;The Old Soak. Semi-retired, lived in the local area for at least 40 years. Knows the vendors as personal friends. Likes to talk. Gives the impression that he would be a useful contact, from recommending slate roofers, to horse riding lessons (as long as he doesn't die of a heart attack or stroke).&lt;/li&gt;&lt;li&gt;The Slime. So stereotypical, you can't believe they really exist. Tall, dark, handsome with slicked hair. Pin stripe suit, beige trench coat. Talks slowly but confidently. Far too young to drive a horrendous old Jag: the only clue that he doesn't earn as much as he'd like you to think.&lt;/li&gt;&lt;li&gt;The Aggressive Girl. Young and eager to climb the career ladder, makes no secret of her desire for you to buy, and soon. The small square glasses, the MGF, the unsuitable shoes.&lt;/li&gt;&lt;/ol&gt;We did find a property we would like to buy (lots of frantic spreadsheeting ahead), can you guess which one? And more importantly, can you guess which type of estate agent presented it?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-8988167444995099920?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/8988167444995099920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=8988167444995099920' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/8988167444995099920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/8988167444995099920'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/03/estate-agents.html' title='Estate Agents'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-7689441511036660408</id><published>2008-03-17T07:59:00.002Z</published><updated>2008-03-17T08:32:41.546Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>Apples and 'Airs</title><content type='html'>I had my first opportunity to experience the MacBook Air yesterday at the Exeter Apple Store. It's nice, but I would prefer something smaller (not necessarily thinner) and even lighter. An oversized iPod touch with full Mac OS would be more interesting.&lt;br /&gt;&lt;br /&gt;I have also had a good play with my friend's iPhone. Just fabulous. Such a revelation in mobile ease of use. Why can't the other electronics giants do this? It's too expensive at the moment, but give it a year...&lt;br /&gt;&lt;br /&gt;Also interesting to see that the Apple Store was packed with people who can't resist the design sexiness of it all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-7689441511036660408?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/7689441511036660408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=7689441511036660408' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/7689441511036660408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/7689441511036660408'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/03/apples-and-airs.html' title='Apples and &apos;Airs'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-6671147557852246575</id><published>2008-02-26T16:02:00.003Z</published><updated>2008-02-26T16:19:02.568Z</updated><title type='text'>MacBook Doh!</title><content type='html'>New &lt;a href="http://www.apple.com/uk/macbook/index.html"&gt;MacBook&lt;/a&gt; and &lt;a href="http://www.apple.com/uk/macbookpro/"&gt;MacBook Pro&lt;/a&gt;s were revealed today, but the updates couldn't be more boring. A bit quicker yes (but nothing drastic), better graphics (always welcome), multi-touch (Nice).&lt;br /&gt;&lt;br /&gt;But they still look the same! The MacBook Pro design has not been updated for ages. Surely, it should at least have the Mac/MacBook keyboard by now? And it should be a little bit thinner, and probably have a bit more black on it, like the iMac...&lt;br /&gt;&lt;br /&gt;Still, at least mine looks as up to date as when I bought it nearly a year ago... and it now has a 200GB 7200RPM drive, hooray!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-6671147557852246575?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/6671147557852246575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=6671147557852246575' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/6671147557852246575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/6671147557852246575'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/02/macbook-doh.html' title='MacBook Doh!'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-2349653302245431521</id><published>2008-02-25T07:57:00.011Z</published><updated>2008-05-30T09:35:06.807+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><title type='text'>How much is your code worth?</title><content type='html'>There are something like 10,000 lines of code in the &lt;a href="http://www.basecamphq.com/"&gt;Basecamp&lt;/a&gt; Ruby on Rails application.&lt;br /&gt;They claim that over 1,000,000 people have signed up worldwide.&lt;br /&gt;Because they offer free signups, and because many of the signups will have lapsed, let's assume they that only 10% are paying customers at $24 per month (the lowest paid tariff).&lt;br /&gt;That gives a turnover of $28,800,000, which is $2,880 per line of code per year.&lt;br /&gt;&lt;br /&gt;To put this into perspective: As a bespoke freelance software developer, I was paid between £3 and £6 per line of code. My software was then sold on for between £10 and £20 per line. Even if these figures are wildly wrong, it couldn't have been more than £low-hundreds. Certainly not £thousands!&lt;br /&gt;&lt;br /&gt;Using &lt;a href="http://labs.ohloh.net/ohcount"&gt;Ohcount&lt;/a&gt;, my &lt;span style="text-decoration: underline;"&gt;&lt;/span&gt; new app consists of 2,911 lines of Ruby, 473 lines of HTML and 50 lines of JavaScript, total 3,434 lines. I suspect that version 1 will be sub-5000 lines, but let's assume it bloats to 10,000. If I charged £10 per month, and had 500 paying subscribers, that's £60K per year, or £6 per line per year, which would be comparable with my freelance days. But what if I got 5,000 or 50,000 subscribers...? I have never been in a situation like this where my work could earn between £0 and £millions and I have no idea which it's going to be!&lt;br /&gt;&lt;br /&gt;One thing is clear. I know exactly what I'll earn if I don't finish it.&lt;br /&gt;&lt;br /&gt;UPDATE: This &lt;a href="http://blog.jedchristiansen.com/2008/02/25/37signals-is-one-hell-of-a-profitable-business/"&gt;blog post&lt;/a&gt; explores 37signals possible revenues in more depth than me and comes up with a much lower figure of &lt;span style="font-style: italic;"&gt;just&lt;/span&gt; $3 - 5m. A company of only nine people surely can't make $28m a year as I suggested... can it?&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-2349653302245431521?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/2349653302245431521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=2349653302245431521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/2349653302245431521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/2349653302245431521'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/02/how-much-is-your-code-worth.html' title='How much is your code worth?'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-1853708068628751423</id><published>2008-02-24T08:10:00.003Z</published><updated>2008-02-24T08:28:02.110Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><title type='text'>Bang!</title><content type='html'>Programmers sometimes refer to the exclamation mark character ! as 'bang' when verbalising code. This is obviously easier to say and less verbose, but I had never considered where this convention came from.&lt;br /&gt;&lt;br /&gt;In Ruby, method names can include ? and ! symbols so you can have methods like:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;user.logged_in?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Methods ending in ? would be assumed to return true or false, testing some condition, which is a nice convention.&lt;br /&gt;&lt;br /&gt;In Rails, there are often two versions of the same method defined with and without !, e.g.:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;model.save&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;model.save!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(There is a class called &lt;a href="http://railsconditions.rubyforge.org/"&gt;RailsConditions&lt;/a&gt; that will define these two variants for you).&lt;br /&gt;&lt;br /&gt;The difference between these (again by convention), is that the non-bang version returns a success/failure status, whereas the bang version raises an exception in the event of failure.&lt;br /&gt;&lt;br /&gt;So in Rails, exclamation mark really does mean bang. Is this just coincidence?&lt;br /&gt;&lt;br /&gt;To spoil things, ! also means boolean not when used as an operator (as per C/C++/Java).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-1853708068628751423?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/1853708068628751423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=1853708068628751423' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/1853708068628751423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/1853708068628751423'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/02/bang.html' title='Bang!'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-2604607954562240676</id><published>2008-02-22T17:28:00.010Z</published><updated>2008-05-30T09:47:33.118+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><title type='text'>Have you seen Mr Ferret?</title><content type='html'>I wanted to add a facility to &lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;my web app to allow a someone to be looked up by name. To make this work nicely gets messy and complicated, e.g. if the original name was entered as 'Mr Frank Bristow', there could be problems matching against titleless 'Frank Bristow', 'F Bristow', or 'Mr Bristow', or mispellings like 'Fran&lt;span style="font-weight: bold;"&gt;ky&lt;/span&gt; Bristow&lt;span style="font-weight: bold;"&gt;e&lt;/span&gt;', etc. Fuzzy matching is hard! Thankfully, I didn't try to solve these problems myself...&lt;br /&gt;&lt;br /&gt;There is &lt;a href="http://ferret.davebalmain.com/trac/" title="Ferret Trac"&gt;Ferret&lt;/a&gt;: a Ruby high-performance text search engine library based on &lt;a href="http://lucene.apache.org/" title="Apache Lucene"&gt;Apache Lucene&lt;/a&gt; (which is what all the Java big boys use).&lt;br /&gt;&lt;br /&gt;Then there is a Rails plugin written by &lt;a href="http://www.jkraemer.net/" title="Jens Kramer"&gt;Jens Kramer&lt;/a&gt; called &lt;a href="http://projects.jkraemer.net/acts_as_ferret/wiki" title="Acts As Ferret"&gt;Acts As Ferret&lt;/a&gt;, which allows Ferret searching to be added to your ActiveRecords (among other things probably).&lt;br /&gt;&lt;br /&gt;So, to add fuzzy searching all I had to add to my model was:&lt;br /&gt;&lt;br /&gt; &lt;span style="font-family:courier new;"&gt;acts_as_ferret :fields =&gt; [:name]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And to my controller logic:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;fuzzy_matches = customers.find_by_content(name)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This returns up to 10 Customer records in best-match-first order (there are other methods/options to retrieve the actual match scores, and alter sorting and number of matches, etc).&lt;br /&gt;&lt;br /&gt;Lovely.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-2604607954562240676?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/2604607954562240676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=2604607954562240676' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/2604607954562240676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/2604607954562240676'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/02/have-you-seen-mr-ferret.html' title='Have you seen Mr Ferret?'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-9151819196102421138</id><published>2008-02-20T08:06:00.003Z</published><updated>2008-02-20T08:09:00.965Z</updated><title type='text'>Jo Brand is John Sergeant?</title><content type='html'>Much rumoured across the web, that Jo Brand could be the Lily Savage of John Sergeant. Some photoshopery &lt;span style="font-style: italic;"&gt;should&lt;/span&gt; sort this out...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.redfursnake.com/uploaded_images/Brand-Sergeant-796721.jpg"&gt;&lt;img style="cursor: pointer;" src="http://www.redfursnake.com/uploaded_images/Brand-Sergeant-796716.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-9151819196102421138?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/9151819196102421138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=9151819196102421138' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/9151819196102421138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/9151819196102421138'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/02/jo-brand-is-john-sergeant.html' title='Jo Brand is John Sergeant?'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-5775017957994088893</id><published>2008-02-14T18:39:00.006Z</published><updated>2008-05-30T09:46:21.806+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gadgets'/><title type='text'>Sanyo Xacti HD700</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.redfursnake.com/uploaded_images/hd700-795036.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://www.redfursnake.com/uploaded_images/hd700-795028.jpg" alt="" border="0" /&gt;&lt;/a&gt;I've ordered one of these camcorders. It's extremely small and take-anywhere-able. It's HD (720p), recording to SD cards. It doesn't compete with the best consumer camcorders on image quality, but should be fine for video blogging, Aworka training /sales/testimonial videos, holidays, YBF attempts, etc. And it doubles as a 7MP still camera.&lt;br /&gt;&lt;br /&gt;If you're interested, there is a review and more importantly, some sample videos at &lt;a href="http://forums.steves-digicams.com/forums/view_topic.php?id=580340&amp;amp;forum_id=27"&gt;Steve's Digicams&lt;/a&gt; site. Looks quite impressive to me.&lt;br /&gt;&lt;br /&gt;It's gun grip orientation is the closest I'll get to owning a piece, although its plastic construction probably makes it less than ideal for pistol whipping.&lt;br /&gt;&lt;br /&gt;My old JVC mini-DV camcorder will be going on ebay to help pay for the new one. A classic in its day, again for its smallness, but shit.&lt;br /&gt;&lt;br /&gt;UPDATE: I now have said camcorder and took it on a dog walk today. Things to report:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;It's &lt;span style="font-style: italic;"&gt;very&lt;/span&gt; small and light.&lt;/li&gt;&lt;li&gt;It hates shooting into the sun.&lt;/li&gt;&lt;li&gt;The lens could do with being a bit wider-angle (a common problem with compact cameras in general).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The image quality &lt;span style="font-style: italic;"&gt;can &lt;/span&gt;be very HD, but only if there isn't too much going on and the camera is held steady. Too many pixels changing per frame hits the image quality quite badly due to the extreme compression employed (Over 2 hours 720p video can fit on an 8GB SDHC card).&lt;/li&gt;&lt;li&gt;I'm quite impressed with the sound, as long as no wind is blowing into the mics. It picks up the sound of the zoom mechanism, although I don't really care about that: I prefer not to zoom whilst filming (looks amateurish).&lt;/li&gt;&lt;li&gt;The docking station has a standard HDMI output so it can plug straight into a TV with HD image quality.&lt;/li&gt;&lt;li&gt;I wish it had a sliding lens cover (like my old one). It has no lens cover at all (unless there's one in the box).&lt;/li&gt;&lt;/ol&gt;Expect uploaded videos soon (hmmm, QuickTime or FLV...?).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-5775017957994088893?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/5775017957994088893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=5775017957994088893' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/5775017957994088893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/5775017957994088893'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/02/sanyo-xacti-hd700.html' title='Sanyo Xacti HD700'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-881072064146795574</id><published>2008-02-14T08:22:00.002Z</published><updated>2008-02-14T08:35:39.246Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsuck'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>Who Yahoos?</title><content type='html'>Everyone has heard of Yahoo, but who uses it? I can't remember the last time I went anywhere near it, at least not knowingly. So who uses it? What's it for? Should I be using it?&lt;br /&gt;&lt;br /&gt;The fact that Microsoft has been trying to buy it for $billions might explain my lack of awareness, like there's a gene that dictates whether you're in the Microsoft/Yahoo camp or the Apple/Google one.&lt;br /&gt;&lt;br /&gt;A friend of mine is a fellow software developer, but is &lt;span style="font-style: italic;"&gt;so&lt;/span&gt; Microsoft biased I can barely converse with him (about software): he keeps going on about .NET, learning C# and increasing his ASP knowledge. I bet his email address is &lt;span style="font-weight: bold;"&gt;microsoft.fanboy@yahoo.com&lt;/span&gt;. He also goes skiing, not snowboarding.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-881072064146795574?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/881072064146795574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=881072064146795574' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/881072064146795574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/881072064146795574'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/02/who-yahoos.html' title='Who Yahoos?'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-7686818782366241435</id><published>2008-02-12T13:57:00.003Z</published><updated>2008-02-14T17:53:00.258Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>Aperture 2</title><content type='html'>Apple has released Aperture 2. That took a while! Apparently, it contains more than 100 new features, but no details as yet. I'm guessing that it may introduce the 'events' idea from iPhoto '08, but I'm not sure it really needs it. I already love the way I can put my master images on my NAS (90GB), whilst storing previews locally for speed and offline working (only 8GB). I love the image adjustment tools (although perhaps the red-eye tool could be better). I'm finding it completely stable now (it was a bit flaky at first, and appallingly slow on my old G5). Further performance improvements would obviously be welcome, improved RAW processing (not that I think it's bad, but some have claimed that it could be better). Perhaps better integration with other applications, like those in iLife/iWork (although even that has improved recently). It will be interesting...&lt;br /&gt;&lt;br /&gt;UPDATE: Aperture 2 is available from the US Apple Store already, so there are some details of the new features &lt;a href="http://store.apple.com/1-800-MY-APPLE/WebObjects/AppleStore.woa/wa/RSLID?mco=8CB8C917&amp;amp;fnode=home&amp;amp;nplm=MB284Z/A"&gt;there&lt;/a&gt;. It's cheaper too: £129 (was £219) or £65 to upgrade from Aperture 1.5. Sounds like its got some interesting features, like a retouch tool for removing unwanted elements from images (I'd normally do that in Photoshop), and a tool for recovering highlights. As predicted, it also has improved RAW processing and better overall performance (on supported Macs). Nice!&lt;br /&gt;&lt;br /&gt;ANOTHER UPDATE: I just thought of a couple of features I would like to see in the new version:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The ability to locate/delete unreferenced master images (images deleted from Aperture library but not physically deleted from the disk). Currently, this is only possible using a horrible cufuffle (how to do this and lots of other good Aperture hints and tips at &lt;a href="http://www.bagelturf.com/aparticles/index.php"&gt;Bagelturf&lt;/a&gt;).&lt;/li&gt;&lt;li&gt;The ability to save disk space by choosing to 'downgrade' a RAW image to a JPEG. This could be done for less important and/or average images, or perhaps after adjustments that require the bandwidth of RAW have been applied...?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Compatibility with Time Machine (currently, Aperture library must be excluded, or Time Machine disabled while Aperture is in use).&lt;/li&gt;&lt;/ol&gt;ANOTHER OTHER UPDATE: Aperture 2 is now installed on my machine. Everything has moved about a bit and it does seem quicker, and it has got the event style view like iPhoto, but that's all to report so far.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-7686818782366241435?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/7686818782366241435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=7686818782366241435' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/7686818782366241435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/7686818782366241435'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/02/aperture-2.html' title='Aperture 2'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-5298756511221866422</id><published>2008-02-05T10:47:00.004Z</published><updated>2008-02-18T12:12:48.832Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Burnout'/><category scheme='http://www.blogger.com/atom/ns#' term='PS3'/><title type='text'>Burnout Paradise</title><content type='html'>Playing &lt;a href="http://www.burnout.ea.com/home.asp?lang=us"&gt;Burnout&lt;/a&gt; online is like playing &lt;a href="http://www.xpilot.org/"&gt;XPilot&lt;/a&gt; in cars! Despite only having the demo, I have contracted Burnout Fatigue. I must rest it for a while.&lt;br /&gt;&lt;br /&gt;It's a shame that Xbox players can't play PS3 players though... Why ever not?&lt;br /&gt;&lt;br /&gt;UPDATE: I'm finally going to get this game: the demo area of the map is becoming just too familiar! I have a ten way snipe on ebay as we speak...&lt;br /&gt;&lt;br /&gt;ANOTHER UPDATE: I now have Burnout Paradise, Uncharted: Drake's Fortune and&lt;br /&gt;Ratchet &amp;amp; Clank Future: Tools of Destruction on their way!&lt;br /&gt;&lt;br /&gt;ANOTHER OTHER UPDATE: I now have all three games. Yes, finally the full version of Burnout... I'm looking forward to playing that this afternoon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-5298756511221866422?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/5298756511221866422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=5298756511221866422' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/5298756511221866422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/5298756511221866422'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/02/burnout.html' title='Burnout Paradise'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-4987151482751000808</id><published>2008-02-01T07:54:00.000Z</published><updated>2008-02-03T11:19:46.868Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ex-director-y'/><title type='text'>Ex-director-y, Part 6</title><content type='html'>Are you being a good director? Try this questionnaire:&lt;br /&gt;&lt;br /&gt;Over the last six months:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;What new initiatives have you/the board considered?&lt;/li&gt;&lt;li&gt;Which have been implemented?&lt;/li&gt;&lt;li&gt;How did actuals compare with predictions?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How did the initiatives contribute to the company's mission?&lt;/li&gt;&lt;li&gt;What proportion of the work did you delegate?&lt;/li&gt;&lt;li&gt;What proportion of your overall time was spent on non-directorial day-to-day tasks?&lt;/li&gt;&lt;li&gt;Where is the company against its planned position six months ago?&lt;/li&gt;&lt;/ol&gt;Debrief later...&lt;br /&gt;&lt;br /&gt;UPDATE: How did you get on? What do your answers reveal?&lt;br /&gt;&lt;ol&gt;&lt;li&gt;A company usually needs to be continually changing to keep itself up to date, competitive, etc, so there should always be new things that need to be done and changes that need to be made. If the company is growing, there will be even more to do on top.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You will have prioritized the changes and maybe only tackled the most important. Spread yourself (or the company) too thin and you'll start everything and finish nothing. That usually means you might as well not have bothered.&lt;/li&gt;&lt;li&gt;Before starting any of your new initiatives (or anything at all) you will have decided what you expect to be achieved, how long it will take, what it will cost, etc. How else can you check that things are working out?&lt;/li&gt;&lt;li&gt;Of course, you wouldn't be doing anything that did not contribute to the company's vision, mission or values. What would be the point of that?&lt;/li&gt;&lt;li&gt;You employ people so that work can be delegated, but...&lt;/li&gt;&lt;li&gt;...depending on the size of the company, you may not delegate everything. Again, it's about priorities and remembering that you are a director, with a job to do that can't be delegated.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You will be reviewing overall company progress against it's plan. If you don't, what was the point of planning anything in the first place? You do have a plan don't you?&lt;/li&gt;&lt;/ol&gt;Businesses have varying degrees of ambition, and the importance of the above will vary...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-4987151482751000808?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/4987151482751000808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=4987151482751000808' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/4987151482751000808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/4987151482751000808'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/02/ex-director-y-part-6.html' title='Ex-director-y, Part 6'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-4773246218945642347</id><published>2008-01-28T10:29:00.000Z</published><updated>2008-02-13T09:23:46.422Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Burnout'/><category scheme='http://www.blogger.com/atom/ns#' term='PS3'/><title type='text'>PS3 Addiction</title><content type='html'>I've never been what you would call a keen gamer. I always liked the idea of playing the games more than actually playing them. Arggh, the frustration!  I was a bit worried that I might be wasting money buying a PS3, knowing what I'm like...&lt;br /&gt;&lt;br /&gt;I couldn't have been more wrong! I got &lt;a href="http://www.fifa08.ea.com/uk/"&gt;FIFA '08&lt;/a&gt;  and &lt;a href="http://www.callofduty.com/"&gt;Call of Duty 4&lt;/a&gt; with the console, &lt;a href="http://www.codemasters.co.uk/dirt/index2.php"&gt;Colin McCrae DiRT&lt;/a&gt; for my birthday, and have downloaded several playable demos. Verdicts below:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.fifa08.ea.com/uk/"&gt;FIFA '08&lt;/a&gt;: Didn't really want this, but it came with the console. Haven't played it yet!&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.callofduty.com/"&gt;Call of Duty 4&lt;/a&gt;, Modern Warfare: Intense first person shooter.  Took about a week to complete the game in single player mode. Wow, fantastic!&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codemasters.co.uk/dirt/index2.php"&gt;Colin McCrae DiRT&lt;/a&gt;: I'm finding the rally stages more difficult than the &lt;a href="http://uk.gamespot.com/ps/driving/colinmcraerally/"&gt;original PS1 game&lt;/a&gt;, but still find myself playing it for hours at a time. I think it would benefit from a steering wheel controller. Excellent though!&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.burnout.ea.com/"&gt;Burnout Paradise (demo)&lt;/a&gt;: What can I say? Like a perfected version of &lt;a href="http://uk.gamespot.com/ps/driving/driver/"&gt;Driver&lt;/a&gt; on PS1, with insane boosting and incredibly realistic damage and crashing. I've already played it for hours, including online with random other people: what a laugh! Must buy this when it comes out (in fact I think it's just out now).&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.us.playstation.com/ratchetandclank/tools_of_destruction.html"&gt;Ratchet &amp;amp; Clank Future: Tools of Destruction (demo)&lt;/a&gt;: Looks like a cartoony Sonic-type platformy game. I thought I would hate it, but I loved it! Must buy!&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.us.playstation.com/Uncharted/"&gt;Uncharted: Drake's Fortune (demo)&lt;/a&gt;: Another first person shooter. At first, I thought maybe it would be too similar to CoD 4 to bother with. Wrong! I'm loving it! Might have to buy this one as well (I'll finish the demo first... I'm finding it quite hard).&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ea.com/skate/"&gt;Skate (demo)&lt;/a&gt;: Haven't got past the training part yet, but not unenjoyable so far!&lt;/li&gt;&lt;/ol&gt;Normally I wouldn't consider fighting games (you know, where you just frantically press all the buttons hoping that you produce a 'special move'), but I may have to rethink, given my other experiences so far...&lt;br /&gt;&lt;br /&gt;I'm sure I'd like &lt;a href="http://assassinscreed.uk.ubi.com/experience/"&gt;Assassin's Creed&lt;/a&gt;... and then there's &lt;a href="http://www.rockstargames.com/IV/"&gt;Grand Theft Auto IV&lt;/a&gt; coming soon, and even &lt;a href="http://www.granturismoworld.com/default.aspx?langid=2&amp;amp;infid=0"&gt;Grand Turismo 5&lt;/a&gt; might be good. I love them all!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-4773246218945642347?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/4773246218945642347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=4773246218945642347' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/4773246218945642347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/4773246218945642347'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/01/ps3-addiction.html' title='PS3 Addiction'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-8000601104965781547</id><published>2008-01-25T19:42:00.001Z</published><updated>2008-02-12T15:16:38.310Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Life'/><title type='text'>Money from old stamps</title><content type='html'>Here's one for you: at various times I have been asked to collect old postage stamps for charity. How does anyone make any money from them? If it's paper recycling, I could give them the whole envelope (and the letter inside usually).&lt;br /&gt;&lt;br /&gt;And another thing, what about milk bottle tops. How the f*** do you make any money from them? Might as well give all my old used foil, but no, only the bottle tops.&lt;br /&gt;&lt;br /&gt;What gives?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-8000601104965781547?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/8000601104965781547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=8000601104965781547' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/8000601104965781547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/8000601104965781547'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/01/money-from-old-stamps.html' title='Money from old stamps'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-5016223162276886143</id><published>2008-01-23T10:29:00.004Z</published><updated>2008-09-10T15:54:54.277+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='Gadgets'/><title type='text'>Extraordin-eary Earphones</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_exkOqgGkZN8/SMffsVoFeKI/AAAAAAAAACM/lvnI8jJvRLQ/s1600-h/site_img_pa_se530_m.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_exkOqgGkZN8/SMffsVoFeKI/AAAAAAAAACM/lvnI8jJvRLQ/s200/site_img_pa_se530_m.jpg" alt="" id="BLOGGER_PHOTO_ID_5244406243908745378" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.redfursnake.com/uploaded_images/shure_se530_crave-760292.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://www.redfursnake.com/uploaded_images/shure_se530_crave-760288.jpg" alt="" border="0" /&gt;&lt;/a&gt;I needed to get some new in-ear phones for my iPod, because the stock ones were uncomfortable (didn't seem to fit properly) and came with a cable that always seemed about 2cm too short.&lt;br /&gt;&lt;br /&gt;So, being an audiophile sort of person, with an obsession with all gadgety things I decided to push the boat out and get a pair of &lt;a href="http://www.shure.co.uk/PersonalAudio/Products/Earphones/SEModels/uk_pa_se530_content"&gt;Shure SE530&lt;/a&gt;s. Naturally, they sound incredible as they should with an RRP in excess of £300 (no, I didn't pay that). They act in a sound isolating way by incorporating that slow reacting squishy foam that seals into your ear, so would be great for working if you can work to music, but need to block out other external distractions (for me that means hoovers, tvs, nextdoor's mower/blower, tractors, etc).&lt;br /&gt;&lt;br /&gt;UPDATE: I'm not sure if it's a good thing, but these earphones really expose the poor quality of the iPod and MacBook Pro headphone DA conversion/amps/outputs: lots of background hiss. I thought it might have been caused by MP3 compression, but no: through my firewire audio interface (&lt;a href="http://www.mhlabs.com/metric_halo/products/mio/uln2/"&gt;Metric Halo Mobile IO ULN-2&lt;/a&gt;) everything is superbly noise free. I love these earphones (the hoover is on as I write, but I only know that because it keeps banging into my chair, not because I can hear it!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-5016223162276886143?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/5016223162276886143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=5016223162276886143' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/5016223162276886143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/5016223162276886143'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/01/extraordin-eary-earphones.html' title='Extraordin-eary Earphones'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_exkOqgGkZN8/SMffsVoFeKI/AAAAAAAAACM/lvnI8jJvRLQ/s72-c/site_img_pa_se530_m.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-6948116263157358869</id><published>2008-01-22T17:39:00.000Z</published><updated>2008-01-22T21:11:11.448Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='PS3'/><title type='text'>Colin McCrae DiRT: I made it into the online rankings!</title><content type='html'>Unfortunately, not such an achievement because &lt;span style="font-style: italic;"&gt;everyone&lt;/span&gt; is ranked. I'm ranked &lt;span style="font-weight: bold;"&gt;60,211th&lt;/span&gt; in a hill climb event. Got a way to go then.&lt;br /&gt;&lt;br /&gt;Great that you can see how you compare with all the other players though, and gives you targets to aim for. All I need now is a &lt;a href="http://www.logitech.com/index.cfm/gaming/playstation_3/devices/131&amp;amp;cl=us,en"&gt;Logitech G25&lt;/a&gt;...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-6948116263157358869?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/6948116263157358869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=6948116263157358869' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/6948116263157358869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/6948116263157358869'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/01/colin-mccrae-dirt-i-made-it-into-online.html' title='Colin McCrae DiRT: I made it into the online rankings!'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-5110488097648434644</id><published>2008-01-21T07:22:00.000Z</published><updated>2008-01-22T09:44:12.039Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Dump Your Docs</title><content type='html'>Following &lt;a href="http://blog.spfweb.co.uk/2008/01/os-x-packages-and-version-control.html"&gt;Steve's post&lt;/a&gt; about the problems of using iWork documents with source control systems, I suggested that maybe simple word processing and spreadsheet documents are rarely the best vehicle for conveying information these days. I thought I'd look at a few examples, specific to software development (since that's all I know):&lt;br /&gt;&lt;br /&gt;Requirements Specs: Better done in a requirements capture tool (e.g. &lt;a href="http://www.telelogic.com/products/doors/index.cfm"&gt;DOORS&lt;/a&gt;), because you want to be able to link between requirements and structure the information hierarchically, and share the information and collaborate over the internet.&lt;br /&gt;&lt;br /&gt;Software Design Spec: Most of the documentation for the code should be in the code to stand more chance of it staying up to date, marked up in such a way that tools can extract the documentation into a nice hyper linked form (e.g. &lt;a href="http://rdoc.sourceforge.net/"&gt;RDoc&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Test Specs: Unit (model), functional (controller) and integration tests should not be documented at all: they should be code that runs automatically.&lt;br /&gt;&lt;br /&gt;Defect Reporting: There are dedicated tools for handling defects from analysis to retest to resolution, e.g. &lt;a href="http://www.screaming-penguin.com/node/7289"&gt;Mercury Quality Center&lt;/a&gt; (I've used this, but I'm not going to recommend it, because it's Window's only for some ludicrous reason and hideously expensive). UPDATE: Wow, look at this list of &lt;a href="http://en.wikipedia.org/wiki/Comparison_of_issue_tracking_systems"&gt;issue/bug tracking systems&lt;/a&gt;. Rails is bug tracked using &lt;a href="http://dev.rubyonrails.org/"&gt;Trac&lt;/a&gt;&lt;br /&gt;(which is written in Python).&lt;br /&gt;&lt;br /&gt;QA Records: If you have to have these, they should be autogenerated from within the Quality System, e.g. via HTML forms.&lt;br /&gt;&lt;br /&gt;User Guide: In order that the User Guide can also be available as online help from within an application, it would make sense to produce this in an electronic form, e.g. HTML, or use a specialised tool like &lt;a href="http://www.adobe.com/products/robohelp/"&gt;RoboHelp&lt;/a&gt; (which I know nothing about, but I assume it would do sensible things regarding help and user guides).&lt;br /&gt;&lt;br /&gt;Preliminary/High Level design: Typcially involves lots of UML diagrams, so use a CASE tool, or an IDE that combines design and code and all the linking and roundtrip editing you want, as well as the ability to generate electronic/paper documentation.&lt;br /&gt;&lt;br /&gt;Letters: Use email? But if a letter is really required, I guess Word processing is the only way.&lt;br /&gt;&lt;br /&gt;Invoices: These should be generated from an accounting system, e.g. &lt;a href="http://myob.com/"&gt;MYOB&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Brochures/Flyers: Use desktop publishing package like &lt;a href="http://www.adobe.com/products/indesign/"&gt;InDesign&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Press Releases: Email, backed up with RSS feeds and Blog entries. RSS and blogging are such simple ways of keeping your company's public image up to date. (My local Mac service centre is  &lt;a href="http://www.group8.com/"&gt;Group8&lt;/a&gt; in Edenbridge. Because their website is so 'stale', I'm already having doubts as to whether the company is still there... soon see).&lt;br /&gt;&lt;br /&gt;What else is there?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-5110488097648434644?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/5110488097648434644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=5110488097648434644' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/5110488097648434644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/5110488097648434644'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/01/dump-your-docs.html' title='Dump Your Docs'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-4952838135506094301</id><published>2008-01-20T22:22:00.000Z</published><updated>2008-02-12T15:14:52.249Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gadgets'/><title type='text'>Drobo</title><content type='html'>Doesn't the &lt;a href="http://www.drobo.com/"&gt;Drobo&lt;/a&gt; look interesting? Expensive maybe, and ethernet is optional, and there are reports of instability (which is utterly intolerable for a device like this), but the concept is excellent methinks. I have a &lt;a href="http://www.synology.com/enu/products/DS207/index.php"&gt;Synology DS207&lt;/a&gt; which has worked flawlessly, but somehow doesn't seem as &lt;span style="font-style: italic;"&gt;cool&lt;/span&gt; as the Drobo. Just need to wait for V2?&lt;br /&gt;&lt;br /&gt;I can see myself (and you!) spending quite a lot on a really good and reliable fast and high capacity RAIDy type thing in the future, to hold all my music, photos, films, etc. Yes, it's a 'media server'. Physical CDs/DVDs/Photo Albums will get ditched. Get rid of the loo from under your stairs: you're going to need it for your &lt;a href="http://www.apple.com/xserve/raid/"&gt;Xserve RAID&lt;/a&gt;: Every home should have at least one... or wait until you can store the lot on the interweb (the logical next step).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-4952838135506094301?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/4952838135506094301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=4952838135506094301' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/4952838135506094301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/4952838135506094301'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/01/drobo.html' title='Drobo'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-2043858479385611469</id><published>2008-01-19T09:45:00.000Z</published><updated>2008-02-12T15:14:00.874Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>Windows ClearType fonts in OS X</title><content type='html'>If you want your Mac edited Word documents to look the same on Windows, your best bet would be to use Windows fonts on the Mac. This is finally possible as Windows ClearType fonts now come with Office 2008 on the Mac. Or if you're happy* with your older version of Office, you can 'borrow' the fonts from the 2008 trial version.&lt;br /&gt;&lt;br /&gt;Needless to say, I'm not going to bother.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;* &lt;span style="font-style: italic;"&gt;happy&lt;/span&gt; is probably too strong a word. How happy can you be with a bloated, slow Microsoft application? I wonder if 2008 is any leaner/faster? I wonder if it still runs under Rosetta on Intel Macs? We know it doesn't include VB macro support anymore, so that's good. Less would definitely be More as far as Word is concerned. I'm still planning to try Apple's iWork, but haven't had cause to write any documents yet...&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-2043858479385611469?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/2043858479385611469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=2043858479385611469' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/2043858479385611469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/2043858479385611469'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/01/windows-cleartype-fonts-in-os-x.html' title='Windows ClearType fonts in OS X'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-7672400317946973351</id><published>2008-01-17T09:37:00.000Z</published><updated>2008-02-12T15:16:55.828Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Life'/><title type='text'>Religion and War</title><content type='html'>I was listening to &lt;a href="http://en.wikipedia.org/wiki/Jack_Johnson_(musician)"&gt;Jack Johnson&lt;/a&gt; explaining that he got the inspiration for a song from the apparent Oxymoron presented by a car with two bumper stickers: 'Jesus Loves You' on one side and 'Support our Troops' on the other. I suppose supporting the troops isn't the same as supporting the war, but in that case, shouldn't it say 'Support our &lt;em&gt;and their&lt;/em&gt; troops'?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-7672400317946973351?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/7672400317946973351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=7672400317946973351' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/7672400317946973351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/7672400317946973351'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/01/religion-and-war.html' title='Religion and War'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-7464867499596423296</id><published>2008-01-16T19:46:00.001Z</published><updated>2008-01-16T19:46:54.091Z</updated><title type='text'>You!</title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-7464867499596423296?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/7464867499596423296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=7464867499596423296' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/7464867499596423296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/7464867499596423296'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/01/you.html' title='You!'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-6003291902155654931</id><published>2008-01-15T14:46:00.000Z</published><updated>2008-02-12T15:13:43.687Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>Apple are at it again...</title><content type='html'>Steve Jobs is to give another keynote speech at Macworld 2008 this afternoon (or evening here).&lt;br /&gt;&lt;br /&gt;Obviously exciting and rumours abound. There seems to be a lot of certainty that an ultra portable MacBook, possibly called the MacBook Air will be launched, amoung other things.&lt;br /&gt;&lt;br /&gt;I'm hoping for new Cinema Displays that have an HDMI input so that they also work with my PS3. They are also bound to have built-in iSight cameras, or maybe that new technology that uses the screen itself as a camera so that finally you appear to be looking at the person you are speaking to, rather than down into your lap all the time.&lt;br /&gt;&lt;br /&gt;The Apple Stores are currently closed, so something is afoot...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-6003291902155654931?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/6003291902155654931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=6003291902155654931' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/6003291902155654931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/6003291902155654931'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/01/apple-are-at-it-again.html' title='Apple are at it again...'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-3855786545471617510</id><published>2008-01-12T20:51:00.000Z</published><updated>2008-02-12T15:17:19.525Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Ruby for programmers, C++ for computers</title><content type='html'>I have had years of experience with C++, and a few months with Ruby. Already, I can see a few reasons for preferring Ruby:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;C++ code is ugly and long-winded compared to Ruby, especially when you get into generic programming with templates.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;3rd party C++ libraries always seem difficult to use/integrate or to not quite provide what's required. Ruby (and Rails) libraries seem to be easy to understand/integrate. This is partly because of the almost universal adoption of a common set of coding conventions and naming, but also because of the very flexible ways that Ruby allows you to incorporate and extend existing code. It seems that you can always get things to work how you want.&lt;/li&gt;&lt;li&gt;There seems to be a general attitude in Ruby (and Rails) development that all code should be simple, clean, elegant and sexy, like the language itself. C++ seems to be more  about achieving maximum efficiency at the expense of clarity. Why is it so hard to edit other people's C++? Especially very clever, library writing people.&lt;/li&gt;&lt;li&gt;C++ has the advantage that it produces (much) faster programs. I admit, it's an essential advantage for parts of certain applications, but why put up with it for anything else?&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;I'm convinced times are finally changing. The emphasis will shift to programming languages that are good for programmers, instead of good for computers. Designing software is difficult enough...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-3855786545471617510?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/3855786545471617510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=3855786545471617510' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/3855786545471617510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/3855786545471617510'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/01/c-vs-ruby.html' title='Ruby for programmers, C++ for computers'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-3967829980661729997</id><published>2008-01-11T08:58:00.000Z</published><updated>2008-01-11T11:09:25.457Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ex-director-y'/><title type='text'>Ex-director-y, Part 5</title><content type='html'>We now have a highly motivated team, who know exactly what the company is trying to achieve and want to be part of it with a passion. This is just as well, because the director should be getting tough from here on in. Staff are going to be asked to do things they don't want to do, in timescales they'll struggle to achieve sometimes. They'll suffer when they get things wrong, not just because they get bollocked by management, but because they'll be hard on themselves. They'll come to realize that the mission isn't just words and relish the challenges and successes ahead.&lt;br /&gt;&lt;br /&gt;This leads me to realize that I should have been much tougher when I was technical director to shape the way software was done. When we realized we wanted automated testing, I should have made us do it. When we created a manual quality or production process, I should have got it automated. When we found un-DRY (don't repeat yourself) code (wet code?), I should have had it refactored. When the design got unwieldy, I should have had it redesigned. It would have taken time, but we should have stayed late, instead of making excuses. Lesson learned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-3967829980661729997?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/3967829980661729997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=3967829980661729997' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/3967829980661729997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/3967829980661729997'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2008/01/ex-director-y-part-5.html' title='Ex-director-y, Part 5'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-7379871291714426644</id><published>2008-01-11T08:36:00.000Z</published><updated>2008-01-11T09:49:23.281Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Software Development, Part 2</title><content type='html'>This list of &lt;a href="http://pragmaticprogrammer.com/the-pragmatic-programmer/extracts/tips"&gt;software tips&lt;/a&gt; is so right, and I got it so wrong. Not because I didn't know, but because I was weak... see Ex-director-y, Part 5!&lt;br /&gt;&lt;br /&gt;Whoops! I appear to have overwritten my previous Software Development, Part 2 post. It said something like:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Don't write software if you can avoid it&lt;/li&gt;&lt;li&gt;If you have to write software, write as little as possible&lt;/li&gt;&lt;li&gt;If you have to write lots of software make it highly modular, loosely coupled, 'shy'.&lt;/li&gt;&lt;li&gt;Can't remember the rest: probably covered by the software tips link anyway.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;I've got some new ones:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;When delivering source code to customers, don't withhold in-house libraries (customers wanting source code won't want to be beholden and it might scare them off)&lt;/li&gt;&lt;li&gt;Make in-house libraries open source (it will enhance your credibility, which might help entice customers)&lt;/li&gt;&lt;li&gt;Use other (modern) languages and libraries for some of the time to inform your general software approach.&lt;/li&gt;&lt;li&gt;Get involved in the wider software development community. Software is getting easier to develop: don't miss out!&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-7379871291714426644?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/7379871291714426644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=7379871291714426644' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/7379871291714426644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/7379871291714426644'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2007/11/software-development-part-2.html' title='Software Development, Part 2'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-976406943923701572</id><published>2007-12-15T09:20:00.000Z</published><updated>2008-02-12T15:19:51.593Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Ruby 1.9</title><content type='html'>Ruby 1.9 is on the way. I've just been browsing the latest edition of the Programming Ruby (the pick axe book) and can see that some of the improvements are going to be very helpful...&lt;br /&gt;&lt;br /&gt;The Hash class (or std::map in C++ STL) is useful for containing items accessible by an arbitrary key rather than an index. The implementation of associative array classes usually means that the order items are added is not preserved, so iterating over the elements can give unpredictable results. When the order is important, an indexed array often tends to be used, even though access to the elements may be less efficient. It's sometimes possible to control the order of the elements, but then the lookup performance on an arbitrary key is lost. The only way to both preserve the order, and have fast key lookups, would appear to be to have two containers: one for the elements indexed by key, and one to specify the iterative order. All a bit messy.&lt;br /&gt;&lt;br /&gt;Now, in Ruby 1.9, hashes remember the order elements were added for iteration, as well as providing key lookup. I'm not sure how it does this, or what impact it has on performance/memory, but it certainly makes coding easier, and as I have said previously, that is the main thing for me!&lt;br /&gt;&lt;br /&gt;I wonder what else 1.9 has in store...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-976406943923701572?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/976406943923701572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=976406943923701572' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/976406943923701572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/976406943923701572'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2007/12/ruby-19.html' title='Ruby 1.9'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-3228344172135335323</id><published>2007-12-08T08:40:00.001Z</published><updated>2008-01-04T08:42:27.439Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='PS3'/><title type='text'>Pain in the Console</title><content type='html'>I was thinking about buying a new games console, but I'm not sure that now is the best time. What does everyone think? I've done some research to compare the PlayStation 3 and Xbox 360 reaching the following inconclusive conclusions:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The PS3 is more expensive than the Xbox: PS3 bundle with a game (that I wouldn't want), free HDMI cable from Amazon £299. Xbox with a game (one that I might want) can be had for £249. I might need wireless connectivity which is optional on the Xbox, bringing the prices closer.&lt;/li&gt;&lt;li&gt;The PS3 has a better spec overall: Blu-Ray, larger hard disk (40GB vs 20GB), Cell processor, WiFi included (for internet access), wireless controller with motion sensors.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The Xbox has more powerful and more accessible graphics hardware. It appears that games are easier to write for the Xbox than the PS3's relatively complicated architecture. This has resulted in games generally being better or the same on the Xbox compared with the PS3.&lt;/li&gt;&lt;li&gt;The PS3 is about a year younger than the Xbox and there is the possibility that the PS3's full potential has yet to be seen. The cell processor could compensate for weaker graphics and the extra data capacity of the PS3's BluRay drive could mean 'bigger' games than Xbox.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The PS3 runs quieter and cooler than the Xbox (more important when used as Blu-Ray film player).&lt;/li&gt;&lt;li&gt;Xbox is made by Microsoft. Many are buying PS3 just because of that!&lt;/li&gt;&lt;li&gt;Xbox and PS3 sales are roughly the same for 2007. However, most of the PlayStations were sold at launch, whereas Xbox has been gaining ground through the year, suggesting that Xbox sales may surge ahead in 2008.&lt;/li&gt;&lt;li&gt;The PS3 has struggled because it was late to market and very expensive initially (£500).&lt;/li&gt;&lt;li&gt;The PS3 has a free online gaming, the Xbox is by paid subscription.&lt;/li&gt;&lt;li&gt;There have been reports of reliability problems with the Xbox. The PS3 appears to have better build quality. All will be obsolete within a couple of years, so maybe it doesn't matter.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;So which is the one to buy? Will the PS3 realise its potential in the long run, or is it better to play safe with the Xbox and save a few pennies?&lt;br /&gt;&lt;br /&gt;Predicted Verdict:&lt;br /&gt;&lt;br /&gt;Gruntfuggly: GP32 or PS1 (now available from Amazon for £11! I Paid £400 for mine!)&lt;br /&gt;JoJo: PS3&lt;br /&gt;Steve: Xbox 360, PS3 and Wii&lt;br /&gt;Grumpy: Bloody Xmas!&lt;br /&gt;&lt;br /&gt;Aside:&lt;br /&gt;&lt;br /&gt;For handhelds, according to 11 year olds, DS is for girls, PSP for boys.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-3228344172135335323?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/3228344172135335323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=3228344172135335323' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/3228344172135335323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/3228344172135335323'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2007/12/pain-in-console.html' title='Pain in the Console'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-1745491163659307498</id><published>2007-12-06T08:10:00.000Z</published><updated>2008-01-04T08:43:29.434Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='Christmas'/><title type='text'>George Michael is so Last Christmas</title><content type='html'>Please, someone, produce some new Christmas songs to play in our shopping centres (that's like a Shopping Mall Jo).&lt;br /&gt;&lt;br /&gt;When Roy Wood first sang 'I wish it could be Christmas every day', I bet he didn't realise that it would be for him: in royalties. He still performs that one track each year on GMTV, but I swear the tempo gets slightly slower and more laboured as the years pass.&lt;br /&gt;&lt;br /&gt;'Merry Christmas Everybody', sings that other hairy man from Slade. It has to be some kind of sick joke. Scrooge was right (before the ghosts visited).&lt;br /&gt;&lt;br /&gt;BA HUMBUGS!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-1745491163659307498?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/1745491163659307498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=1745491163659307498' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/1745491163659307498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/1745491163659307498'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2007/12/george-michael-is-so-last-christmas.html' title='George Michael is &lt;em&gt;so&lt;/em&gt; Last Christmas'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-7950952211663209904</id><published>2007-11-28T08:04:00.000Z</published><updated>2008-01-04T08:45:20.335Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>No more Windows anymore</title><content type='html'>I think I have spent enough of my life doing the software that other people want me to do. That has meant using all sorts of undesirable technologies, for all sorts of uninteresting products over the years (of course, only my opinion: some people probably love Ada).&lt;br /&gt;&lt;br /&gt;My preferences at the moment are:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The most expressive OO languages, e.g. Ruby, with no restrictions caused by strong typing, or an inability to have code that writes code, etc. The programs necessarily run slower than less dynamic languages, but I don't care about that when I'm writing it. Most of the time, it's fast enough. Ruby addresses so many of the issues I had with C++, it's as though I designed it!&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Automated Testing (I haven't quite reached test driven development yet, but that's my problem). No amount of  strong-typing, scoping, static evaluation or other programming language restrictions exempts your software from extensive testing at all levels. So why make your life difficult during development by using a language with restrictions?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Mac OS X. This is the greatest operating system. The fact that it's Unix-like underneath is an enormous bonus.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Internet applications. The internet is having a resurgence of pace: Web 2.0 is so clearly just the beginning. I want to write software that touches as many people's lives as possible and internet technologies make this so cheap and easy.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;No more Windows anymore!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-7950952211663209904?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/7950952211663209904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=7950952211663209904' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/7950952211663209904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/7950952211663209904'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2007/11/no-more-windows-anymore.html' title='No more Windows anymore'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-7670157946515641602</id><published>2007-11-27T08:18:00.000Z</published><updated>2008-01-04T08:44:32.921Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ex-director-y'/><title type='text'>Ex-director-y, Part 4 another supplemental</title><content type='html'>A director from &lt;a href="http://www.innocentdrinks.co.uk/"&gt;Innocent Drinks&lt;/a&gt; was on BBC Breakfast this morning, talking about the workplace. A couple of directorial gems from him:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The juice lab (where all their recipes are developed) is at the centre of their main office (Juice Towers) and all meetings are held at tables around it. This helps to ensure that their central purpose and vision (to produce the best healthy and natural juice drinks) is always uppermost in team's minds influencing decisions in even the most mundane meetings.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Each employee's performance is judged by what they produce, not how many hours they work. Management ensures everyone knows what targets they are trying to achieve and they are measured against that. In return, staff have maximum flexibility about when and where they work, and the IT infrastructure is in place to support that.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Needless to say, the Innocent brand is highly successful in what must be a very difficult market.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-7670157946515641602?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/7670157946515641602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=7670157946515641602' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/7670157946515641602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/7670157946515641602'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2007/11/ex-director-y-part-4-another.html' title='Ex-director-y, Part 4 another supplemental'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-2833284056358703385</id><published>2007-11-21T08:21:00.000Z</published><updated>2008-02-12T15:17:53.654Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Life'/><title type='text'>Read this, and you must pay me £200</title><content type='html'>If I put that statement in my email signature, you wouldn't expect it to be legally binding. So why do so many companies think they can tell us what to do in the emails they send to us, e.g. instructing us not to read but to delete the message if we're not the intended recipient, and if we do accidentally read it, we must hit ourselves over the head until we have forgotten the contents. There's been many articles about the legality of email signatures, which I don't intend to reiterate here, except for the following points:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Company emails are just electronic company letters and are now subject to the same rules. For example, you are supposed to put your company registration number, where the company is registered and the registered office address on letters. This info should be in emails too.&lt;/li&gt;&lt;li&gt;If you are really sending something confidential or sensitive, the warning to the reader should go &lt;span style="font-style: italic;"&gt;before&lt;/span&gt; the message, not at the end: that's a bit late.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If you add legal sounding statements to &lt;span style="font-style: italic;"&gt;all&lt;/span&gt; messages, courts may rule that there was no conscious effort by the sender to add it in a specific case, and that its relevance is diluted (probably to nothing).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You could add a disclaimer to all emails declaring that &lt;span style="font-style: italic;"&gt;the email content does not necessarily represent the views of the company&lt;/span&gt;. Before you do, bear in mind that this may give the impression that you don't trust anything your employee's say. This becomes even more ridiculous when it is in a company director's email!&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Put any irrelevant stuff that no one reads that you are tempted to put in your email signatures in email header fields that are usually hidden from view. That way, the info is there should it be required for tracking or legal purposes, but does not have to annoy your recipients (intended or otherwise).&lt;/li&gt;&lt;li&gt;Better to use the email signature to give contact information, a link to your website and perhaps take the opportunity to reiterate your company message, or perhaps promote your latest 'buy one, get a free set of wine glasses' special offer.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-2833284056358703385?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/2833284056358703385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=2833284056358703385' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/2833284056358703385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/2833284056358703385'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2007/11/read-this-and-you-must-pay-me-200.html' title='Read this, and you must pay me £200'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-8953766001306952344</id><published>2007-11-15T20:57:00.000Z</published><updated>2008-01-04T08:47:18.994Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><title type='text'>Oh no, 'marshal data too short'</title><content type='html'>I had a new Rails problem today: every page I tried to load resulted in an error indicating 'marshal data too short'. Some searching on the internet revealed a solution (as always).&lt;br /&gt;&lt;br /&gt;The problem occurs when sessions are stored in the database, i.e. the following line is uncommented in environment.rb:&lt;br /&gt;&lt;br /&gt;config.action_controller.session_store = :active_record_store&lt;br /&gt;&lt;br /&gt;The data column in the session table can end up too small to hold a marshaled session object, giving the error. The fix is to increase the size of the column in the add_session migration as follows, and re-rake (or create a new migration if you prefer/need to):&lt;br /&gt;&lt;br /&gt;t.column :data, :text, :limit =&gt; 16777215&lt;br /&gt;&lt;br /&gt;This fixed it for me, but I don't understand why I started getting the error as I am not aware that I have started storing any extra data in the session object...? Hmmm, perhaps I am storing whole model objects in there instead of just their ids?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-8953766001306952344?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/8953766001306952344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=8953766001306952344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/8953766001306952344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/8953766001306952344'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2007/11/oh-no-marshal-data-too-short.html' title='Oh no, &apos;marshal data too short&apos;'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-3819577039081283457</id><published>2007-11-15T08:33:00.000Z</published><updated>2007-11-15T08:53:32.544Z</updated><title type='text'>Monit, barking at daemons</title><content type='html'>Sorry, another post about Sys Admin.&lt;br /&gt;&lt;br /&gt;I'm using &lt;a href="http://tildeslash.com/monit/"&gt;monit&lt;/a&gt; to manage my &lt;a href="http://mongrel.rubyforge.org/"&gt;mongrel&lt;/a&gt; cluster. This is a great utility for ensuring that the mongrels keep on running, don't lock up and don't use too much memory. I can think of other projects I've worked on where this type of monitoring would have improved system reliability no end!&lt;br /&gt;&lt;br /&gt;I did have one problem, which seems to have gone away... Even though the mongrel processes were running, monit could not see them. This was because the files used to store the pids of the running mongrels had become stale, so monit was looking for the wrong processes. These files are supposed to be deleted when monit is stopped. If you think you might be having a similar problem, try stopping with:&lt;br /&gt;&lt;br /&gt;sudo monit -g &lt;your-rails-app&gt; stop all&lt;br /&gt;&lt;br /&gt;Then check in &lt;your-rails-app&gt;/current/log directory for files of the form 'mongrel.9200.pid'. There may be one for each mongrel in your cluster. Delete these and restart monit with:&lt;br /&gt;&lt;br /&gt;sudo monit -g &lt;your-rails-app&gt; start all&lt;br /&gt;&lt;br /&gt;You can check on the start up progress of your cluster using:&lt;br /&gt;&lt;br /&gt;sudo monit summary&lt;br /&gt;&lt;br /&gt;Nice!&lt;/your-rails-app&gt;&lt;/your-rails-app&gt;&lt;/your-rails-app&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-3819577039081283457?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/3819577039081283457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=3819577039081283457' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/3819577039081283457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/3819577039081283457'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2007/11/monit-barking-at-daemons.html' title='Monit, barking at daemons'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-9039404076068175584</id><published>2007-11-14T11:38:00.001Z</published><updated>2008-05-30T09:54:09.592+01:00</updated><title type='text'>AFP on my Ubuntu Brightbox</title><content type='html'>My &lt;a href="http://www.brightbox.co.uk/"&gt;Brightbox&lt;/a&gt; is now up and running, one day to host my new web app. Not much there yet, but at least I have now practiced some rails application deployment.&lt;br /&gt;&lt;br /&gt;Since I use a Mac, I decided it would be nice to be able to access my Brightbox via AFP so that I can move files around in the Finder. I had a few problems, so have decided to post some instructions that others might find useful...&lt;br /&gt;&lt;ol&gt;&lt;li&gt;First ensure the AFP TCP port 548 is open in the firewall (I had to get Brightbox to change my firewall settings).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Install &lt;a href="http://netatalk.sourceforge.net/"&gt;netatalk&lt;/a&gt; following the &lt;a href="http://www.damontimm.com/blog/how-to-install-netatalk-afp-on-ubuntu-with-encrypted-authentication/"&gt;instructions&lt;/a&gt; courtesy Damon Timm. The good thing about this approach is that the authentication is encrypted.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;There are various things that can go wrong at step 2 (as detailed in various Ubuntu related forums) and it looked like it hadn't worked for me, when I got the following output:&lt;br /&gt;&lt;br /&gt;$ sudo debi&lt;br /&gt;(Reading database ... 27275 files and directories currently installed.)&lt;br /&gt;Preparing to replace netatalk 2.0.3-3ubuntu1 (using netatalk_2.0.3-3ubuntu1_i386.deb) ...&lt;br /&gt;Stopping AppleTalk Daemons: afpd papd timelord atalkd cnid_metad.&lt;br /&gt;Unpacking replacement netatalk ...&lt;br /&gt;Setting up netatalk (2.0.3-3ubuntu1) ...&lt;br /&gt;Starting AppleTalk services (this will take a while): socket: Address family not supported by protocol&lt;br /&gt;socket: Address family not supported by protocol&lt;br /&gt;atalkd: can't get interfaces, exiting.&lt;br /&gt;atalkd papd afpd cnid_metad.&lt;br /&gt;&lt;br /&gt;Actually, the afpd process was running correctly, and I was able to connect from my Mac. The problem was with the AppleTalk process atalkd: I don't think my Ubuntu kernel has been built with the AppleTalk module. However, I didn't need it because AppleTalk is no longer used for AFP connections, it's done via TCP. I don't think OS X 10.4 onwards even supports AppleTalk for AFP anymore.&lt;br /&gt;&lt;br /&gt;I found I could stop netatalk trying to start atalkd and suppress the errors by changing these lines in /etc/default/netatalk&lt;br /&gt;&lt;br /&gt;ATALKD_RUN=no&lt;br /&gt;PAPD_RUN=no&lt;br /&gt;&lt;br /&gt;The other thing I did was edit /etc/netatalk/AppleVolumes.default to:&lt;br /&gt;&lt;br /&gt;~/            "Brightbox"&lt;br /&gt;&lt;br /&gt;The setting was previously "Home Directory", which wasn't very meaningful.&lt;br /&gt;&lt;br /&gt;Sys admin: gotta love it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-9039404076068175584?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/9039404076068175584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=9039404076068175584' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/9039404076068175584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/9039404076068175584'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2007/11/afp-on-my-ubuntu-brightbox.html' title='AFP on my Ubuntu Brightbox'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-5036369967891614214</id><published>2007-11-12T09:51:00.000Z</published><updated>2008-01-04T08:58:46.804Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ex-director-y'/><title type='text'>Ex-director-y, Part 4 supplemental</title><content type='html'>I was watching BBC Breakfast this morning, and saw a short interview with the head bloke at &lt;a href="http://www.flybe.com/"&gt;flybe&lt;/a&gt;. He explained that considered the steps to developing a successful business as:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Establish a strong purpose for the company. Define what the company is trying to achieve.&lt;/li&gt;&lt;li&gt;Clearly communicate the purpose, vision and goals to your staff and customers.&lt;/li&gt;&lt;li&gt;Develop a plan of actions to fulfill the company's purpose and follow it.&lt;/li&gt;&lt;/ol&gt;I think he's been reading my blog!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-5036369967891614214?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/5036369967891614214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=5036369967891614214' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/5036369967891614214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/5036369967891614214'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2007/11/ex-director-y-part-4-supplemental.html' title='Ex-director-y, Part 4 supplemental'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-160944241910365738</id><published>2007-11-09T09:18:00.001Z</published><updated>2007-11-09T09:49:52.085Z</updated><title type='text'>Happy Birthday, Grumpy</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.redfursnake.com/uploaded_images/IMG_1092-759686.jpg"&gt;&lt;img style="cursor: pointer;" src="http://www.redfursnake.com/uploaded_images/IMG_1092-759683.jpg" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;51 today!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-160944241910365738?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/160944241910365738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=160944241910365738' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/160944241910365738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/160944241910365738'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2007/11/happy-birthday-grumpy.html' title='Happy Birthday, Grumpy'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-6758676628483060782</id><published>2007-11-07T12:07:00.000Z</published><updated>2008-01-04T08:44:32.921Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ex-director-y'/><title type='text'>Ex-director-y, Part 4</title><content type='html'>Leadership. That sums up what being a Director is all about. Everything else is probably  &lt;em&gt;Management&lt;/em&gt;, and should be delegated (at least in larger organisations).&lt;br /&gt;&lt;br /&gt;Thankfully, I don't need to explain what I think Leadership is all about: it is summed up well in &lt;a href="http://www.shineconsulting.co.uk/extra421.html"&gt;this article&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Could I be a good Leader? I think so, as long as the company had a clear vision and I was passionate about it, but being 'ex-director-y' suits me for now...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-6758676628483060782?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/6758676628483060782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=6758676628483060782' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/6758676628483060782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/6758676628483060782'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2007/11/ex-director-y-part-4.html' title='Ex-director-y, Part 4'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-770258908960208113</id><published>2007-11-06T19:58:00.003Z</published><updated>2008-06-12T17:03:58.938+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Life'/><title type='text'>Walking Weather</title><content type='html'>&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.redfursnake.com/uploaded_images/IMG_0937-749394.jpg"&gt;&lt;img style="cursor: pointer;" src="http://www.redfursnake.com/uploaded_images/IMG_0937-749388.jpg" alt="" border="0" /&gt; &lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.redfursnake.com/uploaded_images/IMG_0824-789656.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.redfursnake.com/uploaded_images/IMG_0867-769391.jpg"&gt;&lt;img style="cursor: pointer;" src="http://www.redfursnake.com/uploaded_images/IMG_0867-769385.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.redfursnake.com/uploaded_images/IMG_0948-758979.jpg"&gt; &lt;img style="cursor: pointer;" src="http://www.redfursnake.com/uploaded_images/IMG_0948-758975.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.redfursnake.com/uploaded_images/IMG_0824-789656.jpg"&gt;&lt;img style="cursor: pointer;" src="http://www.redfursnake.com/uploaded_images/IMG_0824-789640.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.redfursnake.com/uploaded_images/IMG_0824-789656.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.redfursnake.com/uploaded_images/IMG_0824-789656.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;This blog needs some pictures! Here's some from a couple of recent dog walks in fabulous autumn sunshine...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-770258908960208113?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/770258908960208113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=770258908960208113' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/770258908960208113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/770258908960208113'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2007/11/walking-weather.html' title='Walking Weather'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-3434678327602977046</id><published>2007-11-03T07:47:00.000Z</published><updated>2008-01-04T08:53:49.778Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Software Development, Part 1</title><content type='html'>In another exciting mini-series, here are my software development tips:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Don't write any code if you can avoid it&lt;/li&gt;&lt;li&gt;If you have to write some code, write as little as possible&lt;/li&gt;&lt;li&gt;Only settle for the clearest and simplest code&lt;/li&gt;&lt;li&gt;If you have to write a lot of code, make sure it is &lt;em&gt;extremely&lt;/em&gt; modular and loosely coupled&lt;/li&gt;&lt;li&gt;Write automated tests as you go along&lt;/li&gt;&lt;li&gt;Document requirements and algorithms only&lt;/li&gt;&lt;li&gt;Don't forget to follow these rules&lt;/li&gt;&lt;/ol&gt;That last point is just for me!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-3434678327602977046?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/3434678327602977046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=3434678327602977046' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/3434678327602977046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/3434678327602977046'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2007/11/software-development-part-1.html' title='Software Development, Part 1'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-6500720332796472932</id><published>2007-11-01T11:17:00.000Z</published><updated>2008-01-04T08:48:47.541Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ex-director-y'/><title type='text'>Ex-director-y, Part 3</title><content type='html'>By popular demand, here is Part 3.&lt;br /&gt;&lt;br /&gt;Our company is now happy: It has clear objectives and it has just the necessary staff and financial resources to required to meet them. Only a couple of problems remain. I will address the first here.&lt;br /&gt;&lt;br /&gt;Staff Motivation&lt;br /&gt;&lt;br /&gt;Staff are only ever &lt;em&gt;potentially&lt;/em&gt; useful to the company. Without motivation, they may contribute nothing. Some ways to manage staff that don't work by themselves, or don't work at all, include:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;You can pay your staff lots of money. This won't do any harm, but won't make the work any more enjoyable. It may help retain unhappy staff for longer as they struggle to find an alternative job that pays as well. But why would you want to retain unhappy staff? They are unlikely to be contributing enough to justify their inflated salaries.&lt;/li&gt;&lt;li&gt;You can make sure the staff have the environment and tools to work productively, but this won't motivate by itself. In fact, a highly motivated team would overcome trivial problems like not having a desk, chair or office to work in, or pay!&lt;/li&gt;&lt;li&gt;Being nice to your employees may be kind, but again does not  motivate. Worse, in the absence of anything else, kindness will be exploited as the team descends into a bunch of whingeing spoilt kids.&lt;/li&gt;&lt;li&gt;Being tough and authoritarian won't work either. Some work &lt;em&gt;will&lt;/em&gt; get done, but don't expect any more than the bear minimum. And don't expect any initiative to be applied. The workplace isn't the army!&lt;/li&gt;&lt;/ol&gt;So what &lt;em&gt;does&lt;/em&gt; motivate? This turns out to be a very simple question to answer: &lt;strong&gt;Whatever motivates you&lt;/strong&gt;, the company's director. You will know what the company was created to do, because you were passionate enough to risk everything creating it. Now, your primary objective, is to realize the company's dream, by getting your staff (and customers) to believe it and be excited about it too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-6500720332796472932?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/6500720332796472932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=6500720332796472932' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/6500720332796472932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/6500720332796472932'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2007/10/ex-director-y-part-3.html' title='Ex-director-y, Part 3'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-2794390442481139321</id><published>2007-10-30T07:31:00.001Z</published><updated>2008-01-04T08:50:10.290Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><title type='text'>Ruby on Rails on a Shared Host</title><content type='html'>Putting your RoR app on a shared host is not the preferred way, especially if you don't have ssh access, but it's cheap! For early aworka releases to my beta testers, I have managed to get my app working on just such a host: &lt;a href="http://www.34sp.com/"&gt;34SP&lt;/a&gt;. In case you need to do the same, the steps I used were:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Install a &lt;a href="http://scripts.34sp.com/"&gt;RoR skeleton&lt;/a&gt; using the script provided by 34SP.&lt;/li&gt;&lt;li&gt;Upload your local app files into the app subdirectory of the skeleton using FTP. I use &lt;a href="http://www.cyberduck.com/"&gt;CyberDuck&lt;/a&gt; on OS X.&lt;/li&gt;&lt;li&gt;Upload any other files you have created/edited, e.g. config/environment.rb, or files in lib. Don't forget public/images and public/javascripts. I'm not certain, but I think you can change any of the files in the skeleton except dispatch.fcgi and .htaccess in the public subdirectory.&lt;/li&gt;&lt;li&gt;Create your MySQL database and a database user using the databases control panel at your website's siteadmin, then update db/database.yml to match. The host parameter should be left as localhost.&lt;/li&gt;&lt;li&gt;Because you do not have ssh access, you cannot run the database migrations for your app in db/migrate. Instead, export your local database to an .sql file (I use &lt;a href="http://www.cocoamysql.com/"&gt;CocoaMySQL&lt;/a&gt; on OS X) then upload to your online database using phpMyAdmin available from your website's siteadmin.&lt;/li&gt;&lt;li&gt;You will find that your URLs follow the form: myapp/public/controller/action/id. You can get rid of the 'public' part of the URL if you follow the &lt;a href="http://www.mcqn.net/mcfilter/archives/computers/removing_public_from_the_url_of_rails_apps.html"&gt;instructions&lt;/a&gt; Courtesy Adrian McEwen&lt;/li&gt;&lt;li&gt;Note that the version of Rails installed on your web host may not be the same as the local version you are using. I am using Rails 1.2.5 locally, but 1.1.6 on my web host. Most things still worked, except &lt;% form_tag do %&gt; ... &lt;% end %&gt; in 1.2, needs to be &lt;%= form_tag %&gt; ... &lt;%= end_form_for %&gt;. Luckily, it is backwards compatible.&lt;/li&gt;&lt;li&gt;Your rails app is run using FastCGI. If you need to restart the FastCGI processes, just edit (or download/upload) dispatch.fcgi.&lt;/li&gt;&lt;li&gt;If nothing works, you can examine your app's log directory, or if it goes wrong before your app can log anything, there may be clues in /statistics/logs&lt;/li&gt;&lt;/ol&gt;That's about it. Let me know when it doesn't work for you and we'll try and work it out!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-2794390442481139321?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/2794390442481139321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=2794390442481139321' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/2794390442481139321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/2794390442481139321'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2007/10/ruby-on-rails-on-shared-host.html' title='Ruby on Rails on a Shared Host'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-7753631743041794991</id><published>2007-10-28T08:06:00.000Z</published><updated>2008-01-04T08:48:47.541Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ex-director-y'/><title type='text'>Ex-director-y, Part 2</title><content type='html'>In part 1, I was essentially saying that the way to succeed as a company director is to  &lt;em&gt;always do what's best for the company&lt;/em&gt;. I believe this simple philosophy is the key:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;It forces you to decide values, purpose and vision for the company, because there needs to be criteria against which to judge what's best.&lt;/li&gt;&lt;li&gt;It stops you selfishly pleasing yourself at the expense of the company, e.g. by squandering profits on personal material items, instead of reinvesting in the company.&lt;/li&gt;&lt;li&gt;It stops you recruiting unnecessary staff just so your ego can relish running a large company.&lt;/li&gt;&lt;li&gt;It stops you recruiting or retaining staff that are unsuitable just because you like them, or feel sorry for them.&lt;/li&gt;&lt;li&gt;It stops you being distracted by triviality.&lt;/li&gt;&lt;/ol&gt;There might be a part 3, but I'm conscious that this is a bit boring so I might stop and write about wigs instead.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-7753631743041794991?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/7753631743041794991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=7753631743041794991' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/7753631743041794991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/7753631743041794991'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2007/10/ex-director-y-part-2.html' title='Ex-director-y, Part 2'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-5443674816962152977</id><published>2007-10-27T09:39:00.001+01:00</published><updated>2008-02-12T15:18:29.124Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Life'/><title type='text'>Men in Suits</title><content type='html'>Men in suits, "...report...PDF...call Sue...": makes me feel sick.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-5443674816962152977?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/5443674816962152977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=5443674816962152977' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/5443674816962152977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/5443674816962152977'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2007/10/men-in-suits.html' title='Men in Suits'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-4184692548993350471</id><published>2007-10-27T08:38:00.000+01:00</published><updated>2008-01-04T08:48:47.541Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ex-director-y'/><title type='text'>Ex-director-y, Part 1</title><content type='html'>Occasionally, I'll post little personal reflections on my past life as a company director. I don't think I was very good at it, but it was a useful learning experience. I might have another go one day! &lt;br /&gt;&lt;br /&gt;Today's Reflection:&lt;br /&gt;&lt;br /&gt;One of the hardest things about becoming a company director is that you no longer have a manager to tell you what to do, encourage you, advise you or (perhaps most importantly) bollock you. If you're not careful, you can end up doing nothing constructive and get away with it. But before you go out looking for a cushy director job, be warned: there will be a silent critic watching you! This critic won't tell you directly how you're doing, or stop you making mistakes, or help you make decisions, but still has the power to take away your house and your employees' jobs. Survival is about adopting the mindset that enables you to direct your company the way your critic would. So how can you adopt this mindset when you don't know what it is? Actually, it should be easy because you created the critic. The critic is your company.&lt;br /&gt;&lt;br /&gt;I will make sense of this flowery bullshit in Ex-director-y Part 2.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-4184692548993350471?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/4184692548993350471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=4184692548993350471' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/4184692548993350471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/4184692548993350471'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2007/10/ex-director-y-part-1.html' title='Ex-director-y, Part 1'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-221175678703120649</id><published>2007-10-16T16:51:00.001+01:00</published><updated>2008-10-06T09:43:37.478+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Moving House'/><title type='text'>Hangover Recovery</title><content type='html'>I have been recovering from the hangover of work for a few weeks now. It's an odd feeling, a holiday that never ends, but always feels like it's about to.&lt;br /&gt;&lt;br /&gt;Despite the hangover, there are now two irons in the fire:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;More detail to follow, but this will be my first attempt at a subscription based web service, developed using &lt;a href="http://www.rubyonrails.org/"&gt;Ruby on Rails&lt;/a&gt;. I would need about 300 subscribers to provide a reasonable income, which doesn't sound too ambitious, but we'll see. If it fails, I'll take my newly aquired web app knowledge and try something else (I've had a couple of other ideas...).&lt;/li&gt;&lt;li&gt;Buying a holiday complex in Devon or Cornwall. We will be looking for an ex-farm, like some of those offered by &lt;a href="http://www.stags.co.uk/departments/holiday_complexes.php"&gt;Stags&lt;/a&gt;. Typically, the old farmhouse is used as the owner's residence, with barns and outbuildings converted to self-catering holiday letting units. Equity from our current house will act as a deposit, with any remaining mortgage funded by holiday let income. Ideally, this scheme would also generate enough income for us to live on, especially since the success of aworka is far from certain!&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-221175678703120649?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/221175678703120649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=221175678703120649' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/221175678703120649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/221175678703120649'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2007/10/i-have-been-recovering-from-hangover-of.html' title='Hangover Recovery'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-2488309464890653855</id><published>2007-10-06T19:03:00.000+01:00</published><updated>2008-02-12T15:19:18.864Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Life'/><title type='text'>Blue Peter</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.redfursnake.com/uploaded_images/bpshep2-765029.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://www.redfursnake.com/uploaded_images/bpshep2-765027.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;John Noakes had Shep, but Peter Perves commentates Crufts. Get down!&lt;br /&gt;&lt;br /&gt;Ben Fogle would have made a good Blue Peter presenter, but for that slip up at Crufts when he referred to Peter Perves as Peter Pervs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-2488309464890653855?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/2488309464890653855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=2488309464890653855' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/2488309464890653855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/2488309464890653855'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2007/10/john-noakes-had-shep-but-peter-perves.html' title='Blue Peter'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5302779470292853103.post-4191129080655611869</id><published>2007-09-22T08:07:00.000+01:00</published><updated>2007-11-01T17:39:49.634Z</updated><title type='text'>Life after igence</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="images/igencesign.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 150px;" src="images/igencesign.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;So I have finally left igence, the company I co-founded in 1999. This blog is about what happens next...&lt;br /&gt;&lt;br /&gt;I need to find something purposeful to do eventually, but for now I'm just planning to cleanse my brain using a combination of compost, daytime telly and murray mints.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5302779470292853103-4191129080655611869?l=redfursnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://redfursnake.blogspot.com/feeds/4191129080655611869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5302779470292853103&amp;postID=4191129080655611869' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/4191129080655611869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5302779470292853103/posts/default/4191129080655611869'/><link rel='alternate' type='text/html' href='http://redfursnake.blogspot.com/2007/09/life-after-igence.html' title='Life after igence'/><author><name>Chris</name><uri>http://www.blogger.com/profile/03964506029660150021</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry></feed>
