<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Rob Hague&apos;s Blog</title>
    <link rel="alternate" type="text/html" href="http://rob.rho.org.uk/" />
    <link rel="self" type="application/atom+xml" href="http://rob.rho.org.uk/atom.xml" />
    <id>tag:rob.rho.org.uk,2008-07-23://2</id>
    <updated>2010-07-24T19:07:21Z</updated>
    <subtitle>Well, it had to happen sooner or later.</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.32-en</generator>

<entry>
    <title>Flattry Might Get You Somewhere</title>
    <link rel="alternate" type="text/html" href="http://rob.rho.org.uk/2010/07/flattry-might-get-you-somewher.html" />
    <id>tag:rob.rho.org.uk,2010://2.32</id>

    <published>2010-07-24T14:28:48Z</published>
    <updated>2010-07-24T19:07:21Z</updated>

    <summary>A couple of weeks ago, I saw a tweet that went along the lines of &#8220;Flattr sounds more like a pyramid scheme than a social network&#8221;. I&#8217;d never heard of this thing called Flattr, so I followed the link to...</summary>
    <author>
        <name>Rob Hague</name>
        
    </author>
    
    <category term="facebook" label="facebook" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="flattr" label="flattr" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="javascript" label="javascript" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="micropayments" label="micropayments" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="privacy" label="privacy" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="twitter" label="twitter" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="web" label="web" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://rob.rho.org.uk/">
        <![CDATA[<p>A couple of weeks ago, I saw a tweet that went along the lines of &#8220;Flattr sounds more like a pyramid scheme than a social network&#8221;. I&#8217;d never heard of this thing called Flattr, so I followed the link to <a href="http://eu.techcrunch.com/2010/07/06/is-flattr-the-new-facebook-like-but-this-time-with-real-money/">this article</a>. I found it interesting enough to write a <a href="https://twitter.com/robhague/status/18031445809">mildly facetious tweet of my own</a>, and before I knew it I&#8217;d been offered a beta invitation code by their &#8220;evangelist&#8221;. What the hell, I thought - it&#8217;s worth a tenner (or so - Flattr operates exclusively in Euros) to give it a proper try.</p>

<p>Flattr basically works like this: content creators register &#8220;things&#8221; - articles, photo sets, videos, or anything else that can be published on the web - with the site. They then add a button, similar to the &#8220;Digg/Tweet/Like This&#8221; buttons that have been cropping up all over the place for the last couple of years, to the thing in question. Consumers then come along, and, if they like what they see, click the button to flattr (yes, it&#8217;s a verb as well) the thing. So far, so conventional.</p>

<p>The interesting part is what happens next. Every Flattr user allocates a certain amount of money per month for the purposes of flattry. At the end of each month, it&#8217;s divided evenly between all of the things flattr&#8217;d that month, and the money (less a cut) is added to the creator&#8217;s Flattr account (where it can be transferred to a real bank account). Basically, it&#8217;s a low-friction way to tip creators of stuff you enjoy.</p>

<p>In other words, it&#8217;s another micropayment system. The information superhighway is littered with the corpses of failed micropayment systems dating back to the 90s (when people still used terms like &#8220;information superhighway&#8221;). What reason is there to think that things will be different this time? Well&#8230;</p>

<p>Firstly, unlike many previous systems, Flattr is <em>actually</em> low friction. Flattring something is genuinely no more complicated than clicking a link. This is partly due to advances in things like AJAX (also known as JavaScript Actually Works Now), but mainly down to the clever way Flattr is set up. The even distribution reduces the thought process to a binary decision - there&#8217;s no need to think about how <em>much</em> you want to flattr a particular thing, just whether you want to flattr it or not - and the fixed monthly amount means that you don&#8217;t need to worry about accidentally overspending. The upshot is that Flattr fits in with the way you already browse the web.</p>

<p>Secondly, the company has a clear revenue model - the cut of contributions that I mentioned above. This is predictable, as each active user by definition pays out a fixed amount each month, a fixed proportion of which goes back to Flattr. Equally important, it scales with their costs. The more active users they have, the more servers and staff they need to keep the service running, but the more revenue they&#8217;re getting in. They&#8217;re not only providing a way for people to pay for things on the web, they&#8217;ve come up with a model where users pay to keep the service itself on the web. (The fact that paying for a service you use sounds like a radical idea is testament to the weird hall of mirrors that is the web economy.)</p>

<p>At this point, you may be asking yourself, &#8220;Why do I care what the business model is? I just want the site to be there.&#8221; The reason I care is that running a non-trivial site like Flattr takes money. Significant amounts of money. The most reliable way to ensure the continued existence of such a service is for it (or, more accurately, the company behind it) to turn a profit. For this, they need a revenue stream. In most cases, services are reluctant to charge users directly, as they rightly or wrongly believe that the users expect things to be free. However, they have to get the money from somewhere. When I can&#8217;t see where this is, I get nervous.</p>

<p>Perhaps the best example of this at the moment is <a href="http://www.facebook.com/">facebook</a>. It&#8217;s recently been reported that the company is at last  <a href="http://www.theregister.co.uk/2010/06/21/sources_say_facebook_turned_2009_profit/">making a reasonable profit</a>. I am, under sufferance, a facebook user. Like everyone I know who&#8217;s signed up, I have <em>never given them any money</em>. So where is the profit coming from? Maybe it&#8217;s from creaming a percentage off all of the money people shell out to <a href="http://mediacommons.futureofthebook.org/content/cultivated-play-farmville">not play Farmville</a>. However, there&#8217;s a more obvious answer: targeted advertising. In some cases, this can be benign, even helpful. For example, in connection with the turning-a-profit story, Channel 4 News interviewed the owner of a wedding venue who&#8217;s adverts appeared on the pages of users in the relevant area when their relationship status changed to &#8220;engaged&#8221;. However, in other cases, it feels intrusive, even oppressive.</p>

<p>The worrying aspect is that, from outside the company, we have absolutely no idea what they&#8217;re doing. We just know that they&#8217;re doing <em>something</em> to turn a profit. If you hand over a monthly subscription that covers the cost of providing you with the service in question, the company has little motivation to do anything nefarious to make extra money from you. If you get the service for free, they&#8217;re practically obliged to. Another way of looking at it is that, instead of handing over cold, hard cash, you&#8217;re handing over a wealth of personal and demographic information about yourself and your social network (in the old-fashioned sense). The value of the latter is difficult to quantify, especially if you have no idea what they&#8217;re doing with it.</p>

<p>So, I like Flattr as a consumer because it&#8217;s easy, and because their business model doesn&#8217;t suggest they&#8217;re going to rip me off or sell my personal data to the highest bidder. However, how does it fare as a creator? One key objection, raised by my friend Steven, is that it doesn&#8217;t <em>require</em> you to pay for any particular thing you consume. Steven likened this to busking; I think of it more as an honesty box. However, given that the thing being payed for is neither a physical object nor a performance, I don&#8217;t think either analogy captures the whole story.</p>

<p>At this stage, it&#8217;s impossible to say whether Flattr will soar to ubiquity, or collapse under the weight of spam, fraud or indifference to join the other failed attempts at the side of the road. However, it seems to me to be an interesting experiment, at the very least. Is it an appropriate payment method for everything? Clearly not - you couldn&#8217;t rely on Flattr to fund a Hollywood movie, for example. Is it a useful option amongst many? Only time will tell, but I&#8217;m happy to spend a bit of pocket money in order to find out.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Life</title>
    <link rel="alternate" type="text/html" href="http://rob.rho.org.uk/2010/06/life.html" />
    <id>tag:rob.rho.org.uk,2010://2.31</id>

    <published>2010-06-08T07:31:36Z</published>
    <updated>2010-07-10T18:30:05Z</updated>

    <summary>I&apos;ve been messing around with JavaScript and the new HTML5 canvas element. After a couple of random experiments, I decided that I needed a well-defined goal, and I picked Conway&apos;s Game of Life. Here&apos;s the result: You&apos;ll need to turn...</summary>
    <author>
        <name>Rob Hague</name>
        
    </author>
    
    <category term="canvas" label="canvas" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="gameoflife" label="game of life" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="github" label="github" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="html5" label="html5" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="javascript" label="javascript" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="programming" label="programming" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://rob.rho.org.uk/">
        <![CDATA[<p>I've been messing around with JavaScript and the new HTML5 canvas element. After a couple of random experiments, I decided that I needed a well-defined goal, and I picked <a href="http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life">Conway's Game of Life</a>. Here's the result:</p>

<p><center></p>

<div id='life'>You'll need to turn on JavaScript (and have a recent, canvas-supporting browser) to see this.</div>

<script type="text/javascript" src="http://rob.rho.org.uk/2010/06/08/life.js"></script>

<p></center></p>

<p>Hopefully, the interface should be relatively self-explanatory (see the Wikipedia page linked above for details of the game itself). The <em>Save</em> button produces a string representing the game board; to go back to a previous state, paste such a string into the box and hit <em>Restore</em>. The whole thing should work in recent versions of Firefox, Chrome, Safari and Opera. It won't work in IE, as that browser doesn't support canvas.</p>

<p>Thing's I've learnt in doing this:</p>

<ul>
<li>The interface to canvas works pretty well, and I've not (yet) found any major gotchas between the browsers that support it.</li>
<li>JavaScript is surprisingly good (and fun) language, especially if you stick to <a href="http://javascript.crockford.com/">the good parts</a>. </li>
<li>JavaScript performance varies noticeably between browsers; in particular, Firefox (3.6) seems slower than the others. My hunch is that the difference is in the optimisation of JavaScript's somewhat unorthodox handling of arrays - this is something I'll have to look into.</li>
<li>The game works, glacially slowly, on my iPhone 3G, but the editing (which uses onclick) doesn't. I might fix this.</li>
</ul>

<p>The code is up <a href="http://robhague.github.com/CanvasLife/">on GitHub</a>.</p>

<p><strong><em>Update:</strong> I've added this entry as my first "thing" on <a href="http://flattr.com">Flattr</a>. Be gentle with me.</em></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Bring Out The Gimp</title>
    <link rel="alternate" type="text/html" href="http://rob.rho.org.uk/2010/04/bring-out-the-gimp.html" />
    <id>tag:rob.rho.org.uk,2010://2.30</id>

    <published>2010-04-20T20:03:10Z</published>
    <updated>2010-04-20T20:10:05Z</updated>

    <summary>The Tories have launched a new poster campaign with such a&#8230; strong message that I felt compelled to produce my own version. Sadly, I imagine this one would also go down well at Conservative Home. (The original image is from...</summary>
    <author>
        <name>Rob Hague</name>
        
    </author>
    
    <category term="election" label="election" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="gimp" label="gimp" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://rob.rho.org.uk/">
        <![CDATA[<p>The Tories have launched <a href="http://www.guardian.co.uk/politics/blog/2010/apr/20/1">a new poster campaign</a> with such a&#8230; strong message that I felt compelled to produce my own version. Sadly, I imagine this one would also go down well at <a href="http://conservativehome.blogs.com/">Conservative Home</a>.</p>

<p><center>
  <img src="http://rob.rho.org.uk/2010/04/20/subsistence.jpg" alt="Subsistence is too good for them">
</center></p>

<p>(The original image is from <a href="http://www.conservatives.com/News/Photo_Galleries.aspx">here</a> - I&#8217;m assuming, given the Quatro thing, they&#8217;ll have a sense of humour about this sort of thing.)</p>
]]>
        

    </content>
</entry>

<entry>
    <title>The Photoshop Election</title>
    <link rel="alternate" type="text/html" href="http://rob.rho.org.uk/2010/04/the-photoshop-election.html" />
    <id>tag:rob.rho.org.uk,2010://2.29</id>

    <published>2010-04-14T07:04:03Z</published>
    <updated>2010-04-14T07:16:10Z</updated>

    <summary>Sod Mumsnet - what with MyDavidCameron.com, the Guardian&#8217;s April Fools joke and the Fire Up The Quatro back-and-forth, this is shaping up to be the Photoshop election. I might not know about biscuits, but I do know about hastily cobbled...</summary>
    <author>
        <name>Rob Hague</name>
        
    </author>
    
    <category term="election" label="election" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="gimp" label="gimp" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="manifesto" label="manifesto" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="photoshop" label="photoshop" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://rob.rho.org.uk/">
        <![CDATA[<p>Sod <a href="http://www.mumsnet.com/">Mumsnet</a> - what with <a href="http://mydavidcameron.com">MyDavidCameron.com</a>, <a href="http://www.guardian.co.uk/politics/2010/apr/01/labour-gordon-brown-hard-man">the Guardian&#8217;s April Fools joke</a> and the <a href="http://news.bbc.co.uk/1/hi/8601781.stm">Fire Up The Quatro back-and-forth</a>, this is shaping up to be the Photoshop election. I might not know about biscuits, but I <em>do</em> know about hastily cobbled together composite images of questionable funniness. So, here are a couple of efforts based on the recent manifesto launches (actually put together in <a href="http://www.gimp.org/">the GIMP</a>, natch):</p>

<p><center>
<img src="http://rob.rho.org.uk/2010/04/14/labman.jpg" alt="Labour Manifesto">
<img src="http://rob.rho.org.uk/2010/04/14/conman.jpg" alt="Conservative Manifesto">
</center></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Weekend Project: Worksheets</title>
    <link rel="alternate" type="text/html" href="http://rob.rho.org.uk/2010/04/weekend-project-worksheets.html" />
    <id>tag:rob.rho.org.uk,2010://2.28</id>

    <published>2010-04-01T19:53:32Z</published>
    <updated>2010-04-01T20:53:30Z</updated>

    <summary>Last week, I had need to run some queries against the internal database at work. These weren&#8217;t reports that needed to be run forever more, but I wanted to keep a record of them - both the queries and the...</summary>
    <author>
        <name>Rob Hague</name>
        
    </author>
    
    <category term="database" label="database" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="github" label="github" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ui" label="ui" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="web" label="web" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="weekendproject" label="weekend project" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://rob.rho.org.uk/">
        <![CDATA[<p>Last week, I had need to run some queries against the internal database at work. These weren&#8217;t reports that needed to be run forever more, but I wanted to keep a record of them - both the queries and the results. I ended up writing my queries into a text file, evaluating them using Emacs&#8217; SQL mode, and pasting the results back into the file. This worked quite well, but I thought I could do better.</p>

<p>I&#8217;ve been wondering about worksheet-style interface, as found in, for example, the <a href="http://www.sagemath.org/">Sage</a> open source maths system. SQL, at least if you&#8217;re running SELECT queries, is ideal for this, as each query is independent, so you don&#8217;t have to manage things like ordering and mutation. Hence, last weekend, I knocked up a rough draft of what such an interface might look like. I&#8217;ve tidied it up a little, and an posted it <a href="http://github.com/robhague/worksheets">here</a>. There&#8217;s still plenty to add (support for other databases, UI improvements, some semblance of security), but the basic functionality is there, and it should serve as a basis for further experiments.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>NaNoWriMo 2009</title>
    <link rel="alternate" type="text/html" href="http://rob.rho.org.uk/2009/12/nanowrimo-2009.html" />
    <id>tag:rob.rho.org.uk,2009://1.23</id>

    <published>2009-12-01T22:48:39Z</published>
    <updated>2009-12-05T19:16:42Z</updated>

    <summary> So, November is over. And, fifty-thousand and some words later, I&#8217;ve managed to do it again. In the middle of Sunday afternoon, I wrote the last words of Homeopath, a somewhat odd tale of intrigue, rage, and maybe murder....</summary>
    <author>
        <name>Rob Hague</name>
        
    </author>
    
    <category term="nanowrimo" label="Nanowrimo" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="writing" label="writing" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://rob.rho.org.uk/">
        <![CDATA[<p><a href="http://www.nanowrimo.org"><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="nano_09_winner_inv_120x240.png" src="http://rob.rho.org.uk/2009/12/02/nano_09_winner_inv_120x240.png" width="120" height="240" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></span></a></p>

<p>So, November is over. And, fifty-thousand and some words later, I&#8217;ve managed to do it again. In the middle of Sunday afternoon, I wrote the last words of <em>Homeopath</em>, a somewhat odd tale of intrigue, rage, and maybe murder. But maybe not. In any case, it&#8217;s definitely written, and it&#8217;s definitely more than 50,000 words, and so I&#8217;ve won <a href="http://www.nanowrimo.org">NaNoWriMo 2009</a>. Go me.</p>

<p>This year, I&#8217;m not going to post the entire thing immediately. Instead, I&#8217;m going to have a break from it for a while, then revisit and edit it in a month or two. So, no novel in this post, I&#8217;m afraid. I can, however, tell you some thing&#8217;s I&#8217;ve learnt over the last month:</p>

<ul>
<li>Planning helps; I didn&#8217;t plan in any detail, and ended up wandering around for 25,000 words setting the scene before I got on with the plot.</li>
<li>Writing in the first person gives me the urge to constantly point out that I don&#8217;t necessarily share the opinions of my protagonist. Make of that what you will.</li>
<li><a href="http://www.gnu.org/software/emacs/">Emacs</a> and <a href="http://daringfireball.net/projects/markdown/">MarkDown</a> make for a pretty nice editing environment for prose. <a href="http://willmore.eu/software/isolator/">Isolator</a> is also handy.</li>
</ul>

<p>The main thing I&#8217;m intent on taking away from the experience, though, is getting back into the habit of actually doing something substantial - writing something, programming something, practising something - when I get home from work in the evening, as oppose to just collapsing in front of the TV. NaNoWriMo imposed a structure where this wasn&#8217;t an option. I&#8217;m hoping that I&#8217;ll be able to keep it up now that it&#8217;s finished.</p>

<p>Finally, two graphs (because graphs are traditional). This first graph shows my progress over the course of the month; basically, things went a bit pear-shaped early on, but I managed to make the time up over the subsequent weeks.</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="wordcount_totals.png" src="http://rob.rho.org.uk/2009/12/01/wordcount_totals.png" width="599" height="215" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span></p>

<p>The second graph shows my daily writing rate; the red line marks 1,666 words per day, which is the average rate (more or less) than you need to keep up to make it to 50,000 within the month.</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="wordcount_daily.png" src="http://rob.rho.org.uk/2009/12/01/wordcount_daily.png" width="595" height="238" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span></p>

<p>Fascinating, I&#8217;m sure you&#8217;ll agree.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Learning by experience, and how not to do it</title>
    <link rel="alternate" type="text/html" href="http://rob.rho.org.uk/2009/10/learning-by-experience-and-how.html" />
    <id>tag:rob.rho.org.uk,2009://1.22</id>

    <published>2009-10-31T17:09:19Z</published>
    <updated>2009-10-31T18:25:48Z</updated>

    <summary>In 2002, I signed up for NaNoWriMo, an insane Internet pseudo-contest to write a novel in a month. I managed it, and you can see the results here (be gentle - it was written in a month, and I haven&#8217;t...</summary>
    <author>
        <name>Rob Hague</name>
        
    </author>
    
    <category term="nanowrimo" label="Nanowrimo" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="writing" label="writing" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://rob.rho.org.uk/">
        <![CDATA[<p>In 2002, I signed up for <a href="http://www.nanowrimo.org">NaNoWriMo</a>, an insane Internet pseudo-contest to write a novel in a month. I managed it, and you can see the results <a href="http://www.rho.org.uk/archive/nanowrimo/novel1.html">here</a> (be gentle - it was written in a month, and I haven&#8217;t revisited it with an editor&#8217;s pen). For a few years, I paid it no mind, but this year I seem to be surrounded by people who&#8217;re taking up the challenge, so I&#8217;ve succumb to peer pressure and <a href="http://www.nanowrimo.org/eng/user/550051#">signed up again</a>. Wish me luck.</p>

<p>P.S. - For anyone who has an nascent novelistic idea (or even a title), and have, say, mentioned it in the pub, then it&#8217;s not too late to sign up. You know who you are.</p>

<p>P.P.S. - Regarding the <a href="http://rob.rho.org.uk/2009/09/silverservice-and-snow-leopard.html">previous entry</a>, the bad news is that I&#8217;ll not have a chance to work on SilverService for at least a month. The good news is that I&#8217;ve already solved the new entry problem, which was the most serious issue with the current version. If you have the OS X developer tools, you can grab the latest version from <a href="http://github.com/robhague/SilverService">GitHub</a> to get the fix.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>SilverService and Snow Leopard</title>
    <link rel="alternate" type="text/html" href="http://rob.rho.org.uk/2009/09/silverservice-and-snow-leopard.html" />
    <id>tag:rob.rho.org.uk,2009://1.21</id>

    <published>2009-09-24T08:06:34Z</published>
    <updated>2009-09-24T08:58:16Z</updated>

    <summary> Snow Leopard, the latest version of Mac OS X, was billed as &#8220;no new features&#8221;, but actually comes with a whole raft of minor improvements. One of these is improved handling of Services, a vastly under-rated feature inherited from...</summary>
    <author>
        <name>Rob Hague</name>
        
    </author>
    
    <category term="macosx" label="mac os x" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="silverservice" label="silverservice" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="snowleopard" label="snow leopard" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="software" label="software" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://rob.rho.org.uk/">
        <![CDATA[<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="silverservice-nom.jpg" src="http://rob.rho.org.uk/silverservice-nom.jpg" width="280" height="311" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /></span>
Snow Leopard, the latest version of Mac OS X, was billed as &#8220;no new features&#8221;, but actually comes with a whole raft of minor improvements. One of these is improved handling of Services, a vastly under-rated feature inherited from NeXT. If you&#8217;re not up to speed on Services, or the improvements in Snow Leopard, <a href="http://www.macosxautomation.com/services/learn/tut01/index.html">this website</a> has a good overview.</p>

<p>This is of particular interest to me, because it has ramifications for a piece of software I wrote a little while ago: <a href="http://www.rho.org.uk/software/silverservice/">SilverService</a>. Specifically, I <a href="http://twitter.com/robhague/status/3602298300">wondered</a> if the ability to easily creates services in Automator renders SilverService obsolete. One of the areas in which I was thinking of extending the tool was the ability to create longer scripts, something which is definitely catered for well in Automator. However, the Automator approach is somewhat heavyweight, so I think there&#8217;s still value in a more focussed tool for one-liners.</p>

<p>With that in mind, I&#8217;ve dusted off the (now pretty ancient) source code, and got it compiling under the latest XCode. It basically works, but has at least one major interface bug (newly created services do not appear in the table until you restart the application), and one more minor problem that has been present since the start (the services only work when the application is running). I plan to look into these over the next few weeks, with the aim of producing an updated version with bug fixes but no new features. I&#8217;ve also created a <a href="http://github.com/robhague/SilverService">SilverService repository on GitHub</a>, if you want to have a hack yourself.</p>

<p>As ever, if you have any comments or suggestions about SilverService, I&#8217;d love to hear them, either via the comments below, <a href="mailto:rob@rho.org.uk">e-mail</a> or <a href="http://twitter.com/robhague">Twitter</a>.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>LinkSys WRT54GS DHCP Problem (Mac OS and Linux)</title>
    <link rel="alternate" type="text/html" href="http://rob.rho.org.uk/2009/05/linksys-wrt54gs-dhcp-problem.html" />
    <id>tag:rob.rho.org.uk,2009://1.19</id>

    <published>2009-05-03T15:22:53Z</published>
    <updated>2009-05-03T16:17:06Z</updated>

    <summary>On Friday, I decided had a go at fixing the occasional dropped connections I&#8217;ve been seeing between Windows machines and my LinkSys WRT54GS (v5,1) router. As part of the process, I upgraded the firmware to what I assumed was the...</summary>
    <author>
        <name>Rob Hague</name>
        
    </author>
    
    <category term="dhcp" label="dhcp" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="linksys" label="linksys" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="linux" label="linux" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="macosx" label="mac os x" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="problem" label="problem" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="router" label="router" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="wrt54gs" label="wrt54gs" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://rob.rho.org.uk/">
        <![CDATA[<p>On Friday, I decided had a go at fixing the occasional dropped connections I&#8217;ve been seeing between Windows machines and my LinkSys WRT54GS (v5,1) router. As part of the process, I upgraded the firmware to what I assumed was the latest version. That was a mistake. After the upgrade, the router&#8217;s DHCP server would no longer dole out an IP address to Mac OS X or Linux clients, either wired or wirelessly (Windows XP clients seem unaffected).</p>

<p>It turns out that the solution is to get the <em>latest</em> latest firmware. The Cisco/LinkSys page offers version 1.50.9 of the firmware as the most recent version for most models; this version exhibits the problem. Instead, try version 1.52.2 available here:</p>

<p><a href="http://forums.linksys.com/linksys/board/message?board.id=Wireless_Routers&amp;message.id=74229">LinkSys WRT54GS Firmware version 1.52.2</a></p>

<p>The solution is simple, but took me a while to find. Hopefully, this entry will save time for anyone experiencing similar problems.</p>
]]>
        

    </content>
</entry>

<entry>
    <title><![CDATA[Marketing &amp; Social Media - Another Way To Do It Right]]></title>
    <link rel="alternate" type="text/html" href="http://rob.rho.org.uk/2009/04/marketingsocialmedia.html" />
    <id>tag:rob.rho.org.uk,2009://1.18</id>

    <published>2009-04-24T07:04:13Z</published>
    <updated>2009-04-24T07:55:18Z</updated>

    <summary>Many, many people will charge you money to shill your product on Twitter and Facebook. Many people have written many things on why this doesn&#8217;t really work, and I won&#8217;t rehash those points here. A little while ago, I came...</summary>
    <author>
        <name>Rob Hague</name>
        
    </author>
    
    <category term="capo" label="capo" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="marketing" label="marketing" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="socialmedia" label="social media" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="twitter" label="twitter" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://rob.rho.org.uk/">
        <![CDATA[<p>Many, many people will charge you money to shill your product on Twitter and Facebook. Many people have written many things on why this doesn&#8217;t really work, and I won&#8217;t rehash those points here. A little while ago, I came across <a href="http://a.wholelottanothing.org/2009/03/this-is-how-social-media-really-works.html">this</a> post describing an example of how social media can help with product marketing - basically, if your product is good, and you don&#8217;t actively prevent people sharing information about it, your customers will market it for you. (It occurs to me that you could make the same argument about The Pirate Bay, but that&#8217;s a whole other can of worms.)</p>

<p>In any case, yesterday I encountered another way that social media and product marketing can be mixed effectively. The sequence of events went like this:</p>

<p>1) I see a <a href="http://daringfireball.net/linked/2009/04/21/capo">link on Daring Fireball</a> to a <a href="http://supermegaultragroovy.com/products/Capo/">Capo</a>, a Mac application for playing songs in various ways (slowly, looped, and so on) so that you learn them on the guitar.</p>

<p>2) I <a href="http://twitter.com/robhague/status/1594179985">tweet</a> that it looks interesting, but I don&#8217;t really have the musical ear to take advantage of it.</p>

<p>3) A little while later, the developer (SuperMegaUltraGroovy) <a href="http://twitter.com/capoapp/status/1594421370">replies</a>, encouraging me to try and learn, and pointing me at a video that might help.</p>

<p>There are two important points here. Firstly, it wasn&#8217;t a generic mass-mailed press release, but rather a specific reply to my post. That differentiates it from spam. Secondly, it was clearly from SuperMegaUltraGroovy - they weren&#8217;t pretending to be a neutral observer or satisfied customer. That differentiates it from shilling.</p>

<p>The end result is that, from relatively little effort on the part of SuperMegaUltraGroovy, I&#8217;ve come away with a very positive impression of the company, and am seriously considering buying a $39 application that I previously only had a passing interest in. </p>

<p>So, it seems there are ways to use Twitter and Facebook to promote your company or products without pissing people off. It also seems like a way that indie developers can differentiate themselves from bigger companies - I can&#8217;t see the latter pulling this off without it seeming contrived. We&#8217;ll see if this becomes the accepted way of doing things, or if more irritating methods prevail. Given that nobody seems to have figured out a way to make the irritating methods work yet, there&#8217;s hope.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>The Wire</title>
    <link rel="alternate" type="text/html" href="http://rob.rho.org.uk/2009/04/the-wire.html" />
    <id>tag:rob.rho.org.uk,2009://1.17</id>

    <published>2009-04-10T14:55:24Z</published>
    <updated>2009-04-10T15:19:37Z</updated>

    <summary>I&#8217;ve finally watched the first episode of The Wire, and I get the impression that might be every bit as good as everyone says it is. One thing that is beyond doubt, though, is that it doesn&#8217;t take prisoners in...</summary>
    <author>
        <name>Rob Hague</name>
        
    </author>
    
    <category term="thewire" label="the wire" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="tv" label="tv" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://rob.rho.org.uk/">
        <![CDATA[<p>I&#8217;ve finally watched the first episode of The Wire, and I get the impression that might be every bit as good as everyone says it is. One thing that is beyond doubt, though, is that it doesn&#8217;t take prisoners in terms of depth or complexity. I don&#8217;t think that this is due to the accents or slang - I&#8217;ve read in various places that this is a barrier, but I didn&#8217;t have a problem - but rather that a very rich and intricate world is thrust upon you in one go. In introducing both a large number of characters and an unfamiliar setting with little preamble or explanation, it does ask a lot of the viewer. For me, at least, this infinitely preferable to being spoon-fed.</p>

<p>Given the BBC&#8217;s insane 5-episodes-a-week schedule, combined with the fact that Tori isn&#8217;t keen, I&#8217;m unlikely to be able to keep up with it for very long, but I&#8217;m going to give it a try.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>The Ties That Bind</title>
    <link rel="alternate" type="text/html" href="http://rob.rho.org.uk/2009/02/the-ties-that-bind.html" />
    <id>tag:rob.rho.org.uk,2009://1.16</id>

    <published>2009-02-22T15:13:00Z</published>
    <updated>2009-02-22T15:13:38Z</updated>

    <summary>The other day, I was reading a web page, and something strange happened. Without warning, a woman in a red uniform appeared, and started pushing things about. &#8220;This is it,&#8221; I thought, &#8220;I&#8217;ve cracked. The walls of reality are coming...</summary>
    <author>
        <name>Rob Hague</name>
        
    </author>
    
    <category term="chrome" label="chrome" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="emacs" label="emacs" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="firefox" label="firefox" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="lockin" label="lock-in" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="opensource" label="open source" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://rob.rho.org.uk/">
        <![CDATA[<p>The other day, I was reading a web page, and something strange happened. Without warning, a woman in a red uniform appeared, and started pushing things about. &#8220;This is it,&#8221; I thought, &#8220;I&#8217;ve cracked. The walls of reality are coming tumbling down.&#8221; However, it turned out that I wasn&#8217;t, in fact, going mad, but was instead experiencing something I&#8217;d been deprived of for quite a few years now; animated banner advertising.</p>

<p>The reason for this brief psychodrama was that I was trying out <a href="http://www.google.com/chrome">Google Chrome</a>. My general impressions of it are almost universally positive, but I switched back to <a href="http://www.mozilla.com/en-US/firefox/">Firefox</a> because of something I didn&#8217;t expect: lock-in, where the way a piece of software works makes it difficult or impossible to move to an alternative. Usually, lock-in is something associated with proprietary software and formats, MS Word being a typical example. Firefox and Chrome are both open source, and deal in the open standards that make up the web, so what&#8217;s going on?</p>
]]>
        <![CDATA[<p>Firstly, being open source does not prevent lock-in. The issue at hand isn&#8217;t the program - in fact, quite the opposite. The less relevant the program is, the better. What&#8217;s important is your data, and hence the thing that makes the difference is the format in which the data is kept. In the case of a web browser, the data that it deals with day-to-day is in open, standard formats - HTML, CSS, PNG - so that shouldn&#8217;t be a problem. The lock-in comes instead from the configuration. This used to mean bookmarks, but that&#8217;s now an all-but-solved problem - pretty much every browser worth considering will happily import your bookmarks from all of the others.</p>

<p>The thing that eventually drove me back to Firefox, and was behind my unexpected visit from the cabin crew, was the lack of extensions. For example, I&#8217;m so used to <a href="http://adblockplus.org/en/">AdBlock</a> and <a href="http://noscript.net/">NoScript</a> that I forget that they&#8217;re there, until they suddenly aren&#8217;t. Hence, as Chrome doesn&#8217;t (yet) have either, migrating from Firefox becomes a lot less tempting, regardless of how well the young pretender does everything else (very well, for the record).</p>

<p>Extensions, at first sight, look like an issue of lock-in, as I can&#8217;t take the extensions I use in Firefox and run them in Chrome. However, it isn&#8217;t - it&#8217;s merely a functionality issue. For example, another extension I use a lot is <a href="http://getfirebug.com/">Firebug</a>, a web page development tool. As with the others, this only works in Firefox. However, in this case I don&#8217;t really care, as Chrome has pretty good development tools built in. The functionality is what I&#8217;m interested in; as long as I can migrate between tools, I can use whichever meets my needs.</p>

<p>So, the main thing that prevented me switching wasn&#8217;t really lock-in, but rather that Chrome doesn&#8217;t yet meet my needs. However, there is a lock-in issue lurking. <a href="https://addons.mozilla.org/en-US/firefox/addon/748">GreaseMonkey</a> allows me to write user scripts that tweak web-pages in pretty much any way I like. These scripts <em>are</em> subject to lock-in; however long I wait, Google aren&#8217;t going to add a switch to Chrome to shuffle around Bugzilla pages to reflect my personal whim. This sort of thing blurs the line between functionality and data, but in lock-in terms is definitely on the side of data. User scripts are essentially a data format, and in fact are not exclusive to GreaseMonkey; <a href="http://www.opera.com/">Opera</a> also supports them, and Chrome is working on it. When the support is there, I&#8217;ll be giving Chrome another look.</p>

<p>There&#8217;s a similar situation where things don&#8217;t work out quite so neatly. There&#8217;s an application that I spend most of screen-staring time in even more than a web browser; the <a href="http://www.gnu.org/software/emacs/">Emacs</a> editor. This has the problems of extensions and user scripts writ large - I&#8217;ve not only collected a vast array of extension and customised the behaviour of the editor to behave the way I like it, but have produced reams of my own elisp (Emacs Lisp) code to add substantial chunks of functionality that is unlikely to turn up in other applications any time soon. Unlike user scripts, elisp isn&#8217;t really an independent format - it&#8217;s inextricably bound up with Emacs and the way it works, which in turn consists of more than thirty years of innovation, refinement and cruft.</p>

<p>In theory, you could implement an elisp interpreter in another editor, but if you did one good enough to be useful, then you wouldn&#8217;t have a distinct editor any more - you&#8217;d just have another version of Emacs. If I ever move to truly different editor, I&#8217;ll have to rewrite my custom extensions from scratch, which would be a significant amount of effort. It&#8217;s usually easier to extend Emacs to include whatever features I want from the competitor, using yet more elisp. Now that&#8217;s lock-in.</p>
]]>
    </content>
</entry>

<entry>
    <title>Happy Birthday</title>
    <link rel="alternate" type="text/html" href="http://rob.rho.org.uk/2009/01/happy-birthday.html" />
    <id>tag:rob.rho.org.uk,2009://1.15</id>

    <published>2009-01-24T18:55:43Z</published>
    <updated>2009-01-24T19:40:05Z</updated>

    <summary> --&gt; This is a Mac SE that I acquired at a Computer Preservation Society give-away a few years back. The 20MB (yes, 20 Megabyte) hard drive is a bit temperamental, but after leaving it next to a radiator for...</summary>
    <author>
        <name>Rob Hague</name>
        
    </author>
    
    <category term="mac" label="mac" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://rob.rho.org.uk/">
        <![CDATA[<p><center>
<object width="326" height="265"><param name="movie" value="http://www.youtube.com/v/R706isyDrqI&amp;hl=en&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/R706isyDrqI&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="326" height="265"></embed></object>
<img alt="mac25.jpg" src="http://rob.rho.org.uk/2009/01/24/mac25.jpg" width="275" height="265">
</center>
<!--
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="mac25.jpg" src="http://rob.rho.org.uk/2009/01/24/mac25.jpg" width="473" height="455" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>
-->
This is a Mac SE that I acquired at a Computer Preservation Society give-away a few years back. The 20MB (yes, 20 <i>Mega</i>byte) hard drive is a bit temperamental, but after leaving it next to a radiator for a while I managed to get it to boot on the fifth or sixth attempt. The application shown is, of course, HyperCard.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Fooled and Poked By Random Liars</title>
    <link rel="alternate" type="text/html" href="http://rob.rho.org.uk/2009/01/fooled-and-poked-by-random-lia.html" />
    <id>tag:rob.rho.org.uk,2009://1.14</id>

    <published>2009-01-03T12:10:17Z</published>
    <updated>2009-01-03T13:56:39Z</updated>

    <summary> In 2008, the Invisible Hand was caught in the Invisible Till, and markets around the globe crashed in one of those freak, once-in-a-million-centuries events that happens every four or five years. As such, it seemed like a good time...</summary>
    <author>
        <name>Rob Hague</name>
        
    </author>
    
    <category term="books" label="books" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="economics" label="economics" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="probability" label="probability" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="wallstreet" label="wall street" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://rob.rho.org.uk/">
        <![CDATA[<p><a href="http://www.amazon.co.uk/Fooled-Randomness-Hidden-Chance-Markets/dp/0141031484/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1230987597&amp;sr=1-1"><img src="http://www.penguin.co.uk/static/covers/all/4/8/9780141031484L.jpg" style="float: right; margin-left: 2px;" height="100px"></a></p>

<p><a href="http://www.amazon.co.uk/Liars-Poker-Playing-Money-Markets/dp/0340767006"><img src="http://217.169.40.204/websites/images/store/books-web/9780340839966-1-2.jpg" style="float: right; margin-left: 2px;" height="100px"></a></p>

<p>In 2008, the Invisible Hand was caught in the Invisible Till, and markets around the globe crashed in one of those freak, once-in-a-million-centuries events that happens every four or five years. As such, it seemed like a good time to improve my woefully limited knowledge of finance, if only to learn what used to be in that big, smoking crater. To this end, I borrowed a couple of books written by prominent nay-sayers in the field.</p>
]]>
        <![CDATA[<p>The first is <a href="http://www.amazon.co.uk/Liars-Poker-Playing-Money-Markets/dp/0340767006">Liar&#8217;s Poker</a>, by Michael Lewis. This is an account of his time at Wall Street trading firm Saloman Brothers during the 1980&#8217;s. While mostly autobiographical, it contains a large chunk (around a third) dealing with the emerging mortgage securities market. This doesn&#8217;t have the same immediacy as the personal recollections, but the subject matter is particular interesting given the origins of the current, ahem, hiccup.</p>

<p>In fact, the main thing that strikes you reading Liar&#8217;s Poker is that, even though it was written twenty years ago, it feels as if it (or something very like it) could have been written today. Lewis himself more or less says as much in a <a href="http://www.portfolio.com/news-markets/national-news/portfolio/2008/11/11/The-End-of-Wall-Streets-Boom">recent article</a>. It&#8217;s both worrying and very entertaining, in a schadenfreudery kind of way, but you do need to bear in mind that it was written by one of the winners, someone who got out mostly intact. It needs to be read with a huge heaping of salt, and an understanding of survivorship bias. This leads us onto the next book.</p>

<p><a href="http://www.amazon.co.uk/Fooled-Randomness-Hidden-Chance-Markets/dp/0141031484/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1230987597&amp;sr=1-1">Fooled by Randomness</a>, by Nassim Nicholas Taleb, bears the subtitle &#8220;The Hidden Role of Chance in Life and the Markets&#8221;. It&#8217;s a kind of precursor to the author&#8217;s better-known &#8220;The Black Swan&#8221; (which is waiting for me on my shelf). It covers probability, and people&#8217;s general inability to cope with it both intellectually and emotionally. Appropriately enough, given this this subject matter, it manages to be both pleasantly personal and reasonably rigorous, though I get the impression that the author would disavow any claim to the latter.</p>

<p>Much of the technical ground (survivorship bias, sampling, conditional probabilities, reptilian brain) covered seemed familiar, though I couldn&#8217;t put my finger on where I&#8217;d picked it up. Nevertheless, the presentation is engaging, and a worthwhile overview and refresher. More interesting is the context in which Taleb puts these ideas. His twin causes seem to be scepticism, and an acceptance of human irrationality (especially your own). This raises it above the field of cosy, anecdote-based paperbacks that seem to be required reading for politicians these days. However, possibly I&#8217;m exhibiting an emotional response to just having invested time in reading the book. You never know.</p>
]]>
    </content>
</entry>

<entry>
    <title>Death by typing</title>
    <link rel="alternate" type="text/html" href="http://rob.rho.org.uk/2008/11/death-by-typing.html" />
    <id>tag:rob.rho.org.uk,2008://1.13</id>

    <published>2008-11-23T14:07:18Z</published>
    <updated>2008-11-23T15:13:44Z</updated>

    <summary>When I first published the previous entry, I&#8217;d mistyped the quote in the title as &#8220;You Killed Anne L. Retentive With A Type?&#8221; I corrected this, but then an alternative script for the comic in question popped into my head....</summary>
    <author>
        <name>Rob Hague</name>
        
    </author>
    
    <category term="comics" label="comics" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="dilbert" label="dilbert" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="gimp" label="gimp" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="haskell" label="haskell" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="programming" label="programming" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="puns" label="puns" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://rob.rho.org.uk/">
        <![CDATA[<p>When I first published the previous entry, I&#8217;d mistyped the quote in the title as &#8220;You Killed Anne L. Retentive With A Type?&#8221; I corrected this, but then an alternative script for the comic in question popped into my head. &#8220;Hang on,&#8221;, I thought, &#8220;hasn&#8217;t Dilbert just grown all sorts of groovy, funky Web 2.0 shenanigans that allow you do do those &#8216;mash up&#8217; things the kids are talking about these days?&#8221; (Free tip: if you want to read Dilbert without all of the extraneous bells and whistles, try <a href="http://dilbert.com/fast/">http://dilbert.com/fast/</a>.)</p>

<p>It turns out that you <em>can</em> produce modified versions of comics, but only in fairly limited ways. However, I do still have the GIMP:</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="deathbytyping.png" src="http://rob.rho.org.uk/2008/11/23/deathbytyping.png" width="560" height="184" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span></p>

<p>(<a href="http://dilbert.com/fast/2000-03-29/">Original strip</a> at
<a href="http://www.dilbert.com">Dilbert.com</a>)</p>
]]>
        

    </content>
</entry>

</feed>
