<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Where&#039;s yer whelk?</title>
	<atom:link href="http://dave.coolhandmook.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://dave.coolhandmook.com</link>
	<description>Diary of an easily distracted developer</description>
	<lastBuildDate>Tue, 07 Feb 2012 22:20:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>GitHub is addictive</title>
		<link>http://dave.coolhandmook.com/2012/02/07/github-is-addictive/</link>
		<comments>http://dave.coolhandmook.com/2012/02/07/github-is-addictive/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 19:27:57 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[CxxTest]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[PyInstaller]]></category>
		<category><![CDATA[TrayJenkins]]></category>

		<guid isPermaLink="false">http://dave.coolhandmook.com/?p=77</guid>
		<description><![CDATA[Since my last post I&#8217;ve been spending far too long on a fairly trivial project, TrayJenkins (v0.1 released today). In the process I&#8217;ve become addicted to GitHub, contributing a few minor changesets to two other projects along the way (CxxTest &#8230; <a href="http://dave.coolhandmook.com/2012/02/07/github-is-addictive/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Since my last post I&#8217;ve been spending far too long on a fairly trivial project, <a href="https://github.com/coolhandmook/trayjenkins">TrayJenkins</a> (v0.1 released today). In the process I&#8217;ve become addicted to GitHub, contributing a few minor changesets to two other projects along the way (<a href="https://github.com/CxxTest/cxxtest">CxxTest</a> and <a href="https://github.com/pyinstaller/pyinstaller">PyInstaller</a>).</p>
<p><span id="more-77"></span></p>
<p>It seems that everyone is migrating to at least git, if not GitHub, and now that I&#8217;ve been using both for a few months it&#8217;s obvious why. Back when I started with git though, it all seemed a bit intimidating.</p>
<p>What GitHub does that&#8217;s going to give a lot open source projects a major boost is make it simple for outsiders to contribute. You press one button and, voila, you have read and write privileges to somebody else&#8217;s project. On top of that is a set of slick tools and helpful tutorials and guides for the beginner to the expert.</p>
<p>There are also some nice graphs. I like graphs. Sad fact.</p>
<p><a href="http://dave.coolhandmook.com/wp-content/uploads/2012/02/pyinstaller-network.png"><img class="size-medium wp-image-79 alignleft" title="GitHub &quot;network graph&quot; example" src="http://dave.coolhandmook.com/wp-content/uploads/2012/02/pyinstaller-network-300x76.png" alt="" width="300" height="76" /></a>On the left here is a small portion of a &#8220;network graph&#8221;, showing how the various branches intermingle over time. Imagine it for something really busy like the Linux kernel with its 529 different forks. Or, just go and <a href="https://github.com/torvalds/linux/network">explore it here</a>.</p>
<p><a href="https://github.com/coolhandmook/trayjenkins/graphs/punch_card"><img class="alignright size-medium wp-image-81" title="GitHub &quot;punchcard&quot; example" src="http://dave.coolhandmook.com/wp-content/uploads/2012/02/trayjenkins-punchcard-300x112.png" alt="" width="300" height="112" /></a>Then there&#8217;s this so-called &#8220;punch card&#8221; which is quite interesting. I&#8217;m surprised to see there on the right that Monday nights are the busiest for TrayJenkins development. There&#8217;s also a surprising peak on Wednesday afternoons. That&#8217;s odd, I&#8217;m pretty sure I haven&#8217;t had any Wednesday afternoons off work recently. And the less said about those commits in the wee small hours, the better. Ahem. Moving on&#8230;</p>
<p>I think the only disappointing thing about GitHub so far is that it doesn&#8217;t appear to be open source. Since we&#8217;re experimenting with porting some small Subversion projects over to Git at work, I&#8217;d really like some of these GitHub tools to play with, but there&#8217;s no chance in hell of us open sourcing our code, and very little chance of me persuading the boss that we should get our code privately hosted in the cloud.</p>
<p>Anyway, that&#8217;s enough of my drivel for now. Version 0.2 of TrayJenkins to get started on, and some more PyInstaller+PySide fixes to sort out.</p>
]]></content:encoded>
			<wfw:commentRss>http://dave.coolhandmook.com/2012/02/07/github-is-addictive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>In defence of Ubuntu 11.10</title>
		<link>http://dave.coolhandmook.com/2011/12/06/in-defence-of-ubuntu-11-10/</link>
		<comments>http://dave.coolhandmook.com/2011/12/06/in-defence-of-ubuntu-11-10/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 13:24:59 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Gnome]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Kubuntu]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mint]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Unity]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://dave.coolhandmook.com/?p=62</guid>
		<description><![CDATA[I got my new laptop at the weekend and, obviously, the first thing that I had to do was get Linux on there. I have to say I&#8217;ve been a bit suspicious of the direction Linux-on-the-desktop has been heading of &#8230; <a href="http://dave.coolhandmook.com/2011/12/06/in-defence-of-ubuntu-11-10/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I got my new laptop at the weekend and, obviously, the first thing that I had to do was get Linux on there. I have to say I&#8217;ve been a bit suspicious of the direction Linux-on-the-desktop has been heading of late. Having already tried Ubuntu 11.10 (aka &#8220;Oneiric Ocelot&#8221;) for a while on the missus&#8217; machine I had some reservations about shoving it on my new one. In the interest of science, I tried out a few alternatives to see what the state of the art is these days.</p>
<p><span id="more-62"></span></p>
<h2>Windows 7 Home Premium</h2>
<p>Forgive me, I&#8217;m just curious. I still use XP at work, and now I&#8217;ve paid for this, I might as well give it a go.</p>
<p>First of all, what a weird install process! When switching on for the first time*, it asked me various things like name, timezone etc, the stuff you&#8217;d expect. Then it asked me how I wanted to <em>partition the disk</em>! Did not see that coming. Not in a Windows install, Linux maybe. I got a flippin&#8217; DOS box in my face while it did its thing. So not slick. Several reboots later and I&#8217;m in Windows 7.</p>
<p>(* Not really the first time, as I always boot into a USB-stick Linux first to clone the disks in case I ever need to do a proper factory reset. Well, for once this paid off, but I&#8217;ll get to that in a later post.)</p>
<p>And that&#8217;s where I lost interest. Severe case of &#8220;meh&#8221;. I was instantly bored, and put off with the prospect of having to deal with anti-virus programs and windows security. I&#8217;ll leave it on as dual boot for now in case I decide to ever use it, but I suspect that&#8217;s the last boot into Windows for a long time. It has to be said though that I&#8217;m quite jealous of battery life in Windows which appears to be at least twice as good as Linux.</p>
<h2>Linux Mint 12 (Lisa)</h2>
<p>This is the up-and-coming saviour of Linux for geeks on the desktop, according to the Slashdot crowd and co. It&#8217;s based on Ubuntu, but replaces Ubuntu&#8217;s newish Unity windowing environment with a slightly customised Gnome desktop. I was drawn to this because I&#8217;ve been using Gnome for years from back at uni and up to Ubuntu 10.04. It did everything I needed it to without too much fuss.</p>
<p>However, Gnome 3 has reportedly screwed all of that up and tried to be too fancy. So along came Mint to save the day, making Gnome 3 feel more like the old tried-and-tested Gnome 2 experience. Well, I&#8217;m afraid to say it didn&#8217;t do it for me. Still too many settings, things to tweak and odd, unexpected, unintuitive behaviour. I don&#8217;t have time to fart around with this sort of stuff, I expect it to keep out of my way these days.</p>
<p>It feels like there&#8217;s a lot of wasted space too. They (I think Gnome, rather than Mint) have gone to the trouble of shoving the application&#8217;s title in the bar at the top with a fancy icon, but actually <em>repeat</em> it again in the window title. What&#8217;s the point? With laptop screens getting wider and wider instead of squarer (don&#8217;t get me started), those valuable vertical pixels are getting wasted.</p>
<h2>Kubuntu 11.10</h2>
<p>Having had my hopes dashed by Mint, I thought I&#8217;d give this a shot. It&#8217;s Ubuntu again, this time with KDE instead of Unity. Well, to cut a long story short, I thought the quality of Qt would have rubbed off on KDE, but no. It&#8217;s a gui-tweaker&#8217;s wet dream. More knobs and whistles than the <a href="http://starwarsblog.starwars.com/index.php/2009/06/08/los-angeles-steam-plant-responsible-for-obliterating-alderaan/">Death Star&#8217;s control room</a>, and half as intuitive. This is the opposite of what I want. Next!</p>
<h2>Ubuntu 11.10 (Oneiric Ocelot)</h2>
<p>I&#8217;m surprised to find myself in the position of ending up with vanilla Ubuntu after all, and I actually rather like it. Yes, there are a few slightly annoying things (like the lame battery meter, <del>easily <a href="http://www.omgubuntu.co.uk/2011/02/battery-applet-status-ubuntu/">replaceable</a></del> (edit &#8211; no version for oneiric yet)), a few missing things (like a decent system monitor in the tray, easily <a href="www.webupd8.org/2011/05/network-memory-and-cpu-usage-indicator.html">sorted</a>) and some eccentric things (like the launcher bar). However, there&#8217;s nothing unexpected and every ounce of screen real estate is at my disposal. I didn&#8217;t have to tweak any obscure XML files or system settings, it just works, and it stays out of my way by default.</p>
<p>And no, I&#8217;m not a simpleton who&#8217;s only going to surf the web and watch movies. I consider myself a power user &#8211; I develop software for a living and in my spare time,  still use emacs (maybe that loses me geek points already), and am very comfortable at the command line.</p>
<p>If using Unity with Ubuntu 11.10 makes me less of a geek, then so be it. I&#8217;m already good at avoiding writing software without the extra distraction of pimping up my desktop environment.</p>
]]></content:encoded>
			<wfw:commentRss>http://dave.coolhandmook.com/2011/12/06/in-defence-of-ubuntu-11-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python wonderland</title>
		<link>http://dave.coolhandmook.com/2011/11/20/python-wonderland/</link>
		<comments>http://dave.coolhandmook.com/2011/11/20/python-wonderland/#comments</comments>
		<pubDate>Sun, 20 Nov 2011 21:38:21 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[MVP]]></category>
		<category><![CDATA[PyCharm]]></category>
		<category><![CDATA[PyInstaller]]></category>
		<category><![CDATA[pymox]]></category>
		<category><![CDATA[PySide]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Tkinter]]></category>
		<category><![CDATA[Unit Testing]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://dave.coolhandmook.com/?p=58</guid>
		<description><![CDATA[Last week I got to delve back into the world of Python at work to try and streamline part of our day-to-day working practices. I&#8217;ve never really got into TDD or MVP with Python, and we&#8217;ve been harping on about &#8230; <a href="http://dave.coolhandmook.com/2011/11/20/python-wonderland/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Last week I got to delve back into the world of Python at work to try and streamline part of our day-to-day working practices. I&#8217;ve never really got into <a href="http://en.wikipedia.org/wiki/Test-driven_development">TDD</a> or <a href="http://en.wikipedia.org/wiki/Model_View_Presenter">MVP</a> with Python, and we&#8217;ve been harping on about those techniques at work for some time now. So, I decided to get stuck in and try to do it all by the book. It ended up being rather more fun than I bargained for.</p>
<p><span id="more-58"></span></p>
<p>First up, since it&#8217;s what we&#8217;ve used on one or two other little projects, I stuck with Python&#8217;s built-in unittest framework, and <a href="http://code.google.com/p/pymox/">pymox</a> for mocking. Mocking and interfaces often feel like overkill in Python, but I stuck with it and ended up fairly happy with the results.</p>
<p>The test discovery (or lack of it) is a bit of a chore to set up, but I can put up with it. I briefly looked at <a href="http://code.google.com/p/python-nose/">nose</a>, and that seems like an improvement, but I (we?) tend towards what&#8217;s avaiable in the standard Python libraries. It&#8217;s nice not to have too many external dependencies.</p>
<p>Since there&#8217;s no mocking framework in the standard library we didn&#8217;t really have a choice but to use an external library. I didn&#8217;t explore the alternatives, trusting that my colleagues had picked something decent. Pymox is roughly similar to <a href="http://hibernatingrhinos.com/open-source/rhino-mocks">Rhinomocks</a>, but not quite as polished. I miss various little niceties like the difference between OnCall and ExpectCall. It&#8217;s all or nothing with pymox, you can&#8217;t just verify a subset of calls. It does the job, but just takes a little extra effort.</p>
<p>I&#8217;ve never done any gui stuff in Python, but this required a few simple buttons and text fields. After looking at all the options, I went with <a href="http://wiki.python.org/moin/TkInter">Tkinter</a> just because it was already installed with ActiveState&#8217;s python on all our developent machines. It was easier than I expected, and gave reasonable-looking results on Windows at least, but it Looked a bit crummy on Linux.</p>
<p>Since the gui was done to the MVP pattern, it was easy to reimplement the front-end with a different toolkit. I was interested in giving <a href="http://www.pyside.org/">PySide</a> a twirl, and knocked up a second front-end which was even easier that Tkinter I&#8217;m surprised to say. It also looked a heck of a lot better in Linux. I&#8217;ll be giving this more attention some time soon because I really like it, being slightly used to Qt framework from previous side-tracks.</p>
<p>Packaging everything up in a distributable form wasn&#8217;t as straight-forward as I&#8217;d have liked, possibly due to the ActiveState python implementation on Windows. Using <a href="http://www.pyinstaller.org/">PyInstaller</a> it was really easy to get the initial distro set up, but I couldn&#8217;t get the single executable version of the solution working. Something to do with not being able to find an msvc 9 dll. I think that&#8217;s a dependency introduced by the ActiveState python implementation on Windows. There was no time or point in hunting the problem down, so I just plumped for the single directory install instead.</p>
<p>I was surprised by the size of the installs though. The default one with Tkinter was around 8 megs, and the PySide one was closer to 25! Bear in mind that this is a tiny application that just talks to Jenkins over http.</p>
<p>The whole thing was developed in emacs and the tests I just ran from the command line. A bit old-school, but Eclipse drives me up the wall. Towards the end of the development I remembered that I wanted to try out <a href="http://www.jetbrains.com/pycharm/">PyCharm</a>, a python IDE from JetBrains (the folk who do ReSharper). In short, it&#8217;s awesome. It&#8217;s almost like developing a statically typed version of python, as long as you document your function parameters and return types properly. The only downside is that it&#8217;s not free, but it&#8217;s good enough that I might just buy myself a copy anyway. Good enough that it&#8217;s making me think again about doing my never-gonna-happen project in Scala. Maybe it might actually happen if I go back to good old python with a decent IDE.</p>
<p>Last but not least, this was also a sneaky foray into using <a href="http://git-scm.com/">Git</a> at work. It would really streamline our branching and merging policies. Keeping it short, I can see a lot of benefits, but I can see a lot of opportunity for us to shoot ourselves in the foot. Perhaps I&#8217;ll hold off on pushing this until we&#8217;ve got less to worry about at work. Some time next year maybe.</p>
<p>I&#8217;d quite like to open-source some or all of this, but I don&#8217;t think it&#8217;s generally useful yet, and I still have to get over puting my real email address out there for spam crawlers to find. A silly thing to worry about really, I know.</p>
<p>Overall, I had way too much fun. I&#8217;m not really sure why, but here are some theories. Perhaps it was the artistic freedom, not having to pair with someone (though it did get peer review at the end). Maybe it was just the break from the norm, some original work instead of refactoring. It could have been the (almost) instant gratification of a short project with fairly immediate pay-back.</p>
]]></content:encoded>
			<wfw:commentRss>http://dave.coolhandmook.com/2011/11/20/python-wonderland/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Laptops, laptops, laptops</title>
		<link>http://dave.coolhandmook.com/2011/11/02/laptops-laptops-laptops/</link>
		<comments>http://dave.coolhandmook.com/2011/11/02/laptops-laptops-laptops/#comments</comments>
		<pubDate>Wed, 02 Nov 2011 22:32:59 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Laptops]]></category>

		<guid isPermaLink="false">http://dave.coolhandmook.com/?p=47</guid>
		<description><![CDATA[Last weekend, I had the whole weekend to get started on my project. No prior engagements, no visitors, no chores to attend to (well, not many). So, I knuckled down and got started. Right? Not so fast. Didn&#8217;t you know &#8230; <a href="http://dave.coolhandmook.com/2011/11/02/laptops-laptops-laptops/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Last weekend, I had the whole weekend to get started on my project. No prior engagements, no visitors, no chores to attend to (well, not many). So, I knuckled down and got started. Right?</p>
<p>Not so fast. Didn&#8217;t you know I want a new laptop? My trusty Acer Aspire 5672 is showing signs of fatigue after nearly six years of loyal service. That&#8217;s good going. All that&#8217;s gone wrong in those five years is a dead memory stick and a slightly wonky webcam that I don&#8217;t use anyway. I&#8217;ll be very impressed if the next one lasts anywhere near this long.</p>
<p><span id="more-47"></span></p>
<p>I know what I want specs-wise:</p>
<ul>
<li>At least 4Gb memory</li>
<li>At least 500Gb HDD</li>
<li>At least 6 hours battery (I&#8217;m down to like 45mins on this thing)</li>
<li>At least 1280 x 800 screen at 14 or 15 inches.</li>
<li>USB3</li>
<li>Lighter than the current 3kg (my Aspire must have a steel frame!)</li>
<li>DVD drive</li>
<li>Somewhere around the £600 mark</li>
</ul>
<p>A lot of the seemingly obvious front-runners can be immediately ignored due to the current de-facto 1366 x 768 screens. I&#8217;m not taking a backwards step in vertical resolution. It looks like the next step up is 1600 x 900 and they&#8217;re few and far between on 14 inch machines. Lots of choice on 15 or 15.6 inch screens, but I&#8217;m leaning towards a 14 inch just to keep size and weight down (meaning easier to cart to Canada every 9 months or so).</p>
<p>I&#8217;ve been consulting various web sites to try and narrow down my choices but none of them quite get the job done on their own. They&#8217;ve each got flaws, making me think of another nice opportunity for anyone in need of a geek project &#8211; somebody please do a decent hardware review collecting site where you can filter out by detailed machine spec and various other factors. Sort of a cross between <a href="http://www.metacritic.com/">metacritic</a> and <a href="http://www.dabs.com/">dabs.com</a> product search.</p>
<p>For posterity, here&#8217;s the sites that have helped to some degree:</p>
<ul>
<li><a href="http://www.laptopmag.com/review">Laptop mag</a> &#8211; best for filtering, decent reviews, but for US market. Annoying, nagging flyer thing keeps popping up trying to get me to &#8220;find my perfect laptop&#8221;, but it seems a bit broken when you do try it out.</li>
<li><a href="http://www.trustedreviews.com/laptops">Trusted Reviews</a> &#8211; good reviews, basic filtering, just could do with a few <em>more</em> reviews. I&#8217;m sure their filtering used to be more comprehensive, perhaps it was too hard to maintain.</li>
<li><a href="http://www.expertreviews.co.uk/laptops">Expert Reviews</a> (Computer Shopper) &#8211; ok filtering, but not quite detailed enough. Decent amount of reviews, but no way to filter out old irrelevant ones, and not enough info in each machine&#8217;s summary.</li>
<li><a href="http://reviews.cnet.co.uk/laptops/">CNET (uk)</a> &#8211; broken filtering (at least in Firefox and Chrom(ium) on Linux), patronising and slightly &#8220;lad-mag&#8221;ish. Another site who I&#8217;m sure used to have good filter and search. It seems to have been revamped lately and has lost the goodness.</li>
<li><a href="http://www.pcpro.co.uk/reviews/laptops">PC Pro</a> &#8211; virtually identical search abilities as Expert Reviews (both Dennis Publishing, so no surprises there), but different reviews and ratings. These guys go up to 6 stars, woo.</li>
<li><a href="http://www.techradar.com/news/mobile-computing/laptops">TechRadar</a> &#8211; very basic filtering like price range and manufacturer, so you have to have already narrowed the field down a lot, more or less. Some handy roundups.</li>
<li><a href="http://www.pcadvisor.co.uk/reviews/laptops/5/">PC Advisor</a> &#8211; only filtering by manufacturer, and if you sort by review rating you get heaps of reviews from 2007, 2008 etc. Shame. Probably useful for a second or third opinion when you&#8217;ve narrowed your choices down.</li>
<li><a href="http://www.pocket-lint.com/laptops">Pocket-lint</a> &#8211; virtually non-existent search/filtering, but some good reviews and news.</li>
<li><a href="http://skinflint.co.uk/?cat=nb">Skinflint</a> &#8211; great filtering, but just for finding suitable products, no reviews.</li>
</ul>
<p>So to the contenders.</p>
<p><strong>Asus <a href="http://www.pcmag.com/article2/0,2817,2388281,00.asp">U46E-BAL5</a></strong></p>
<p>Close to perfection specs-wise, but for that 1366 x 768 screen and it doesn&#8217;t seem to be available in the UK. Good price, even if they do their usual and charge almost the same in pounds as they do in dollars ($699.99). I could maybe get one in Canada in December though.</p>
<p>Seems to have been superceded by the less well received <a href="http://www.zdnet.co.uk/reviews/thin-and-light-laptops/2011/10/12/asus-u46sv-40094169/">U46SV</a>. Still looks ok, just doesn&#8217;t get as glowing reviews.</p>
<p><strong>Samsung <a href="http://www.pocket-lint.com/news/41785/samsung-series-7-700z-notebook-looks-magical">Series 7 / Chronos / 700z</a></strong></p>
<p>Should be out in the UK in the next week or two. It seems to be a stab at a MacBook Pro equivalent for a vastly cheaper price. I&#8217;m drooling all over it already. Just waiting for some actual reviews rather than all these &#8220;hands-on&#8221; previews. They come in at between £700 and £1000. Of course I want the top spec, but really don&#8217;t need that. Somebody somewhere mentioned that the 14&#8243; version won&#8217;t be available in the UK, and that&#8217;s the one I want. Why would they do that? Marketing people, get a clue.</p>
<p>Reviews of the 700z5a (15.6&#8243;)</p>
<ul>
<li>2011/11/03 <a href="http://www.pcpro.co.uk/reviews/laptops/370903/samsung-700z-chronos">PC Pro</a></li>
<li>2011/11/04 <a href="http://www.techradar.com/reviews/pc-mac/laptops-portable-pcs/laptops-and-netbooks/samsung-700z5a-1038589/review">TechRadar</a></li>
</ul>
<p><strong>Apple MacBook Pro</strong></p>
<p>Almost every review site says these machines are the shiznit. Very well built, top quality parts, excellent support, you name it. My main beef with them is you <em>really</em> pay for it. For the price of a base model 15&#8243;, I could get <em>both</em> of the above two laptops. Seriously. Coming up for £1600. That&#8217;s crazy for somebody who doesn&#8217;t actually depend on the machine for their livelihood.</p>
]]></content:encoded>
			<wfw:commentRss>http://dave.coolhandmook.com/2011/11/02/laptops-laptops-laptops/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jira, GreenHopper and phone rescue</title>
		<link>http://dave.coolhandmook.com/2011/10/26/jira-greenhopper-and-phone-rescue/</link>
		<comments>http://dave.coolhandmook.com/2011/10/26/jira-greenhopper-and-phone-rescue/#comments</comments>
		<pubDate>Wed, 26 Oct 2011 19:19:00 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[GreenHopper]]></category>
		<category><![CDATA[JIRA]]></category>
		<category><![CDATA[N900]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://dave.coolhandmook.com/?p=44</guid>
		<description><![CDATA[So what have I been up to, apart from spending most of the weekend getting the missus&#8217; laptop running smoothly with Ubuntu 11.10? I&#8217;ve been investigating JIRA and GreenHopper for potential use at work. They look nifty, but still not &#8230; <a href="http://dave.coolhandmook.com/2011/10/26/jira-greenhopper-and-phone-rescue/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So what have I been up to, apart from spending most of the weekend getting the missus&#8217; laptop running smoothly with Ubuntu 11.10?</p>
<p>I&#8217;ve been investigating <a href="http://www.atlassian.com/software/jira/overview">JIRA</a> and <a href="http://www.atlassian.com/software/greenhopper/overview">GreenHopper</a> for potential use at work. They look nifty, but still not sure if they&#8217;re what we need.</p>
<p>Last night I reflashed my N900 which took a lot loner than expected. But boy has it paid off. So much nippier. It had begun to grind to a halt. I&#8217;ll go easier with the random plugins this time around.</p>
<p>Basically, 100% distraction now for almost two weeks. Five out of five on the Dave Distraction scale.</p>
]]></content:encoded>
			<wfw:commentRss>http://dave.coolhandmook.com/2011/10/26/jira-greenhopper-and-phone-rescue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brownie points</title>
		<link>http://dave.coolhandmook.com/2011/10/21/brownie-points/</link>
		<comments>http://dave.coolhandmook.com/2011/10/21/brownie-points/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 22:27:17 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[SpaceChem]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://dave.coolhandmook.com/?p=38</guid>
		<description><![CDATA[So, having lost a week to SpaceChem, you&#8217;d think I&#8217;d be diving right back in to the mystery project. Well, no. The latest distraction is that the new Ubuntu 11.10 is out and I&#8217;ve been promising to fix the missus&#8217; &#8230; <a href="http://dave.coolhandmook.com/2011/10/21/brownie-points/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So, having lost a week to SpaceChem, you&#8217;d think I&#8217;d be diving right back in to the mystery project. Well, no. The latest distraction is that the new Ubuntu 11.10 is out and I&#8217;ve been promising to fix the missus&#8217; laptop for a long time. Fingers crossed, the latest version will solve all the problems we&#8217;ve had with 10.04 on her wee Toshiba netbook without me really trying!</p>
<p>What an exciting Friday night, eh?</p>
]]></content:encoded>
			<wfw:commentRss>http://dave.coolhandmook.com/2011/10/21/brownie-points/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SpaceChem</title>
		<link>http://dave.coolhandmook.com/2011/10/16/spacechem/</link>
		<comments>http://dave.coolhandmook.com/2011/10/16/spacechem/#comments</comments>
		<pubDate>Sun, 16 Oct 2011 22:11:11 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[SpaceChem]]></category>

		<guid isPermaLink="false">http://dave.coolhandmook.com/?p=36</guid>
		<description><![CDATA[The latest distraction would be SpaceChem, a superb indie game. Challenging, educational and seriously addictive. Kiss goodbye to your spare time&#8230;]]></description>
			<content:encoded><![CDATA[<p>The latest distraction would be <a href="http://spacechemthegame.com/">SpaceChem</a>, a superb indie game. Challenging, educational and seriously addictive. Kiss goodbye to your spare time&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://dave.coolhandmook.com/2011/10/16/spacechem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Smelly code, smelly attitudes</title>
		<link>http://dave.coolhandmook.com/2011/10/11/smelly-code-smelly-attitudes/</link>
		<comments>http://dave.coolhandmook.com/2011/10/11/smelly-code-smelly-attitudes/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 22:45:05 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Havering]]></category>
		<category><![CDATA[Legacy Code]]></category>
		<category><![CDATA[Mocking]]></category>
		<category><![CDATA[Unit Testing]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://dave.coolhandmook.com/?p=28</guid>
		<description><![CDATA[At work we&#8217;ve got a lot of legacy code. Some of it is very new, but still legacy, going by Michael Feathers&#8216; definition of code without tests. Our newish policy is to not introduce any new code that isn&#8217;t under &#8230; <a href="http://dave.coolhandmook.com/2011/10/11/smelly-code-smelly-attitudes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>At work we&#8217;ve got a lot of legacy code. Some of it is very new, but still legacy, going by <a href="http://michaelfeathers.typepad.com/">Michael Feathers</a>&#8216; definition of <em>code without tests</em>. Our newish policy is to not introduce any new code that isn&#8217;t under test, but it proves a lot harder to do than we thought. Not only technically, but from a motivational point of view too. It doesn&#8217;t help that the tools for unit testing in C++ aren&#8217;t as clever or abundant as for other languages, especially when it comes to mocking objects. We love the tools like <a href="http://www.nunit.org/">NUnit</a> and <a href="http://hibernatingrhinos.com/open-source/rhino-mocks">Rhino Mocks</a> for C#, and so get spoiled rotten, then have to go back to C++ and are subsequently brought back down to earth.</p>
<p><span id="more-28"></span></p>
<p>Yes, we&#8217;ve tried Google Mocking Framework, but I personally find it ugly and clumsy. I&#8217;m not keen on the coding style, not being one to suffer cryptic symbol names and macros gladly. We settled for <a href="http://www.hippomocks.com/wiki/index.php/Main_Page">HippoMocks</a> in the end, but it&#8217;s a far cry from Rhino Mocks, though the author made a valiant effort. It feels like there ought to be another way to do this with C++ looking at the new wave of compilers like <a href="http://clang.llvm.org/">Clang</a> and <a href="http://llvm.org/">LLVM</a>. I started looking into it a couple of months back, but felt a bit out of my depth. It was also a big distraction, surprise, surprise. Talking of distractions, I seem to have wandered off topic a bit.</p>
<p>So our code base at work is something like 90% legacy, maybe more. There&#8217;s a mixture of early nineties procedural C code with globals everywhere (though that&#8217;s one thing we&#8217;ve been hard at work removing for the past six months, it seems), early noughties C++, mid noughties C++/CLI (don&#8217;t get me started on that, seriously, what an abomination of a language), and relatively nice new non-legacy C#. We&#8217;re not rewriting it all in C#, just moving parts of the gui over from C++/CLI to tested, MVP-ified C# as necessary, and slowly wrapping the unmanaged side in tests where possible.</p>
<p>Most of the time we don&#8217;t have to do a lot of context switching between these languages and styles as we&#8217;ll be concentrating on one area for at least a few weeks at a time. But when you&#8217;ve been working with the tested code for a while, going back to legacy can occasionally be quite jarring. There are often numerous expletives uttered, and the WTFs-per-minute rate soars quickly.</p>
<p>And so to the point of this post (I&#8217;m surprised I&#8217;ve strung it out this long).</p>
<p>It&#8217;s dawned on me lately that at work we really don&#8217;t have much respect for a lot of the code we&#8217;re dealing with, and I don&#8217;t think that&#8217;s doing us any favours. It&#8217;s not uncommon, for example, for somebody to blurt out something like &#8220;OMG, this is so crap&#8221;, or &#8220;this is terrible, what were they/we thinking&#8221;.</p>
<p>Most of that code was written a long time ago, with a smaller team, older tools and technologies, narrower skill sets, a lot of it even in an academic setting. There are other reasons too, but let&#8217;s not go into that. We forget all of these factors when we&#8217;re criticising the code.</p>
<p>Why do we feel the need to interrupt each other to point out how awful something is? Each time we do this we&#8217;re reinforcing the team&#8217;s negative perspective of the codebase. We are where we are now, so what&#8217;s the point of moaning about it? It&#8217;s just bad attitude. Could it also be affecting general attitudes elsewhere in the office environment?</p>
<p>Surely the professional approach would be to take what&#8217;s there and figure out the best approach to improve the situation. If it looks like a common occurence or pattern, by all means draw the team&#8217;s attention to it, but only if you actually want to talk about it and discuss options. Don&#8217;t just point and laugh like Nelson from The Simpsons.</p>
<p>So I&#8217;m going to attempt to take my own advice and see where it gets me, see if it catches on. No more bad-mouthing code. If we wait for the code smells to go away first, the equally smelly attitudes are also going to be here for a long time to come.</p>
]]></content:encoded>
			<wfw:commentRss>http://dave.coolhandmook.com/2011/10/11/smelly-code-smelly-attitudes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>More, erm, research</title>
		<link>http://dave.coolhandmook.com/2011/10/06/more-erm-research/</link>
		<comments>http://dave.coolhandmook.com/2011/10/06/more-erm-research/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 22:38:53 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Graph]]></category>
		<category><![CDATA[Heroku]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[InfoQ]]></category>
		<category><![CDATA[Neo4j]]></category>
		<category><![CDATA[Platform]]></category>

		<guid isPermaLink="false">http://dave.coolhandmook.com/?p=26</guid>
		<description><![CDATA[This week I&#8217;ve been mostly distracted engaged in looking into Heroku and Neo4j. Heroku is an interesting looking continuous deployment / cloud platform that&#8217;s just introduced Scala as a supported language. It looks very slick. You push your git changes &#8230; <a href="http://dave.coolhandmook.com/2011/10/06/more-erm-research/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This week I&#8217;ve been mostly <del>distracted</del> engaged in looking into <a href="http://www.heroku.com/">Heroku</a> and <a href="http://neo4j.org/">Neo4j</a>.</p>
<p>Heroku is an interesting looking continuous deployment / cloud platform that&#8217;s just introduced Scala as a supported language. It looks very slick. You push your git changes up to Heroku and it compiles everything and deploys all in one go. Looks like it would do as a starting point for some free scala hosting at least. Not sure if I would be willing to pay for the privilege though, yet. I&#8217;ve looked at <a href="http://www.cloudbees.com/">CloudBees</a> in the past, who do a nice free/cheap deal for open source projects, and incorporate a hosted Jenkins continuous integration suite too.</p>
<p>Neo4j is a Graph Database. I&#8217;d never heard of those before, and they seem very apt for the project I&#8217;m thinking of. Previously I&#8217;d been exploring MongoDB as a database, but a graph db sounds like it might fit the bill even better. I&#8217;ve really only got experience of MySql and SQLite, and want to know more about what all the fuss is about with this so-called NoSQL movement that encompasses Neo4j, MongoDB and a lot more.</p>
<p>Then there&#8217;s the inevitable time-warp that is InfoQ videos and YouTube. I think I want to know <em>everything</em> before I get started.</p>
<p>Notable presentations this week on InfoQ are &#8220;<a href="http://www.infoq.com/presentations/Kanban-Management-Fad">Can the Kanban Method Avoid Becoming another Management Fad?</a>&#8221; and &#8220;<a href="http://www.infoq.com/presentations/The-Beginner-s-Mind">The Begginer&#8217;s Mind</a>&#8220;. The former takes a bit to get going, but it&#8217;s quite insightful. It&#8217;ll make you think a lot about your behaviour in the workplace. Are you as professional as you think? Probably not. The latter presentation is interesting in terms of making you think about your current skill set, and how you learn new skills. I felt a bit sorry for him at the end though when nobody had any questions.</p>
<p>So distraction level 3 I think. The videos are more for work, while Heroku and Neo4j are fairly relevant to my spare time project. At some point I&#8217;ve got to choose the technology, stop procrastinating, and start writing some code.</p>
]]></content:encoded>
			<wfw:commentRss>http://dave.coolhandmook.com/2011/10/06/more-erm-research/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It&#8217;s all Google Maps&#8217; fault</title>
		<link>http://dave.coolhandmook.com/2011/10/04/its-all-google-maps-fault/</link>
		<comments>http://dave.coolhandmook.com/2011/10/04/its-all-google-maps-fault/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 07:28:06 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Api]]></category>
		<category><![CDATA[Docs]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Maps]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://dave.coolhandmook.com/?p=14</guid>
		<description><![CDATA[This project I&#8217;m thinking about started off in part because Google Maps was annoying. I think it&#8217;s probably the worst Google thing I&#8217;ve used. I&#8217;m talking about the &#8220;My Places&#8221; feature once you&#8217;ve logged in. Maybe I was pushing it &#8230; <a href="http://dave.coolhandmook.com/2011/10/04/its-all-google-maps-fault/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This project I&#8217;m thinking about started off in part because Google Maps was annoying. I think it&#8217;s probably the worst Google thing I&#8217;ve used. I&#8217;m talking about the &#8220;My Places&#8221; feature once you&#8217;ve logged in. Maybe I was pushing it too hard with around 150 places on one map, but it gets very frustrating. The text you&#8217;re entering for one &#8220;pin&#8221; appears in other pins randomly, colours of pins change, the style of the pins changes depending on whether you&#8217;re logged in or not (i.e. it looks fine to me, but when I publish the map, non-logged-in people see different shapes and colours), the kml file generated is a bit crummy, no sorting, and the list goes on.<span id="more-14"></span></p>
<p>At the weekend I cobbled together some python scripts to turn that kml file into a csv file and imported it into a Google Docs <a href="https://docs.google.com/spreadsheet/pub?hl=en_GB&amp;hl=en_GB&amp;key=0AvSlWPX1Rm2bdG5rZ1hodmNoaW1oNHNHRlVnRWFpTUE&amp;single=true&amp;gid=1&amp;output=html">spreadsheet</a>. I didn&#8217;t know quite what I was going to do with it, but then yesterday at lunch time I found a nifty page that told me how to <a href="http://googlemapsapi.blogspot.com/2007/03/creating-dynamic-client-side-maps.html">generate a map from a docs spreadsheet</a>. It was easy to get something up and running, then a bit of fiddling with the generated javascript last night gave me <a href="/map-2008-2011.html">something roughly equivalent</a> to the <a href="http://maps.google.com/maps/ms?msid=202195545702381514112.0004a2f26bde6cf407cf5&amp;msa=0">original map</a>, but with a nicer spreadsheet editing interface. Pity it&#8217;s Maps API v2, but I managed to not distract myself with converting the javascript to the v3 API. Good boy.</p>
<p>On the Dave Scale of Distraction, I&#8217;d give this a 4 out of 5. This doesn&#8217;t really help my project, as I certainly won&#8217;t be using a spreadsheet as the data store, but it keeps our pub crawl map ticking over for the home stretch. It&#8217;s a bit late too really, we&#8217;re almost done. It&#8217;s only slightly relevant as I&#8217;ll be using some maps for the project, either Google Maps that or <a href="http://www.openstreetmap.org/">Open Street Map</a> in the end.</p>
<p>Oh, and on an unrelated topic, I&#8217;m already getting spam comments on this blog. It&#8217;s not even been up for a week yet! Sheesh.</p>
]]></content:encoded>
			<wfw:commentRss>http://dave.coolhandmook.com/2011/10/04/its-all-google-maps-fault/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

