<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:planet="http://planet.intertwingly.net/" xmlns:indexing="urn:atom-extension:indexing" indexing:index="no"><access:restriction xmlns:access="http://www.bloglines.com/about/specs/fac-1.0" relationship="deny"/>
  <title>Planet Alkali</title>
  <updated>2012-02-02T21:00:06Z</updated>
  <generator uri="http://intertwingly.net/code/venus/">Venus</generator>
  <author>
    <name>Jon Dowland</name>
    <email>jon+planet.alcopop.org@alcopop.org</email>
  </author>
  <id>http://news.alcopop.org/atom.xml</id>
  <link href="http://news.alcopop.org/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://news.alcopop.org/" rel="alternate"/>

  <entry>
    <id>http://jmtd.net/log/early_start/</id>
    <link href="http://jmtd.net/log/early_start/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/early_start/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/early_start/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>An Early Start</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><div class="image">
<a href="http://jmtd.net/log/../indexpics/early_start.jpg"><img alt="early start" class="img" height="300" src="http://jmtd.net/log/./early_start/300x-early_start.jpg" width="300"/></a>

</div>

<p>An early start.</p></div>
    </content>
    <updated>2012-01-27T15:33:05Z</updated>
    <published>2012-01-27T08:00:00Z</published>
    <category term="indexpics"/>
    <category term="photos"/>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2012-01-27T15:33:05Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jmtd.net/log/music_for_our_future/</id>
    <link href="http://jmtd.net/log/music_for_our_future/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/music_for_our_future/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/music_for_our_future/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>Music for Our Future</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><div class="image">
<a href="http://jmtd.net/log/./music_for_our_future/mfof_010510.jpg"><img alt="cover" class="img" height="174" src="http://jmtd.net/log/./music_for_our_future/260x175-mfof_010510.jpg" width="260"/></a>

</div>

<p>In 2010, a collaboration between the SyFy channel, <a href="http://www.createdigitalmusic.com/">Create Digital
Music</a>, <a href="http://xlr8r.com/">XLR8R</a> and
<a href="http://pitchfork.com/">Pitchfork</a> created "Music for our Future": a
compilation album of free music inspired by the TV show "Caprica".</p>

<p>XLR8R hosted it but their page for the release has subsequently disappeared.
A few people here and there on the 'net have been asking for a copy, so here
it is on archive.org: <a href="http://www.archive.org/details/MusicForOurFuture">http://www.archive.org/details/MusicForOurFuture</a>.</p>

<p><a href="http://createdigitalmusic.com/2010/01/a-free-futuristic-music-compilation-for-syfys-caprica-stories-behind-the-tracks/#idc-cover">Some background info, photos etc. via CDM</a>.</p></div>
    </content>
    <updated>2012-01-25T10:35:14Z</updated>
    <published>2012-01-25T10:28:01Z</published>
    <category term="music"/>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2012-01-27T15:33:05Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blog.brillskills.com/?p=324</id>
    <link href="http://blog.brillskills.com/2012/01/interesting-webkit-css-bugs/" rel="alternate" type="text/html"/>
    <title>Interesting Web Platform Bugs</title>
    <summary>This is mainly for my own purposes, so I don’t have to hunt through Bugzilla and Peter Beverloo’s blog to find the one I’m looking for. Feature Webkit Rev. landed Firefox Rev. landed Notes Line Grid 76197 105176 N/A N/A Kyoto Proposal New Flexbox 62048 N/A 666041 N/A Grid Layout 60731 N/A 616605 N/A Regions [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>This is mainly for my own purposes, so I don’t have to hunt through Bugzilla and <a href="http://peter.sh/">Peter Beverloo’s blog</a> to find the one I’m looking for.</p>

<table id="cssBugz">
<thead>
<tr>
<th>Feature</th>
<th>Webkit</th>
<th>Rev. landed</th>
<th>Firefox</th>
<th>Rev. landed</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="http://dev.w3.org/csswg/css-line-grid/">Line Grid</a></td>
<td><a href="https://bugs.webkit.org/show_bug.cgi?id=76197">76197</a></td>
<td><a href="http://trac.webkit.org/changeset/105176">105176</a></td>
<td>N/A</td>
<td>N/A</td>
<td><a href="http://lists.w3.org/Archives/Public/www-style/2011Jul/0237.html">Kyoto Proposal</a></td>
</tr>
<tr>
<td><a href="http://dev.w3.org/csswg/css3-flexbox/">New Flexbox</a></td>
<td><a href="https://bugs.webkit.org/show_bug.cgi?id=62048">62048</a></td>
<td>N/A</td>
<td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=666041">666041</a></td>
<td>N/A</td>
<td/>
</tr>
<tr>
<td><a href="http://dev.w3.org/csswg/css3-grid-align/">Grid Layout</a></td>
<td><a href="https://bugs.webkit.org/show_bug.cgi?id=60731">60731</a></td>
<td>N/A</td>
<td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=616605">616605</a></td>
<td>N/A</td>
<td/>
</tr>
<tr>
<td><a href="http://dev.w3.org/csswg/css3-regions/">Regions</a></td>
<td><a href="https://bugs.webkit.org/show_bug.cgi?id=57312">57312</a></td>
<td>N/A</td>
<td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=674802">674802</a></td>
<td>N/A</td>
<td/>
</tr>
<tr>
<td><a href="http://www.w3.org/TR/css3-values/#calc">Calc</a></td>
<td><a href="https://bugs.webkit.org/show_bug.cgi?id=16662">16662</a></td>
<td>N/A</td>
<td colspan="2"><a href="https://developer.mozilla.org/en/CSS/calc">Finished</a></td>
<td/>
</tr>
<tr>
<td><a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-style-element">Scoped Stylesheets</a></td>
<td><a href="https://bugs.webkit.org/show_bug.cgi?id=49142">49142</a></td>
<td>N/A</td>
<td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=508725">508725</a></td>
<td>N/A</td>
<td/>
</tr>
<tr>
<td><a href="https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html">CSS Filter Effects</a></td>
<td><a href="https://bugs.webkit.org/show_bug.cgi?id=68469">#68469</a></td>
<td>N/A</td>
<td>N/A</td>
<td>N/A</td>
<td/>
</tr>
<tr>
<td><a href="https://dvcs.w3.org/hg/FXTF/raw-file/tip/custom/index.html">CSS Shaders</a></td>
<td><a href="https://bugs.webkit.org/show_bug.cgi?id=71392">#71392</a></td>
<td>N/A</td>
<td>N/A</td>
<td>N/A</td>
<td/>
</tr>
<tr>
<td><a href="http://dvcs.w3.org/hg/webcomponents/raw-file/tip/explainer/index.html">Web Components</a></td>
<td><a href="https://bugs.webkit.org/show_bug.cgi?id=52962">#52962</a></td>
<td>N/A</td>
<td>N/A</td>
<td>N/A</td>
<td/>
</tr>
</tbody>
</table></div>
    </content>
    <updated>2012-01-23T15:07:00Z</updated>
    <category term="Nerdy"/>
    <author>
      <name>Jon</name>
    </author>
    <source>
      <id>http://blog.brillskills.com</id>
      <link href="http://blog.brillskills.com/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://blog.brillskills.com" rel="alternate" type="text/html"/>
      <subtitle>because nothing is really real until it's blogged about</subtitle>
      <title>Brillskills</title>
      <updated>2012-02-01T12:00:04Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jmtd.net/log/the_crying_tree/</id>
    <link href="http://jmtd.net/log/the_crying_tree/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/the_crying_tree/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/the_crying_tree/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>The Crying Tree</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>Somebody bought <em>The Crying Tree</em> by Naseem Rakha for Sarah as a present
and she asked me to read it so we could talk about it, so I did.</p>

<p>It's a novel about a family tragedy, Southern-state U.S.A. and the death
penalty.  A little boy is shot dead, a man is arrested for the crime and
faces the death penalty.  The book chronicles what happens to the family
and to the killer during the 19 years or so that passes before the
execution takes place.</p>

<p>The book could be accused of having an anti-capital punishment agenda, but I
have no problem with that.  At least until about half-way through the book, the
plot and happenings follow the synopsis with little in the way of surprise,
but then there's a twist.</p>

<p>I felt that the twist diminished the message of the book.  Without trying to
spoil what happens, I felt that you didn't need the core details of the story
to be varied or expanded upon or U-turned to push that agenda.  In my opinion,
it's perfectly possible for someone to construct a story about a killer who
faces death, who was unambiguously guilty of the crime they are charged with,
and still leave the reader feeling remorse for the killer, and questioning
the justice meted out.  In fact I thought Rakha was doing a fine job of just
that.</p>

<p>However, a twist (or twists) occur, and the facts are called into question, and
so you ask even further questions about the practise of killing criminals, in
my view redundantly.</p>

<p>It's a good book and worth a read, regardless of what your position is on the
issue.  It does a great job of describing the unbearable pain of losing a
child, but also of the power of forgiveness for the victims.</p></div>
    </content>
    <updated>2012-01-22T15:57:26Z</updated>
    <published>2012-01-22T15:45:54Z</published>
    <category term="book review"/>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2012-01-27T15:33:05Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jmtd.net/log/bugs/</id>
    <link href="http://jmtd.net/log/bugs/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/bugs/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/bugs/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>bugs</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><div class="image">
<a href="http://jmtd.net/log/./bugs/nautilus.png"><img alt="[pic]" class="img" height="71" src="http://jmtd.net/log/./bugs/240x80-nautilus.png" width="240"/></a>

</div>

<p>Bugs I've hit in GNOME 3, in the last 5 minutes:</p>

<ul>
<li><p><code>gnome-shell</code>'s "run" pop-up lost focus and I couldn't get rid
of it.  Nor could I launch another "run" dialogue, which is
my normal route for starting software.</p></li>
<li><p>I tried to coax my web browser into launching a terminal by
browsing to <code>file:///usr/bin/gnome-terminal</code>. Instead, it downloaded
a copy to <code>~/Downloads</code>. Fine, no problem, because after another
click it launches <code>nautilus</code> to handle the file. (This is not a
bug).</p></li>
<li><p><code>nautilus</code> doesn't know what to do with the file. Apparently I
haven't installed a handler for viewing executable files. I'm
guessing the copy of <code>gnome-shell</code> isn't <code>+x</code>. <code>nautilus</code> does
sensible things when another file (such as a picture) <em>is</em>
marked <code>+x</code>, so why doesn't it do so for the opposite case?</p></li>
<li><p>This is such a bizarre error message I try to take a screenshot
of it. I take one, then take another (cropped). I try to save
the second picture over the first one, but <code>gnome-screenshot</code>
complains that it cannot find a file somewhere in <code>/tmp</code>.</p></li>
<li><p>The flash plugin crashed in the middle of streaming an album.
I'm almost not allowed to complain about the flash plugin crashing.</p></li>
<li><p>After and around and inbetween all that, I downloaded an <code>.amz</code> file
(an Amazon MP3 download file, in fact, of the album I'm failing to
stream) which I hoped to run through <code>clamz</code> (a command-line, open
source tool that can interpret AMZ files).
<code>nautilus</code> offers clamz as a launch option in the right-click menu,
but it's not the default handler.  If I select "properties" to set
the default handler, <code>clamz</code> is not in the list of available
handlers.</p></li>
<li><p>After sending the <code>HUP</code> signal to <code>gnome-shell</code>, I've got rid of
the "run" pop-up, but now something has happened to it's <code>$PATH</code>
and future "run" pop-ups can't find anything in the standard
locations, like <code>/usr/bin</code>.</p></li>
<li><p>since the flash plugin died, nothing else seems to be able to make
any sound, so I can't play the album I downloaded anyway.</p></li>
</ul>

<p>I didn't set out to bug-hunt this morning, I'm actually trying to
get some work done.</p>

<p>Whilst this is a particularly bad case of stacked-bugs, it's unfortunately,
pretty representative of what it's like to try and use a Linux desktop at
the moment. Every day I go through a similar experience.</p>

<p>I've just had to give up and log out and back in again.  The shell path
bug above has re-surfaced in a new session. Great.</p>

<p>I'm waiting on a delayed laptop at work. I'm very tempted to cancel
the order and just use a Mac Air instead (we have one spare). It seems
I'm walking the inevitable path of F/OSS desktop frustration and the
end for many people seems to be the Mac… perhaps I should spare myself
the pain of the journey.  In the mean time, It's bye-bye to GNOME and
off to Xfce for me.</p></div>
    </content>
    <updated>2012-01-22T10:51:20Z</updated>
    <published>2012-01-22T10:22:11Z</published>
    <category term="linux"/>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2012-01-27T15:33:05Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://orbit.vect.org/?item=182</id>
    <link href="http://orbit.vect.org/?item=182" rel="alternate" type="text/html"/>
    <title>I Was On CNN To Other Day</title>
    <summary>After you sit through what I assume will be a ~30 second unskippable ad you can jump forward to 1:50 or so to see me doing computer stuff (or you can watch the entire report if you want).  I was actually working on a thing that randomly censored the search results on our site for the day (because SOPA/PIPA are the worst, but you already kne...</summary>
    <updated>2012-01-20T02:06:00Z</updated>
    <category term="Serious Business, Internet!"/>
    <author>
      <name>Mike</name>
    </author>
    <source>
      <id>http://orbit.vect.org/</id>
      <link href="http://orbit.vect.org/" rel="alternate" type="text/html"/>
      <link href="http://orbit.vect.org/?rss" rel="self" type="application/rss+xml"/>
      <subtitle>I mostly talk about video games and the world wide web</subtitle>
      <title>in orbit</title>
      <updated>2012-02-02T21:00:05Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jmtd.net/log/vi/</id>
    <link href="http://jmtd.net/log/vi/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/vi/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/vi/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>vi</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>As seen on <a href="http://www.reddit.com/r/linux">reddit</a>: an old Bill Joy quote
often banded about as part of the (largely synthetic) vi-vs.-emacs holy war
starts as follows:</p>

<blockquote>
  <p>vi was written for a world that doesn't exist anymore</p>
</blockquote>

<p>The context of that quote is:</p>

<blockquote>
  <p>I was trying to make it usable over a 300 baud modem. That's also the reason
  you have all these funny commands. It just barely worked to use a screen
  editor over a modem. It was just barely fast enough.</p>
  
  <p>9600 baud is faster than you can read. 1200 baud is way slower. So the editor
  was optimized so that you could edit and feel productive when it was painting
  slower than you could think.</p>
</blockquote>

<p>(source: <a href="http://www.theregister.co.uk/2003/09/11/bill_joys_greatest_gift/print.html">the
register</a>).</p>

<p>Furthermore:</p>

<blockquote>
  <p>unless you decide to get a satellite phone and use it to connect to the Net
  at 2400 baud, in which case you'll realize that the Net is not usable at 2400
  baud.</p>
</blockquote>

<p>You don't need anything as esoteric as a satellite phone: a cellular mobile
phone will suffice. I've no idea what the effective/equivalent baud rate of
GPRS is (or EDGE), but I have a new-found appreciation for vi's design goals
having tried to run an SSH session over such a connection.</p></div>
    </content>
    <updated>2012-01-13T17:23:11Z</updated>
    <published>2012-01-13T17:22:42Z</published>
    <category term="unix"/>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2012-01-27T15:33:05Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blog.brillskills.com/?p=317</id>
    <link href="http://blog.brillskills.com/2012/01/recipe-for-a-british-tv-science-documentary/" rel="alternate" type="text/html"/>
    <title>Recipe for a British TV Science Documentary</title>
    <summary>Time-lapse footage of the natural world: the sun rising, ice melting, trees moving in the wind. Ponderous voice-over introduction with vague description of the topic at hand. Footage of people walking around the streets of a city. Scientist in the street, staring silently into the camera. Scientist in the street, posing awkwardly and staring into [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><ul style="padding-left: 1.3em;">
<li>Time-lapse footage of the natural world: the sun rising, ice melting, trees moving in the wind.</li>
<li>Ponderous voice-over introduction with vague description of the topic at hand.</li>
<li>Footage of people walking around the streets of a city.</li>
<li>Scientist in the street, staring silently into the camera.</li>
<li>Scientist in the street, posing awkwardly and staring into the distance.</li>
<li>Scientist sitting in an incongruous environment.</li>
<li>Footage of scientist with gimmicky jump-cuts, split-screens and focus shifts.</li>
<li>Ponderous voice-over assuring us of scientist’s influence and expertise.</li>
<li>Snippet of scientist talking in a hyperbolic and incredibly nebulous way about an area of theory.</li>
<li>Scientist arriving at work outside a nondescript lab building.</li>
<li>Scientist talking with colleagues, shot from a distance so we can’t hear what they’re saying.</li>
<li>Scientist chalking something on a board that we can’t see.</li>
<li>Scientist trying to explain a complicated aspect of theory in 20 seconds.</li>
<li>Ponderous voice-over attempting to re-explain.</li>
<li>Low-budget computer graphics to illustrate a concept, created by an artist who doesn’t understand the concept himself.</li>
<li>A couple of different scientists, talking nebulously.</li>
<li>More people walking in a street.</li>
<li>Scientists walking around a lab.</li>
<li>Scientists having lunch.</li>
<li>Ponderous voice-over continues.</li>
<li>Snippet of scientist promising spectacular but undefined impact of success in their research.</li>
<li>Segue into logistics of research; no details, just assurance that it is expensive and difficult.</li>
<li>Footage of anonymous lab equipment.</li>
<li>Scientist trying to explain a complicated aspect of theory in 20 seconds, whilst wrestling with cheap, production-team supplied prop.</li>
<li>Various scientists talking vaguely about importance of undefined future research.</li>
<li>More natural world footage.</li>
<li>Ponderous voice-over concluding programme, discussing excitement and importance of science we have learnt nothing about.</li>
</ul></div>
    </content>
    <updated>2012-01-12T19:01:14Z</updated>
    <category term="Uncategorized"/>
    <author>
      <name>Jon</name>
    </author>
    <source>
      <id>http://blog.brillskills.com</id>
      <link href="http://blog.brillskills.com/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://blog.brillskills.com" rel="alternate" type="text/html"/>
      <subtitle>because nothing is really real until it's blogged about</subtitle>
      <title>Brillskills</title>
      <updated>2012-02-01T12:00:04Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jmtd.net/log/the_silent_land/</id>
    <link href="http://jmtd.net/log/the_silent_land/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/the_silent_land/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/the_silent_land/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>The Silent Land</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>I've just finished reading Graham Joyce's haunting <a href="http://www.amazon.co.uk/gp/product/0575083875/ref=as_li_ss_tl?ie=UTF8&amp;tag=jmtdnet-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=0575083875">The Silent
Land</a>:
an atmospheric and moving love story set in an Alpine ski resort.</p>

<p>Husband and Wife Jake and Zoe head out to the slopes early one morning
and are caught in an avalanche. They survive, narrowly, but upon
returning to the resort, everything has changed…</p>

<p>Anyone who has read any quantity of SF or fantasy will probably make
an early guess at what's going on, and you'd most likely get it wrong.
Even if you know where you're going, the journey is often the point,
rather than the destination, and this journey is pretty gripping.</p>

<p>I do most of my reading on the train to and from work. I often listen
to music when I'm reading and I try to choose things which aren't going
to distract my attention from the book too much.  Film soundtracks are
good; so is classical; so is a lot of Eno's work.</p>

<p>For this book I mostly listened to the score from the latest film
version of <a href="http://www.nullco.com/GDT/">The Girl with the Dragon
Tattoo</a>, by Trent Reznor and Atticus Ross.
Clocking in at only seven minutes shy of three hours, this is a haunting
score that evokes a cold, isolated Swedish winter, and thematically
matched the book perfectly.  The score is a little less accessible than
their previous work, but is rewarding on repeat listen.  You can get a
free 6-track sampler at the website linked above.</p></div>
    </content>
    <updated>2012-01-11T22:34:41Z</updated>
    <published>2012-01-11T22:15:31Z</published>
    <category term="book review"/>
    <category term="music"/>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2012-01-25T10:35:14Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jmtd.net/log/expedit/</id>
    <link href="http://jmtd.net/log/expedit/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/expedit/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/expedit/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>My new record player unit</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><div class="image">
<a href="http://jmtd.net/log/./expedit/image1.jpg"><img alt="[pic]" class="img" height="300" src="http://jmtd.net/log/./expedit/224x300-image1.jpg" width="224"/></a>

</div>

<p>A mildly hacked Ikea "Expedit" shelving unit is a surprisingly snug home for
my Hi-fi and my vinyl collection (even the 7" records).
[</p></div>
    </content>
    <updated>2012-01-11T18:05:26Z</updated>
    <published>2012-01-03T09:19:35Z</published>
    <category term="flat"/>
    <category term="music"/>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2012-01-11T18:05:26Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jmtd.net/log/peel/</id>
    <link href="http://jmtd.net/log/peel/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/peel/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/peel/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>Robert Smith in for John Peel</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>On 21st October 2004, Robert Smith of the Cure sat in for John Peel whilst he
was on holiday and presented his show.  This was part of a sequence of people
covering for Peel. Off the top of my head Siouxie of the Banshees sat in
on another night, but I forget who else.</p>

<p>Anyway, sadly, <a href="http://jmtd.net/log/./media/music/peel-rip/">John died a few days later on the 25th</a>.</p>

<p>Before John's death, in response to his pre-recorded show being butchered by
the BBC, Smith posted an angry message on the Cure's website, which included
the tracklisting as he had originally prepared. After John's death was
announced, Smith deleted the post from his site, no doubt out of respect for
Peel and to avoid any mis-interpretation.</p>

<p>I recorded the show onto minidisc when it was broadcast and discovered a lot of
music that I loved and hadn't heard of before. I've just stumbled across a
copy of Smith's post, including the tracklist, so for historical interest's
sake, <a href="http://jmtd.net/log/../music/smith_peel/">here it is (with only light typographical editing)</a>.</p>

<p>If anyone cares enough, I could have a look for that minidisc…</p></div>
    </content>
    <updated>2012-01-11T17:11:30Z</updated>
    <published>2012-01-11T17:09:42Z</published>
    <category term="music"/>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2012-01-22T15:57:26Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://derekmd.com/?p=3694</id>
    <link href="http://derekmd.com/2012/01/oz-observations/" rel="alternate" type="text/html"/>
    <link href="http://derekmd.com/2012/01/oz-observations/#comments" rel="replies" type="text/html"/>
    <link href="http://derekmd.com/2012/01/oz-observations/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Oz Observations</title>
    <summary xml:lang="en">Have been in Melbourne for almost three months now and still not dead. The weather here goes up and down more than a pole dancer. St. Kilda is Little Ireland. The sole purpose of French travellers is to speak loudly outside hostel rooms late at night with no consideration for other people. Fuck the fucking [...]</summary>
    <updated>2012-01-11T11:08:45Z</updated>
    <published>2012-01-11T11:07:19Z</published>
    <category scheme="http://derekmd.com" term="Australia"/>
    <author>
      <name>Derek</name>
      <uri>http://last.fm/user/Afterglew/</uri>
    </author>
    <source>
      <id>http://derekmd.com/feed/atom/</id>
      <link href="http://derekmd.com" rel="alternate" type="text/html"/>
      <link href="http://derekmd.com/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">This is not 'Nam. There are rules.</subtitle>
      <title xml:lang="en">Derek MacDonald</title>
      <updated>2012-02-02T16:58:42Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blog.brillskills.com/?p=303</id>
    <link href="http://blog.brillskills.com/2012/01/race-for-the-south-pole-by-roland-huntford/" rel="alternate" type="text/html"/>
    <title>Race For The South Pole by Roland Huntford</title>
    <summary>I recently finished reading Race For The South Pole by Roland Huntford. Prior to reading the book I knew little of polar exploration, and was only vaguely aware of the Captain Scott legend via its permeation of British popular culture. I knew roughly that Scott had lead a failed antarctic expedition of some sort, and in particular [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p style="text-align: center;"><a href="http://blog.brillskills.com/wp-content/uploads/2012/01/Aan_de_Zuidpool_-_p1913-1601.jpg"><img alt="" class="size-full wp-image-308 aligncenter" height="321" src="http://blog.brillskills.com/wp-content/uploads/2012/01/Aan_de_Zuidpool_-_p1913-1601.jpg" title="South Pole" width="486"/></a></p>
<p>I recently finished reading <a href="http://www.amazon.co.uk/Race-South-Pole-Expedition-Amundsen/dp/1441169822">Race For The South Pole</a> by Roland Huntford. Prior to reading the book I knew little of polar exploration, and was only vaguely aware of the Captain Scott legend via its permeation of British popular culture. I knew roughly that Scott had lead a failed antarctic expedition of some sort, and in particular that one member of the team, Captain Oates, had apparently given his life in an attempt to save his fellows; leaving the tent with the famous words “I am just going outside, and may be some time”, an act which was held up both as an example of noble sacrifice and, occasionally, for ridicule.</p>
<p>Beyond these fragments however, I knew little, and didn’t much care. Tales of arctic exploration and cold-weather derring-do have never really appealed to me. I think because of the horrific physical affects that seem to be part and parcel of them. As a child I remember seeing horrible photos of frostbitten limbs and noses, whose only fate was amputation, and wondering why anybody would risk such injury. Especially to explore parts of the world that, while possessing a sweeping beauty, are ultimately barren wastelands, hostile to life. Even those explorers and adventurers who escaped frostbite always seemed in TV and film footage to be withered and aged by the experience. Buffeted by winds, shrunken by the cold, worn down by the effort, and cooked by the glaring sun.</p>
<p>A few months ago though, I read a short interview with Roland Huntford in a magazine, I think it was New Scientist. He was promoting his new book, Race For The South Pole, and in particular expounding its thesis that Scott had been an incompetent leader, and that his men had died not through poor luck and the unbeatable savagery of the elements, but through a catalogue of errors that had been their own responsibility. Huntford explained how his book compared and contrasted Scotts leadership with that of Roald Amundsen, a Norwegian who lead a simultaneous, successful expedition to the South Pole.</p>
<p>While I can’t recall the details of the interview, I was intrigued by Huntford’s arguments and impressed by the clear and forensic way he expressed them. I must admit, in my ignorance I had never heard of the Norwegian polar expedition, but the idea of an unsentimental comparison between Scott’s failed expedition, and Amundsen’s successful one appealed to me. I decided to pick up a copy when the chance arose.</p>
<p>Acquiring a copy proved a little difficult. The next time I was in a branch of Waterstones I  hunted around for it, but without success. I was slightly baffled by where exactly it would be shelved: Travel? Biography? History? Eventually I discovered an extreme-travel and exploration section, hidden away on a single bookcase in the corner of the store, but alas, no Race For The South Pole. The till staff confirmed via their computer that they did sell it, but were out of stock.</p>
<p>At this point I could have ordered it online via Amazon.com, and probably should have done, but for no real reason I became determined that I would purchase a copy via a physical shop. I have no problem normally shopping for books or just about anything online, but in this case it became a point of bizarre pride. I think it was because, after wandering around the store for so long, trying to determine where the book would be shelved, attempting to use the appalling self-service computers that Waterstones have in store to help me, I was determined that the shop would not best me. I would return, and I would purchase a copy of Race for the South Pole.</p>
<p>I did return, on each of my occasional jaunts into town. I even tried a couple of smaller Waterstones branches, but no dice. The shelf was always empty, and the staff apologetic. Branches down South had it, they earnestly assured me, though whether this was an inscrutable joke at my expense, based on the title I was looking for, I could never be sure. After a couple of months, I have all but given up hope, and was close to giving in and purchasing it online, when one day I popped into Waterstones to find not one, but three copies sitting upon the shelf.</p>
<p>The physical reality of my prize was not quite as impressive as I had anticipated. I had imagined a mighty hard-backed tome, but instead found a thick paperback, with a slightly shoddy cover containing a composite of various grainy photos of polar explorers. It made it look oddly like Scott had hauled his sledge right past the Norweigan camp, while his competitors stood staring at them. Nevertheless, I was excited to finally have acquired and purchased it, and took it home to serve as bedtime reading.</p>
<p>As a nighttime book, it is suited and unsuited, as it was by turns both highly compelling, leading me to stay awake far too late ploughing through the pages, and also sometimes a slog, sending me quickly off into slumberland after a few passages. The latter should not however be taken as a slight on Huntford’s writing, or the book itself, but it is simply a consequence of the book’s central premise or gimmick, which is to present the complete expedition diaries of RF Scott, alongside Huntfords own translations of botth Amundsen’s diary, and that of another member of the Norwegian expedition, a champion skier named Bjaaland.</p>
<p>These diary entries run sequentially and simultaneously, so you can read what both Scott’s English expedition and Amundsen’s Norwegian expedition were doing on the same days in different parts of the pole. While they provide fascinating detail, the entries are rarely thrilling, and that is where they can become a slog. The overland journeys to the pole were clearly difficult and often highly dangerous, but they were also monotonous. Men and animals hauling sledges for hundreds of miles across a snowy and icy wilderness.</p>
<p>In such circumstances, Scott and Amundsen often have little to write about other than the type of snow and ice they encounter, the weather conditions, and the distance they have travelled. To an expert or an experienced polar explorer, such detail might be fascinating, but to a more casual reader like myself, it can become rather dry, and I will confess to skimming some of the larger entries. Particularly those by Scott, whose verbiage, combined with his pomposity, becomes tiring.</p>
<p>Huntford intersperses the diary entries with his own comments, providing context on their content and comparing the approaches of the two expeditions. He offers praise and criticism to both, though it is fair to say he has on the whole very little positive to say about Scott or his expedition. Huntford does not shy away from making his opinions clear, and in that regard he becomes almost as much a character in his book as does Scott, Amundsen or Bjaaland. That is not a criticism; his comments are invariably interesting, and I often found myself wishing there were more of them. It becomes a perverse joy to spot strange or illogical points in Scott’s narrative and anticipate what Huntford’s withering response will be.</p>
<p>The diary entries, which form the central section of the book, are preceded by a long introduction, where Huntford introduces the major players, relates a little of the history of polar exploration and the run-up to the attempts, and lays out his thesis regarding Scott’s failure and Amundsen’s success. His central criticisms of Scott relate to his status as a ‘gentleman amateur’, with no expertise in the skills such as skiing that would be vital to polar exploration,  and to what Huntford perceives as his alienation from the natural world, relying too much on technology and viewing nature almost as an enemy to be conquered. From these stemmed a tide of poor choices and mistakes, in clothing, personnel, transportation, and training, that practically doomed his expedition to failure before it had begun.</p>
<p>Scott’s failings are compared to Amundsen, who had far greater experience in the right areas, both professionally and as a native of cold-climated country, and by Huntford’s reckoning, far more empathy with the natural world. Amundsen, it is argued, was a true professional explorer, who combined his lifetime of experience with exacting preparation to pave the way for his success.</p>
<p>A criticism I would level at Huntford is that he perhaps overreaches in the conclusions he draws. Scott’s failures are numerous and obvious. Even without Huntford’s analysis, the side-by-side comparison of the diaries makes the bumbling and confused nature of the English expedition painfully obvious. But from Scott’s personal failings, Huntford extrapolates to the entire nation of Britain, building up an almost apocalyptically condemning picture of political, spiritual and meritorious malaise. A nation that shuns success and celebrates and glorifies failure.</p>
<p>I’m not sure I buy it. That Scott’s legend is an inane case of undeserved hero-worship and the folly of the gentleman amateur seems true, but that it underlines some gaping flaw in the British national character seems less proven. Could it not just be an aberration, driven by a nationalistic media and a few opportunistic myth-makers? I wonder if Huntford, stung by the battles he has fought with Scott’s advocates, has magnified its philosophical significance through the lens of his own feelings.</p>
<p>In any case, the core of the book is still a highly compelling comparison of two very different expeditions. If I were a Hollywood producer, I might complain that the ‘race’ of the title never feels like much of one. Despite setting off within days of each other, Amundsen’s team are just too good, and Scott’s too poor, for there to be much real competition, even leaving aside that we know the ending anyway. A conventional narrative would have both teams exchanging the lead frequently, as each meet with triumph and mishap along their way, before at last, neck and neck, they reach the final straight and the winner emerges. In fact, Scott’s expedition quickly falls hundreds of miles behind Amundsen’s and its only battle is for survival in the face of its incompetence. Even Scott himself seems less concerned in his diary with the competing Norwegians as with settling scores with Ernest Shackleton, another explorer who had almost reached the South Pole in a previous attempt, and with whom he seems weirdly obsessed.</p>
<p>Another criticism I would make of the book is that, while I would not defend Scott from the charges of incompetence laid against him, I do think that Huntford is a little too easy on Amundsen. Scott’s errors and passive-aggressive bitchiness never pass without scathing comment, but though Amundsen makes mistakes as well, he gets off lightly. Despite his vastly greater skill, there is something of the pettiness and even the pomposity of Scott in Amundsen. His self-awareness is greater, but they are clearly two men on different ends of the same scale. Perhaps only such men, driven by a conflicting mix of nagging insecurity and self-regard, would pursue such lofty but dangerous goals to secure fame.</p>
<p>In stark comparison to both Scott and Amundsen is the third diarist, Olav Bjaaland. The inclusion of his diary entries is apparently something of a scoop, having never been translated into English before. Huntford is fluent in Norwegian, and apparently did the translations himself. Bjaaland was a champion skier, brought onto the Norwegian team for his vast expertise and experience in cross-country skiing. Unlike the two team leaders, Bjaaland was not looking for fame, or keeping his diary with a mind to write a book. His entries are terse, having been written for no audience but himself, but often very entertaining. He mixes entirely matter-of-fact missives with wry observations and the occasional sardonic comment on his leader Amundsen, or their situation. </p>
<p>Bjaaland seems much more the voice of an ordinary man, even though, as a famous champion skier, he was not just anyone. His seems like the testimony of someone who is comfortable with himself, his abilities, and his achievements. His are some of the best parts of the book, undercutting the fairly humourless competition of the other two and bringing them down to Earth. Huntford seems to like him a lot as well.</p>
<p>Overall, I enjoyed the book a great deal, I would recommend it to anybody with an interest in history or human endeavour and the reasons, both technical and personal, why it succeeds or fails. Doubtless there are lessons to be drawn from it for all of us who engage in difficult or complex work, even if it is not quite as dangerous or intrepid as an expedition to the South Pole.</p></div>
    </content>
    <updated>2012-01-08T02:57:24Z</updated>
    <category term="Uncategorized"/>
    <author>
      <name>Jon</name>
    </author>
    <source>
      <id>http://blog.brillskills.com</id>
      <link href="http://blog.brillskills.com/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://blog.brillskills.com" rel="alternate" type="text/html"/>
      <subtitle>because nothing is really real until it's blogged about</subtitle>
      <title>Brillskills</title>
      <updated>2012-02-01T12:00:04Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jmtd.net/log/flow_my_tears/</id>
    <link href="http://jmtd.net/log/flow_my_tears/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/flow_my_tears/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/flow_my_tears/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>Flow My Tears, the Policeman Said</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><div class="image">
<a href="http://jmtd.net/log/./flow_my_tears/cover.jpg"><img alt="The Philip K. Dick Collection" class="img" height="250" src="http://jmtd.net/log/./flow_my_tears/250x250-cover.jpg" width="250"/></a>

<p>The Philip K. Dick Collection</p>

</div>

<p>I've just finished reading "Flow My Tears, the Policeman Said" by Philip K
Dick, one of 13 novels collected in the Library of America's wonderful "The
Philip K. Dick Collection" boxed set.</p>

<p>This story has never jumped out at me as one to read with any particular
urgency, despite the title being a reference to a composition by <a href="http://en.wikipedia.org/wiki/John_Dowland">my
namesake</a>. I was reminded about it
whilst listening to one of <a href="http://www.bbc.co.uk/programmes/b006qxsb">BBC Radio 4's "Great
Lives"</a> broadcasts, where Michael
Sheen read a passage from the book.</p>

<p>As an aside, the "Great Lives" series is a really interesting listen: I
particularly enjoyed their episode on Ludwig Wittgenstein. <a href="http://www.bbc.co.uk/podcasts/series/greatlives">You can get the
whole series in podcast form</a>.</p>

<p>Back to the book. It features Dick's trademark theme of fractured realities,
perhaps more so than in many of his more well-known works such as <em>Ubik</em> or <em>A
Scanner Darkly</em>. It also has much better characterisation than I expect from
his writing. His female characters remain — as always — sinister, threatening,
mischevious, but they are at least fleshed out. There is a lot more of an
exploration of the human condition than usual. Dick wrote that the novel begun
as an attempt to explore different varieties of love. I enjoyed the mystery of
the weird goings-on whilst they were mysterious, but I felt mildly let down
when the explanation was eventually proffered.</p></div>
    </content>
    <updated>2012-01-07T12:41:12Z</updated>
    <published>2012-01-07T10:22:32Z</published>
    <category term="book review"/>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2012-01-22T10:51:20Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jmtd.net/log/ready_player_one/</id>
    <link href="http://jmtd.net/log/ready_player_one/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/ready_player_one/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/ready_player_one/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>Ready Player One</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>I recently completed "Ready Player One", Ernest Cline's debut novel. It's a
Sci-Fi fan-service novel that explores a dystopian future (yes, another one)
where the majority of the populace hide inside a VR environment to escape
their "real" lives.  </p>

<p>The sole-genius who authored the VR software hid a series of easter eggs
inside, in the form of challenges relating to pop-culture and video game trivia
circa the 80s. He constructs his will such that whoever first completes the
challenges inherits the mega-bucks company who control the VR simulation.</p>

<p><a href="http://exple.tive.org/blarg/?p=2885">Mike Hoye has an excellent summary</a>:</p>

<blockquote>
  <p>Ready Player One is a nerdculture bender of a book, about as hard to hate
  while you’re in the middle of it as it is to love in hindsight; it’s young
  adult literature for people who were born in the late seventies and haven’t
  really grown up yet. Of which I am apparently one, it has become clear, but
  you’re still left with the sense that you’re reading a Cory Doctorow book
  whose discerning virtue is that the lead isn’t a thinly-veiled Cory Doctorow.
  Which is a huge, huge improvement, make no mistake, but it’s stills
  relentless, pandering fanservice.</p>
</blockquote>

<p>(Whilst you are over on Mike's website you should really read <a href="http://exple.tive.org/blarg/?p=2905">this excellent
piece on libraries and publishers</a>.)</p>

<p>Despite the points above, I enjoyed the book.  My biggest complaint was that
the ending was quite abrupt.  Quite often when I read a story which is essentially
about a journey, I am disappointed if the story ends when the journey does. I
hope I am not spoiling too much here by revealing that someone eventually
solves the riddles and inherits — essentially — the earth. But what do they do
with it?  What impact do they make on the miserable world, described only
briefly in sparse passages dotted around the bulk of the text detailing the VR
one?  During the book, the characters opine on what to do with the fortune, but
we never see that come to fruition.  Perhaps in a sequel. </p></div>
    </content>
    <updated>2012-01-04T17:47:19Z</updated>
    <published>2012-01-04T17:17:04Z</published>
    <category term="book review"/>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2012-01-13T17:23:11Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://derekmd.com/?p=3596</id>
    <link href="http://derekmd.com/2011/11/harvest-festival-the-gathering/" rel="alternate" type="text/html"/>
    <link href="http://derekmd.com/2011/11/harvest-festival-the-gathering/#comments" rel="replies" type="text/html"/>
    <link href="http://derekmd.com/2011/11/harvest-festival-the-gathering/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Harvest Festival: The Gathering</title>
    <summary xml:lang="en">Given my too short stay in Australia, it was deemed necessary I check out Melbourne’s festival scene as Canada’s state of affairs has led to attending headlining tours-only. With the geographical isolation of Oz, a rarity of international acts coming through leads to excessive admission charges to make up for visa and travel costs. Next [...]</summary>
    <updated>2012-01-03T20:17:25Z</updated>
    <published>2011-11-20T18:36:28Z</published>
    <category scheme="http://derekmd.com" term="Australia"/>
    <category scheme="http://derekmd.com" term="Music"/>
    <author>
      <name>Derek</name>
      <uri>http://last.fm/user/Afterglew/</uri>
    </author>
    <source>
      <id>http://derekmd.com/feed/atom/</id>
      <link href="http://derekmd.com" rel="alternate" type="text/html"/>
      <link href="http://derekmd.com/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">This is not 'Nam. There are rules.</subtitle>
      <title xml:lang="en">Derek MacDonald</title>
      <updated>2012-02-02T16:58:42Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jmtd.net/log/instagr.am.bient/</id>
    <link href="http://jmtd.net/log/instagr.am.bient/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/instagr.am.bient/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/instagr.am.bient/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>instagr/am/bient</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><div class="image">
<a href="http://jmtd.net/log/./instagr.am.bient/034.jpg"><img alt="" height="330" src="http://jmtd.net/log/./instagr.am.bient/330x330-034.jpg" width="330"/></a><a/>

<p><a href="http://sleepingstereo.tumblr.com/post/10825952453/around-sundown-taken-with-instagram">Artwork from track 17</a>, by <a href="http://sleepingstereo.tumblr.com/">Richard Ginns</a>. <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">CC-By-SA</a></p>

</div>

<p>Via <a href="http://boingboing.net/">Boing Boing</a>, I stumbled across an excellent
audio/visual project called
<a href="http://boingboing.net/2012/01/02/ambient-music-inspired-by-inst.html">instagr/am/bient</a>:
25 ambient pieces of music inspired by 25 photos on the instagram photo
service.</p>

<p>The original upload featured a high-resolution PDF of the pictures, with MP3
audio and low-quality embedded copies of each picture as each track's artwork.
I was a little disappointed about this, as I thought the tracks would be best
appreciated next to the higher-quality picture that inspired them.  So, I fixed
it:</p>

<p><a href="http://www.archive.org/details/InstagrambienthdImages">Instagr/am/bient (HD images)</a></p>

<p>This was possible thanks the liberal licensing of the original, but also two
excellent pieces of software: <code>pdfimages</code> (from the
<a href="http://packages.debian.org/poppler-utils">poppler-utils</a> package) and
<a href="http://jmtd.net/log/eyed3">eyeD3</a>, which made it not just possible but trivial.</p>

<p>See also the <a href="http://www.archive.org/download/Instagrambient/INSTAGR-AM-BIENT.pdf">9.5M accompanying PDF</a>.</p>

<p>I do like what people are creating with instagram; I also like the
"tumble-blog" approach to sharing similar images.  I occasionally rotate the
<a href="http://jmtd.net/log/../indexpics/">indexpics</a> on my site; perhaps I should do so more often, and publish the
new ones on my blog, too.</p></div>
    </content>
    <updated>2012-01-03T17:11:13Z</updated>
    <published>2012-01-03T17:08:57Z</published>
    <category term="music"/>
    <category term="photos"/>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2012-01-11T22:34:41Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jmtd.net/log/backup/</id>
    <link href="http://jmtd.net/log/backup/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/backup/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/backup/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>backup</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>Backups are something I don't do well. I hope to write a more thorough
article about them at some point. For now, here are some tips.</p>

<p>Like most home users, I don't have access to a tape drive or jukebox for
backups.  I'm therefore looking for a solution that backs up to a local
block device.  I haven't ruled out a solution that backs up to DVD-Rs,
but I haven't found a suitable one.</p>

<p>I first tried <a href="http://rsnapshot.org/">rsnapshot</a>, which uses hard link trees to
represent increments.  I found that this resulted in enormous filesystem
metadata, sufficient to cause the machine I was running it on (an embedded ARM
system) to slow to a crawl. I'd recommend to avoid anything using this
technique.</p>

<p>I more recently have been using
<a href="http://www.nongnu.org/rdiff-backup/">rdiff-backup</a>.  This has appeared to work
quite well for a number of years.  However, it does not gracefully handle the
backup volume being full, spewing python backtraces.  This is compounded with
some confusing use of temporary directies and not honouring <code>$TMPDIR</code>.  This
has been known about for years
(<a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=310442">1</a>,
<a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=500399">2</a>). <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=48;bug=500399">I've just
independently discovered these problems for the <em>second</em>
time</a>. Aside from
that, because it  does not de-duplicate files, it is sensitive to large files
being moved around in the source being backed up.  It also cannot do a dry-run
estimate of the disk space required for the next increment. So: time to move
on.</p>

<p>Back in 2010 I discovered <a href="https://github.com/apenwarr/bup">bup</a>, an intriguing
backup tool that used a <code>git</code>-style backing store.  It's interesting enough
that I <a href="http://packages.debian.org/search?keywords=bup">packaged it</a> and use it
in a few situations, but I wouldn't rely on it for my main backups, for two
reasons: one, it's not tried-and-tested enough yet (but that is rapidly being
resolved), two: you can't get rid of old increments, so your backup volume will
always increase in size over time, and never throw away old data. So, for now:
move on.</p>

<p>Next on my list to try is Lars Wirzenius' <a href="http://braawi.org/obnam/">obnam</a>.</p></div>
    </content>
    <updated>2011-12-29T10:21:27Z</updated>
    <published>2011-12-29T10:18:24Z</published>
    <category term="computing"/>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2012-01-11T15:27:54Z</updated>
    </source>
  </entry>

  <entry>
    <id>urn:lj:livejournal.com:atom1:fragglet:19971</id>
    <link href="http://fragglet.livejournal.com/19971.html" rel="alternate" type="text/html"/>
    <link href="http://fragglet.livejournal.com/data/atom/?itemid=19971" rel="self" type="text/xml"/>
    <title>Goodbye Livejournal</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I've decided to discontinue using Livejournal. The posts on this blog will remain up but future posts will appear <a href="https://plus.google.com/111550145781278122079" rel="nofollow">on Google+</a>.</div>
    </content>
    <updated>2011-12-24T12:45:22Z</updated>
    <published>2011-12-24T12:45:22Z</published>
    <source>
      <id>urn:lj:livejournal.com:atom1:fragglet</id>
      <author>
        <name>fragglet</name>
      </author>
      <link href="http://fragglet.livejournal.com/" rel="alternate" type="text/html"/>
      <link href="http://fragglet.livejournal.com/data/atom" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>fragglet</subtitle>
      <title>fragglet</title>
      <updated>2011-12-24T12:45:22Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jmtd.net/log/mail_archiving/2/</id>
    <link href="http://jmtd.net/log/mail_archiving/2/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/mail_archiving/2/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/mail_archiving/2/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>mail archiving script</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>Here's the <a href="http://jmtd.net/log/./mail_archiving/">mail archiving</a> script I was talking about:
<a href="http://github.com/jmtd/detachment">http://github.com/jmtd/detachment</a>. Sorry about the name-pun.</p>

<p>There's still a <em>LOT</em> of work to do, but it's useful enough to deploy, with
modifications, now.  If you set up a way of pushing stuff in a local directory
to a remote webserver (ideally behind an SSL certificate and with access
control configured) and you have a resolvable hostname for that site, then
you can get at your files from most mail/web client combinations, including
smartphones.</p>

<p>Here's some stats from running it on a sample mailbox:</p>

<p>Before</p>

<pre><code>$ du -sh ncl/archive/2010
116M    ncl/archive/2010
</code></pre>

<p>After</p>

<pre><code>$ du -sh ncl/archive/2010 bucket
41M     ncl/archive/2010
51M     bucket
</code></pre>

<p>Or, approximately 20% smaller. (That's the on-disk usage for the mail and
the attachments, now not base64-encoded, and saved to disk).</p>

<p>The above folder was a local Maildir copy of a folder on an Exchange mail
system, synchronised via offlineimap.  Here are the sizes reported by
Exchange for the same folder:</p>

<ul>
<li>Before: 83991KB (82M)</li>
<li>After:  25435KB (25M)</li>
</ul>

<p>Or, approximately 70% smaller. (That's the mails <em>without</em> the attachments
counted, which are not in the Exchange server any more).</p>

<p>Lots of caveats:</p>

<ul>
<li>If you are using offlineimap, you will need to do more than just
run this script, or offlineimap may not notice that the messages
have changed.  Stripping out the <code>U=\d+,FMD5=[0-9a-f]{32}</code>
component of filenames seemed to do the trick.</li>
<li>If you are using Exchange, a copy of the original messages will
be retained in your Deleted Items folder. Beware if you are close
to your mail quota.</li>
<li>If you are using Exchange via IMAP, then syncing the results of
such an operation might be <em>very</em> slow. The above operation took
well over an hour to sync, and I'm only a few hops away from
the Exchange server via 100M links.</li>
</ul></div>
    </content>
    <updated>2011-12-21T17:39:40Z</updated>
    <published>2011-12-13T09:52:24Z</published>
    <category term="cs.ncl.ac.uk"/>
    <category term="email"/>
    <category term="software"/>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2012-01-04T17:47:19Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jmtd.net/log/wadc/</id>
    <link href="http://jmtd.net/log/wadc/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/wadc/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/wadc/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>wadc</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>I'm happy to announce the release of <a href="http://jmtd.net/log/./wadc/">wadc</a> version 1.2.</p>

<div class="image">
<a href="http://jmtd.net/log/../wadc/wadc.png"><img alt="A WadC session" class="img" height="144" src="http://jmtd.net/log/./wadc/256x144-wadc.png" width="256"/></a>

<p>A WadC session</p>

</div>

<p>WadC is a functional programming language for the composition of
<a href="http://jmtd.net/log/../doom/">Doom</a>-format maps. Originally created by Wouter "Aardappel" van Oortmerssen,
I was granted permission to take over the project over a year ago, but didn't
get around to releasing anything until now.</p>

<p>This version adds a few functions that permit you to draw two-sided lines which
are textured and impassible: important for a lot of detailing techniques. You
can also create friendly monsters for Boom-compatible ports.  There's a new
example demonstrating these features; plus a recreation of Doom 2's "entryway",
courtesy of
<a href="http://www.doomworld.com/vb/wads-mods/51336-wadc-community-project/3/">GreyGhost</a>.</p>

<p>See <a href="http://jmtd.net/log/../wadc/">WadC</a> for a summary, or go straight to the
<a href="https://github.com/downloads/jmtd/wadc/wadc-1.2.zip">binaries</a> or
<a href="https://github.com/jmtd/wadc">source</a> on github.</p>

<p><em>Discussions: <a href="http://www.reddit.com/r/programming/comments/n11pp/release_of_wadc_version_12_a_functional/">reddit</a>, <a href="http://www.doomworld.com/vb/doomworld-news/58027-wadc-1-2-released/">doomworld</a>.</em></p></div>
    </content>
    <updated>2011-12-19T16:46:25Z</updated>
    <published>2011-12-04T20:21:23Z</published>
    <category term="doom"/>
    <category term="software"/>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2012-01-03T17:11:13Z</updated>
    </source>
  </entry>

  <entry>
    <id>urn:lj:livejournal.com:atom1:fragglet:17509</id>
    <link href="http://fragglet.livejournal.com/17509.html" rel="alternate" type="text/html"/>
    <link href="http://fragglet.livejournal.com/data/atom/?itemid=17509" rel="self" type="text/xml"/>
    <title>Creative defacement</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Something funny I saw attached to a sign on the car park down the road from my flat:<br/><br/><a href="http://www.soulsphere.org/img/cctv-eyes.jpg" rel="nofollow"><img src="http://www.soulsphere.org/img/cctv-eyes-small.jpg"/></a></div>
    </content>
    <updated>2011-12-14T13:40:59Z</updated>
    <published>2009-04-30T22:38:23Z</published>
    <source>
      <id>urn:lj:livejournal.com:atom1:fragglet</id>
      <author>
        <name>fragglet</name>
      </author>
      <link href="http://fragglet.livejournal.com/" rel="alternate" type="text/html"/>
      <link href="http://fragglet.livejournal.com/data/atom" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>fragglet</subtitle>
      <title>fragglet</title>
      <updated>2011-12-24T12:45:22Z</updated>
    </source>
  </entry>

  <entry>
    <id>urn:lj:livejournal.com:atom1:fragglet:18531</id>
    <link href="http://fragglet.livejournal.com/18531.html" rel="alternate" type="text/html"/>
    <link href="http://fragglet.livejournal.com/data/atom/?itemid=18531" rel="self" type="text/xml"/>
    <title>Twitter</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I now have a <a href="http://twitter.com/fraggletastic" rel="nofollow">Twitter</a> account.  You will find regular postings there about completely irrelevant things. I'm tagging Chocolate Doom-related postings with the <a href="http://twitter.com/#search?q=%23chocdoom" rel="nofollow">#chocdoom</a> tag.</div>
    </content>
    <updated>2011-12-14T13:40:21Z</updated>
    <published>2010-04-29T11:53:20Z</published>
    <source>
      <id>urn:lj:livejournal.com:atom1:fragglet</id>
      <author>
        <name>fragglet</name>
      </author>
      <link href="http://fragglet.livejournal.com/" rel="alternate" type="text/html"/>
      <link href="http://fragglet.livejournal.com/data/atom" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>fragglet</subtitle>
      <title>fragglet</title>
      <updated>2011-12-24T12:45:22Z</updated>
    </source>
  </entry>

  <entry>
    <id>urn:lj:livejournal.com:atom1:fragglet:18803</id>
    <link href="http://fragglet.livejournal.com/18803.html" rel="alternate" type="text/html"/>
    <link href="http://fragglet.livejournal.com/data/atom/?itemid=18803" rel="self" type="text/xml"/>
    <title>Southampton Test Hustings</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I just attended the <a href="http://southampton.myvillage.com/news/join-southampton-candidates-for-hustings-debates?utm_source=twitterfeed&amp;utm_medium=twitter" rel="nofollow">Hustings</a> for Southampton Test.  These are my thoughts on some of the candidates.<br/><br/>Alan Whitehead (incumber Labour MP): Seemed rather nervous at the start but gained confidence later in the debate.  To his credit he made some good points; I was impressed that he was bold enough to state that the law of the land should trump religious beliefs.  However I also got the impression that he was less up to speed with other candidates on local issues and perhaps hadn't been paying proper attention to his constituency. Surprisingly enough he opposes Trident in favour of a cruise missile system like the LibDems advocate.<br/><br/>Jeremy Moulton (Conservatives): Made some good points and seemed a confident speaker.  Some of the answers he gave seemed to have been slighty evasive/misleading when audience members responded to his answers.  Attacked Alan Whitehead for using the communications allowance and supposedly putting the Labour party name on it (?)<br/><br/>Dave Callaghan (Liberal Democrats): Seemed the most honest of the lot. He highlighted some of the local issues that he's been campaigning for, like the closure of the Millbrook library, which he attacked Jeremy on (Jeremy is responsible for finances on the local council?). <br/><br/>Pearline Hingston (UKIP): A UKIP candidate who is an immigrant (how's that for a brain-breaker?).  She came across as completely clueless and in general contributed very little of note.  The one time she really attempted to express an opinion on something (cyclists riding on the pavement) she got smacked down by a member of the audience in response for not having a clue what she was talking about.<br/><br/>Chris Bluemel (Green): Surprisingly clueful and well-spoken. He spoke out in favour of nuclear disarmament and did it well, even though I don't agree with his views.<br/><br/>During the debates I sat next to an older gentleman who spent the time scribbling down notes on the back of an envelope.  When he asked a question to the panel, he made some strange comments about Halliburton and BP. He seemed to think that there were plans to site nuclear submarines in Southampton docks, and was worried they might blow up and destroy the city. Very odd.<br/><br/>There was an obvious large Christian presence in the audience, and I suspect that siting the debate in a church probably didn't help.  The candidates were asked at one point why they had all refused to sign a petition (I forget the name of it) declaring their support for Christian beliefs, although it was then revealed that none of the candidates had even heard of it.  Several questions were asked about Christian rights that were obviously homophobic (eg. anti-gay marriage), though the people posing the questions tried to veil this by speaking in vague terms that made it less obvious what they were talking about.</div>
    </content>
    <updated>2011-12-14T13:39:07Z</updated>
    <published>2010-05-02T18:31:39Z</published>
    <source>
      <id>urn:lj:livejournal.com:atom1:fragglet</id>
      <author>
        <name>fragglet</name>
      </author>
      <link href="http://fragglet.livejournal.com/" rel="alternate" type="text/html"/>
      <link href="http://fragglet.livejournal.com/data/atom" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>fragglet</subtitle>
      <title>fragglet</title>
      <updated>2011-12-24T12:45:22Z</updated>
    </source>
  </entry>

  <entry>
    <id>urn:lj:livejournal.com:atom1:fragglet:13734</id>
    <link href="http://fragglet.livejournal.com/13734.html" rel="alternate" type="text/html"/>
    <link href="http://fragglet.livejournal.com/data/atom/?itemid=13734" rel="self" type="text/xml"/>
    <title>Scientology "war"</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Ah, <a href="http://technology.timesonline.co.uk/tol/news/tech_and_web/article3250934.ece" rel="nofollow">Internet drama</a>.  So a bunch of kids have decided to "destroy" the Church of Scientology by DDoS'ing the Scientology website and making lots of prank calls to the various church buildings. Now, I'm thoroughly anti-Scientology and think that it's an incredibly dangerous and subversive cult; however, the <a href="http://chanology.blogspot.com/2008/01/why-we-fight.html" rel="nofollow">rhetoric</a> being thrown around by the members of "Anonymous" is almost as hilarious as the idea that a multi-million dollar business is going to be "destroyed" by a few kids ordering pizzas to the Scientology buildings and flooding their website off the Internet.<br/><p><br/>Perhaps the most stupid part of this whole affair is that it's possibly the worst possible action to take.  Scientology likes to smear any of its critics as <a href="http://en.wikipedia.org/wiki/Suppressive_person" rel="nofollow">suppressive persons</a>, effectively labelling them as hopelessly mentally ill people with anti-social and destructive tendencies. By "attacking" Scientology, the members of "Anonymous" are fitting themselves exactly into the role that the Scientologists would like to portray them as: "The antisocial personality supports only destructive groups and rages against and attacks any constructive or betterment group". Now it's easy for Scientology to dismiss any Internet criticism as having been concocted by antisocial "suppressives". <br/></p><p><br/>While people continue to believe in Hubbard's teachings, Scientology will continue to exist.  The way to destroy Scientology is to destroy those beliefs, to show the lies that the church propagates and all the crazy <a href="http://en.wikipedia.org/wiki/Xenu" rel="nofollow">stories about aliens</a> found in the upper levels.  The greatest weapon against Scientology is the truth, and the Internet is the most effective way to disseminate it. Of course, now, the church has an excuse to get more of its members running <a href="http://www.xenu.net/archive/events/censorship/" rel="nofollow">censorship software</a> - "protect yourself from dangerous Internet subversives, out to destroy Scientology!".  David Miscavige himself couldn't have come up with such an effective scheme.<br/></p><p><br/>There is obviously a large group of people participating in the "war".  What a shame that so much energy has been put towards such an utterly counterproductive effort.</p></div>
    </content>
    <updated>2011-12-14T13:38:37Z</updated>
    <published>2008-01-25T13:26:06Z</published>
    <source>
      <id>urn:lj:livejournal.com:atom1:fragglet</id>
      <author>
        <name>fragglet</name>
      </author>
      <link href="http://fragglet.livejournal.com/" rel="alternate" type="text/html"/>
      <link href="http://fragglet.livejournal.com/data/atom" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>fragglet</subtitle>
      <title>fragglet</title>
      <updated>2011-12-24T12:45:22Z</updated>
    </source>
  </entry>

  <entry>
    <id>urn:lj:livejournal.com:atom1:fragglet:18339</id>
    <link href="http://fragglet.livejournal.com/18339.html" rel="alternate" type="text/html"/>
    <link href="http://fragglet.livejournal.com/data/atom/?itemid=18339" rel="self" type="text/xml"/>
    <title>Chocolate Doom on OS X, and GNUstep</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><a href="http://www.chocolate-doom.org/" rel="nofollow">Chocolate Doom</a> runs on Mac OS X and has done for several years; however, until now, getting it running has been overly complicated and required compiling the source code from scratch.  Obviously this isn't really appropriate for a Mac; it certainly doesn't fit in with the Apple way of doing things.  I recently set about trying to improve the situation.<br/><br/>I first investigated how things are installed on OS X.  Generally speaking there are two ways that things are installed; the <a href="http://en.wikipedia.org/wiki/Installer_(Mac_OS_X)" rel="nofollow">installer</a> (.pkg files), and <a href="http://en.wikipedia.org/wiki/Application_Bundle" rel="nofollow">Application Bundles</a>, typically contained inside a .dmg archive.  The installer simply installs a bunch of files to your machine, while Application Bundles are a lot more fluid; to install, you simply drag an icon into the Applications folder.<br/><br/>Application Bundles seem obviously preferable, but there's the problem of how one should be structured.  Chocolate Doom needs a Doom IWAD file that contains the data used by the game, so it's not sufficient to simply package the normal binary as a bundle. Then there's the setup tool as well - should that be in a separate bundle?  Finally, people often like to load PWAD files containing extra levels and mods.  How do you do that with a bundle?<br/><br/>In the end, I decided to write a minimalist launcher program.  Everything is in a single bundle file which, when launched opens a launcher window.  The launcher allows the locations of the IWAD files to be configured and extra command line parameters entered.  There's also a button to open the setup tool.<br/><br/><img src="http://www.chocolate-doom.org/wiki/images/5/5b/OS_X_Launcher.png"/><br/><br/>The launcher also sets up file associations when installed, so that it is possible to double-click a WAD file in the Finder, and an appropriate command line is constructed to load it.  The interface is not as fully-featured as other "launcher" programs are, but it's simple and I think fits with the philosophy of the project.<br/><br/><h3> Developing with GNUstep </h3><br/>The interesting part is how I developed the launcher.  I only have occasional use of a Mac, so I developed it on <a href="http://www.gnustep.org/" rel="nofollow">GNUstep</a>.  This is an earlier version of the launcher interface while it was under development:<br/><img src="http://www.soulsphere.org/img/screenshots/gnustep-launcher.png"/><br/>GNUstep provides an implementation of the same Objective C API that OS X's Cocoa provides, albeit with a rather crufty-looking <a href="https://secure.wikimedia.org/wikipedia/en/wiki/NeXTStep" rel="nofollow">NeXTStep</a> appearance.  It also has <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Gorm_(computing)" rel="nofollow">Gorm</a>, which works in a very similar way to OS X's Interface Builder application.  Using GNUstep, I was able to mock up a working program relatively easy.  Constructing interfaces is very straightforward: the controls are simply dragged-and-dropped onto a window.  I was able to get the underlying code into a working state before porting to OS X.<br/><br/><h3> Porting to OS X </h3><br/>Porting to OS X had some hassles.  Firstly, Gorm/GNUstep uses its own native format for interface files, which are different to the .nibs used on OS X.  Recent versions of Gorm can save .nibs, but I found that the program crashed when I tried to do this.  I eventually just reconstructed the whole interface from scratch in Interface Builder.  GNUstep can use .nibs, so I just threw the older Gorm interface away.<br/><a href="http://www.chocolate-doom.org/wiki/index.php/Image:OS_X_Launcher_GNUstep.png" rel="nofollow"><img src="http://www.chocolate-doom.org/wiki/images/thumb/c/c7/180px-OS_X_Launcher_GNUstep.png"/></a><br/>The other main annoyance was that the format for <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Property_list" rel="nofollow">property lists</a> is different on OS X.  It seems that GNUstep uses the older NeXT format, which Apple have since replaced with a newer XML-based format. Finally, icon files on OS X are in a proprietary .icns format, while GNUstep simply uses PNGs.<br/><br/>Both OS X and GNUstep try to force you to use their build tools (Xcode, ProjectCenter) which seem to generate a whole load of junk.  I wrote a <a href="http://chocolate-doom.svn.sourceforge.net/viewvc/chocolate-doom/trunk/chocolate-doom/pkg/osx/GNUmakefile" rel="nofollow">Makefile</a> instead. There are some conditional parts to handle the two systems - OS X and GNUstep application bundles have different internal structures, for example.  On OS X, the Makefile will do the complete process of compiler code, constructing the application bundle and generating a .dmg archive.<br/><br/>One thing I did find interesting is how OS X handles libraries.  The full paths to any .dylib libraries (which are like Linux .so files or Windows DLLs) are stored inside a program when it is compiled.  In my case, my application bundle needs to include the SDL libraries that Chocolate Doom depends upon.  There's a convenient program called <a href="http://developer.apple.com/Mac/library/documentation/Darwin/Reference/ManPages/man1/install_name_tool.1.html" rel="nofollow">install_name_tool</a> that can be used to change these paths after the program has been compiled.  A special macro called @executable_path can be used to mean "the path where this binary is".  I wrote a <a href="http://chocolate-doom.svn.sourceforge.net/viewvc/chocolate-doom/trunk/chocolate-doom/pkg/osx/cp-with-libs" rel="nofollow">script</a> to copy a program along with any libraries it depends on, changing its library search paths appropriately.<br/><br/>As one last finishing touch, there's a "Command Line..." menu item that calls into Terminal.app to open a command line window, if you're of the type who prefers the command line.  The window sets up the PATH to point to the directory within the package that contains the chocolate-doom binary, and also sets up DOOMWADPATH to point to all the IWAD files you've configured within the GUI.<br/><br/><h3> Thoughts on GNUstep </h3><br/>GNUstep was certainly incredibly useful in this activity; the ability to develop the program on my usual (Linux) laptop was very convenient.  From a technical perspective, GNUstep seems to be a very impressive project.  There is great usefulness in having a Linux implementation of the OPENSTEP (ie. Cocoa) API, which is what GNUstep is. However, the NeXT-style interface clashes horribly with almost any desktop environment that you might want to run under Linux (Gnome/KDE/etc), which is a huge turn-off.<br/><br/>The main problems are (1) the mini-window icons (which represent the running application) and (2) the menus, which appear in a separate window to the other application windows.  I expect these are things that I could get used to if I was running a full GNUstep desktop where everything was like this; however, I'm not and it wouldn't really be practical for me to do so.  It is possible to theme GNUstep to look nicer than its default "ugly grey square" appearance, but these problem remain.<br/><br/>GNUstep is a frustrating project in this respect. I can't help wonder if the full potential of the project is limited by the short-sightedness of its developers. It seems like they're too hung up on their goal of recreating NeXTstep, when I doubt there are many people who would even want to use such a system nowadays. <a href="http://wiki.gnustep.org/index.php/Developer_FAQ#How_about_implementing_parts_of_the_Application_Kit_with_GTK.3F" rel="nofollow">This</a> entry from the developer FAQ gives a good example of what I'm talking about:<br/><blockquote><b>How about implementing parts of the Application Kit with GTK?</b><br/><i>Yes and No - The GNUstep architecture provides a single, platform-independent, API for handling all aspects of GUI interaction (implemented in the gstep-gui library), with a backend architecture that permits you to have different display models (display postscript, X-windows, win32, berlin ...) while letting you use the same code for printing as for displaying. Use of GTK in the frontend gui library would remove some of those advantages <b>without adding any</b>.</i></blockquote><br/>"Without adding any [advantages]" - except, of course, the ability to give GNUstep applications an appearance that is consistent with 99% of Linux desktops!  If it <i>was</i> possible to use GNUstep to make applications that looked like Gtk+ apps, I bet it would be a lot more attractive to developers. The practical advantages of such a decision are dismissed completely in the face of architectural/technical advantages that probably have little practical use.</div>
    </content>
    <updated>2011-12-14T13:38:27Z</updated>
    <published>2010-02-05T13:19:11Z</published>
    <source>
      <id>urn:lj:livejournal.com:atom1:fragglet</id>
      <author>
        <name>fragglet</name>
      </author>
      <link href="http://fragglet.livejournal.com/" rel="alternate" type="text/html"/>
      <link href="http://fragglet.livejournal.com/data/atom" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>fragglet</subtitle>
      <title>fragglet</title>
      <updated>2011-12-24T12:45:22Z</updated>
    </source>
  </entry>

  <entry>
    <id>urn:lj:livejournal.com:atom1:fragglet:18071</id>
    <link href="http://fragglet.livejournal.com/18071.html" rel="alternate" type="text/html"/>
    <link href="http://fragglet.livejournal.com/data/atom/?itemid=18071" rel="self" type="text/xml"/>
    <title>How to make a program just run</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Starting with Windows Vista, Windows limits the privileges that are given to normal users, running programs as the Administrator user only when necessary.  To smooth over the fact that  install programs for most software need to run as Administrator, it uses heuristics to detect whether a program is an installer.  One of these is to look at the file name - if it contains "setup" in the name (among others), it is treated as an installer.<br/><br/>This is a problem if you develop <a href="http://www.chocolate-doom.org/wiki/index.php/Textscreen" rel="nofollow">a program</a> that is not an installer but has "<a href="http://doom.wikia.com/wiki/Setup_program" rel="nofollow">setup</a>" in the name, because Windows treats it as though it is an installer and prompts you for administrator privileges. <br/><br/><h3>User Account Control</h3><br/>The first problem is that it prompts the user for administrator privileges.  This is part of the <a href="http://en.wikipedia.org/wiki/User_Account_Control" rel="nofollow">User Account Control</a> system.  Fortunately, there's a way around this - it's possible to embed a special "manifest" XML file inside the EXE that tells Windows that Administrator privileges aren't necessary.<br/><br/>Here's the magic manifest file to do this:<blockquote><pre>&lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&gt;

&lt;assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"&gt;
  &lt;assemblyIdentity version="0.0.0.0" processorArchitecture="X86"
                    name="foo.exe" type="win32"/&gt;
  &lt;trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"&gt;
    &lt;security&gt;
      &lt;requestedPrivileges&gt;
        &lt;requestedExecutionLevel level="asInvoker" uiAccess="false" /&gt;
      &lt;/requestedPrivileges&gt;
    &lt;/security&gt;
  &lt;/trustInfo&gt;
&lt;/assembly&gt;
</pre></blockquote><br/>The important part here is the "requestedExecutionLevel" statement, that specifies to run the program as the invoker.  I think the "uiAccess" element is necessary as well.  I'm not entirely sure what this control does, and there are some people who say <a href="http://blogs.msdn.com/cjacks/archive/2009/10/15/using-the-uiaccess-attribute-of-requestedexecutionlevel-to-improve-applications-providing-remote-control-of-the-desktop.aspx" rel="nofollow">it should be set to true</a>.  However, it seems that if set to true, the executable has to be digitally signed with a certificate, which all looks like a massive hassle, so I've just left it turned off.<br/><br/>The "assemblyIdentity" tag here matches the executable name, but I'm not sure it's actually necessary.  The version number is a dummy value.<br/><br/>Embedding it inside an executable is a matter of writing a resource file containing a statement to include the manifest file.  Here's the magic statement for that:<br/><blockquote><code>1 24 MOVEABLE PURE "setup-manifest.xml"</code></blockquote><br/>The resource file is then compiled to a .o (using windres) and incorporated into the build.<br/><br/><h3>Compatibility Assistant</h3><br/>So far, so good.  If the above is done properly, Windows won't prompt to run the program with administrator privileges any more.  However, that's not the end of the story.  Windows still thinks the program is an installer, just an installer that <i>doesn't need administrator privileges</i>.  The next problem is the "Program Compatibility Assistant".<br/><br/>If your program exits without writing any files to disk (in Chocolate Setup, it's possible to quit without saving configuration file changes, for example), the compatibility assistant appears.  Because Windows thinks the program is an installer, and it hasn't written any files to disk, it assumes that something must have gone wrong with installation, and it might be a compatibility problem with a program designed for an older version of Windows.  The assistant is supposed to help you resolve the problems you've encountered.<br/><br/>To work around this requires an addition to the manifest file to state that Vista (and Windows 7) are supported OSes; therefore, if no files are written, it's no problem.  Here's the new version of the manifest:<br/><blockquote><pre>&lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&gt;

&lt;assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"&gt;
  &lt;assemblyIdentity version="0.0.0.0" processorArchitecture="X86"
                    name="foo.exe" type="win32"/&gt;
  &lt;trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"&gt;
    &lt;security&gt;
      &lt;requestedPrivileges&gt;
        &lt;requestedExecutionLevel level="asInvoker" uiAccess="false" /&gt;
      &lt;/requestedPrivileges&gt;
    &lt;/security&gt;
  &lt;/trustInfo&gt;

<b>  &lt;!-- Stop the Program Compatibility Assistant appearing: --&gt;

  &lt;compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"&gt;
    &lt;application&gt;
      &lt;supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/&gt; &lt;!-- 7 --&gt;
      &lt;supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/&gt; &lt;!-- Vista --&gt;
    &lt;/application&gt;
  &lt;/compatibility&gt; </b>
&lt;/assembly&gt;</pre></blockquote><br/><br/><h3> References </h3><ul><li> <a href="http://www.cygwin.com/ml/cygwin/2006-12/msg00580.html" rel="nofollow">The same problem as it occurred in Cygwin</a><br/></li><li> <a href="http://msdn.microsoft.com/en-us/library/dd371711%28VS.85%29.aspx" rel="nofollow">Microsoft documentation on manifest files and compatibility</a><br/></li></ul></div>
    </content>
    <updated>2011-12-14T13:31:28Z</updated>
    <published>2009-12-10T13:05:58Z</published>
    <source>
      <id>urn:lj:livejournal.com:atom1:fragglet</id>
      <author>
        <name>fragglet</name>
      </author>
      <link href="http://fragglet.livejournal.com/" rel="alternate" type="text/html"/>
      <link href="http://fragglet.livejournal.com/data/atom" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>fragglet</subtitle>
      <title>fragglet</title>
      <updated>2011-12-24T12:45:22Z</updated>
    </source>
  </entry>

  <entry>
    <id>urn:lj:livejournal.com:atom1:fragglet:15872</id>
    <link href="http://fragglet.livejournal.com/15872.html" rel="alternate" type="text/html"/>
    <link href="http://fragglet.livejournal.com/data/atom/?itemid=15872" rel="self" type="text/xml"/>
    <title>The Buddha Lounge</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">The Indian restaurant opposite my house, which was called <a href="http://www.natrajbalti.co.uk/Main/home/index.php" rel="nofollow">The Natraj</a>, has reinvented itself as a trendy bar, called "The Buddha Lounge".  This is ironic on multiple levels.<br/><br/>Firstly, the <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Five_Precepts" rel="nofollow">Five precepts</a> of Buddhism forbid the consumption of alcohol or intoxicating substances. Secondly, the more strict <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Eight_precepts#Eight_Precepts" rel="nofollow">Eight precepts</a> encourage followers to abstain from music and dancing, and also from all sexual activity (and the main purpose of these types of bar is basically to find willing sexual partners).  Finally, followers also refrain from "luxurious places for sitting or sleeping", so even the "lounge" part is out.<br/><br/>What's next, the Jesus Casino?</div>
    </content>
    <updated>2011-12-14T13:30:10Z</updated>
    <published>2008-12-23T00:11:29Z</published>
    <source>
      <id>urn:lj:livejournal.com:atom1:fragglet</id>
      <author>
        <name>fragglet</name>
      </author>
      <link href="http://fragglet.livejournal.com/" rel="alternate" type="text/html"/>
      <link href="http://fragglet.livejournal.com/data/atom" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>fragglet</subtitle>
      <title>fragglet</title>
      <updated>2011-12-24T12:45:22Z</updated>
    </source>
  </entry>

  <entry>
    <id>urn:lj:livejournal.com:atom1:fragglet:17181</id>
    <link href="http://fragglet.livejournal.com/17181.html" rel="alternate" type="text/html"/>
    <link href="http://fragglet.livejournal.com/data/atom/?itemid=17181" rel="self" type="text/xml"/>
    <title>IPv6</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><a href="http://fragglet.livejournal.com/data/atom">IPv6</a> is something that I've been interested in for a while; I was even <a href="http://www.soulsphere.org/hacks/ipv6/" rel="nofollow">employed</a> to do some v6 porting work a few years ago.  Unfortunately, even though it's been several years and <a href="https://secure.wikimedia.org/wikipedia/en/wiki/IPv4_address_exhaustion" rel="nofollow">address exhaustion is rapidly approaching</a>, uptake remains slow.<br/><br/>As I see it there are several problems with IPv6 adoption:<br/><ol><li> Software doesn't support it<br/></li><li> Hardware doesn't support it<br/></li><li> ISPs don't provide it</li></ol><br/>As these go, (1) isn't actually that big a problem now.  A lot of the most important software already supports v6.  Ubuntu/Debian seems to just work with IPv6 (and presumably other Linux distributions as well), and even Windows supports it by default <a href="http://www.microsoft.com/technet/network/ipv6/ipv6faq.mspx" rel="nofollow">as of Vista</a> (there's also a downloadable package for XP).  Software packages like Firefox work out of the box.<br/><br/>(2) is still a big issue for a lot of hardware but I suspect that there's a lot of hardware now that supports it, but has it turned off (routers, etc).  (3) is simply a fact; I haven't heard of any ISPs supporting v6, and I suspect a lot of that is dependent on (2).<br/><br/><h3> 6to4 </h3><br/><a href="https://secure.wikimedia.org/wikipedia/en/wiki/6to4" rel="nofollow">6to4</a> (not to be confused with <a href="https://secure.wikimedia.org/wikipedia/en/wiki/6in4" rel="nofollow">6in4</a> or <a href="https://secure.wikimedia.org/wikipedia/en/wiki/6over4" rel="nofollow">6over4</a>, thanks for the clear naming, guys), is in my opinion an excellent piece of engineering and exactly what is needed to fuel IPv6 adoption.  It solves the hardware/ISP problems by tunneling v6 traffic over v4; however, the clever part about it is that it does this without the need to register an account with a tunnel provider or explicitly configure it.  I first became aware of 6to4 when I heard that the Apple Extreme base station has it enabled by default, which I think demonstrates its potential; it's possible to circumvent the remaining hardware/ISP problems with IPv6 just by getting manufacturers of broadband routers to adopt 6to4.<br/><br/>With 6to4, tunnels are made <i>opportunistically</i> between v4 addresses, which means that if you have two machines using 6to4, they can communicate directly, without the overhead that routing through a third party would cause (If this sounds a bit pointless, consider that it means two machines both behind NAT gateways in the v4 world can have end-to-end connectivity in the v6 world). Any other v6 data is sent to a magic <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Anycast" rel="nofollow">anycast</a> address that automatically routes v6 data to the closest v6 gateway.<br/><br/>With 6to4, a machine has an IPv6 address range that is derived from its public IPv4 address.  For example, if your IPv4 address is 1.2.3.4, your IPv6 subnet range is 2002:0102:0304::/48.  IPv6 traffic for that range automatically gets sent to that IPv4 address. What really happens is that your 6to4-enabled broadband router assigns addresses from this range to machines on your home LAN.<br/><br/><h3> Setting up 6to4 </h3><br/>My DSL router doesn't support 6to4; however, I managed to work around this. My router <i>does</i> support port forwarding (actually, protocol forwarding in this case), and I have a Linux machine in my lounge that I use as a media centre/server.<br/><br/>The first step was to set up a rule on the router to forward 6to4 data to the server machine.	I have a <a href="http://corz.org/comms/hardware/router/bt.voyager.205_router.how-to.php" rel="nofollow">BT Voyager</a> router which is helpfully quite flexible in this respect. 6to4 data is IP traffic with a protocol number of 41. From the router's command line interface, this did the job:<br/><blockquote><tt><br/>create nat rule entry ruleid 41416 rdr prot num 41 lcladdrfrom 192.168.1.6 lcladdrto 192.168.1.6 <br/></tt></blockquote><br/>It was then a case of configuring the server to do 6to4.  As it is running Ubuntu, I added this to <tt>/etc/network/interfaces</tt>:<br/><blockquote><pre>iface tun6to4 inet6 v4tunnel
	address 2002:0102:0304::1
	netmask 16
	endpoint any
	local 192.168.1.6
	ttl 255
	remote 192.88.99.1
	post-up ip -6 route add 2000::/3 via ::192.88.99.1 dev tun6to4
	post-down ip -6 route flush dev tun6to4

auto tun6to4
</pre></blockquote><br/>A simple "<tt>sudo ifup tun6to4</tt>" and the tunnel device should come up.  It should then be possible to ping IPv6 addresses:<br/><blockquote><pre>$ ping6 ipv6.google.com
PING ipv6.google.com(2001:4860:a003::68) 56 data bytes
64 bytes from 2001:4860:a003::68: icmp_seq=1 ttl=61 time=53.8 ms
64 bytes from 2001:4860:a003::68: icmp_seq=2 ttl=61 time=52.5 ms
64 bytes from 2001:4860:a003::68: icmp_seq=3 ttl=61 time=45.5 ms
64 bytes from 2001:4860:a003::68: icmp_seq=4 ttl=61 time=51.5 ms
</pre></blockquote><br/><br/><h3> Routing </h3><br/>At this point, the server has IPv6 connectivity, but what I really want is every machine on the network to have it.  So the next step is to set up the server as an IPv6 router.<br/><br/>To do this, other machines need to know that the server is a router and acquire IPv6 addresses.  In IPv4, this is usually done with a <a href="https://secure.wikimedia.org/wikipedia/en/wiki/DHCP" rel="nofollow">DHCP server</a> handing out addresses from a pool.  Instead, with IPv6, routers <i>advertise</i> their address ranges, and the clients automatically construct an address.  This is possible because of the vast address range in IPv6.<br/><br/>A package called <tt>radvd</tt> (router advertisement daemon) sends router advertisements.  It's in the Debian package repository and very easy to configure.  This is my <tt>/etc/radvd.conf</tt> file:<br/><blockquote><pre>interface eth0
{
	AdvSendAdvert on;
	prefix 2002:0102:0304:face::/64
	{
		AdvOnLink on;
		AdvAutonomous on;
		AdvRouterAddr on;
	};
};
</pre></blockquote><br/>Notice that I've defined a subnet range for clients.  The address range given by 6to4 is 2002:0102:0304::/48, while radvd assigns addresses in the 2002:0102:0304:face::/64 range.  Next, I statically assign an address in this range in <tt>/etc/network/interfaces</tt> by adding this:<br/><blockquote><pre>iface eth0 inet6 static
        address 2002:0102:0304:face::1
	netmask 64
</pre></blockquote><br/>Now the router advertisements are handing out v6 addresses to other machines on the network, and the server has an address within the subnet range to communicate with them.  It's then just a matter of turning on routing.  Add this to <tt>/etc/sysctl.conf</tt>:<br/><blockquote><pre>net.ipv6.conf.all.forwarding=1
net.ipv6.conf.default.forwarding=1
</pre></blockquote><br/>Or to make it take effect immediately:<br/><blockquote><pre>sudo sysctl net.ipv6.conf.all.forwarding=1
sudo sysctl net.ipv6.conf.default.forwarding=1
</pre></blockquote><br/>That's it!  Here's the output from <tt>ifconfig</tt> on another machine on my network:<br/><blockquote><pre>wlan0     Link encap:Ethernet  HWaddr 00:1c:10:63:63:d0
          inet addr:192.168.1.25  Bcast:192.168.1.255  Mask:255.255.255.0
          <b>inet6 addr: 2002:0102:0304:face:21c:10ff:fe63:63d0/64 Scope:Global</b>
          inet6 addr: fe80::21c:10ff:fe63:63d0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7658 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7228 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:4073660 (4.0 MB)  TX bytes:903010 (903.0 KB)
</pre></blockquote><br/>And here's Google IPv6:<br/><blockquote><a href="http://www.soulsphere.org/img/screenshots/ipv6-google.png" rel="nofollow"><br/><img src="http://www.soulsphere.org/img/screenshots/ipv6-google-thumb.png"/><br/></a></blockquote><br/>Note that in the examples above, I've obscured my 6to4 address range to 2002:0102:0304::, to hide my IPv4 address, for privacy.  If you want to follow my instructions, this needs to be replaced with your own public IPv4 address.</div>
    </content>
    <updated>2011-12-14T13:29:51Z</updated>
    <published>2009-03-20T22:03:27Z</published>
    <source>
      <id>urn:lj:livejournal.com:atom1:fragglet</id>
      <author>
        <name>fragglet</name>
      </author>
      <link href="http://fragglet.livejournal.com/" rel="alternate" type="text/html"/>
      <link href="http://fragglet.livejournal.com/data/atom" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>fragglet</subtitle>
      <title>fragglet</title>
      <updated>2011-12-24T12:45:22Z</updated>
    </source>
  </entry>

  <entry>
    <id>urn:lj:livejournal.com:atom1:fragglet:19450</id>
    <link href="http://fragglet.livejournal.com/19450.html" rel="alternate" type="text/html"/>
    <link href="http://fragglet.livejournal.com/data/atom/?itemid=19450" rel="self" type="text/xml"/>
    <title>Most absurd CMOS battery ever?</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I have a <a href="http://www.zone6400.com/" rel="nofollow">Performa 6400</a> PowerMac, which I bought off <a href="http://andylandy.livejournal.com/">a friend</a> several years ago.  It runs Linux and I use it for portability testing (as it's a big endian machine).  Considering its age, it's not surprising that the battery for the onboard clock ran out years ago.  It's not a huge problem, but it's certainly annoying to have <i>make</i> complain about modification dates in the future, and be confronted with "filesystem has not been checked for 19370 days" on boot-up.  So I decided to replace the battery.<br/><p><br/><a href="http://www.laptopsolutions.net/840-rayovac.htm" rel="nofollow">This is the battery</a> that is supposed to go in it.  Almost £15 for a battery!  This seemed far too expensive to me, so I set out to find an alternative. Unfortunately 4.5 volt batteries are rather uncommon.  However, I managed to find this, which was listed as a "lantern battery" used for torches, bike lamps and doorbells.  I suspect that there are probably 3 AA batteries inside:<br/></p><p><br/><a href="http://www.soulsphere.org/img/blog/absurd-cmos/01-battery-comparison.jpg" rel="nofollow"><img src="http://www.soulsphere.org/img/blog/absurd-cmos/01sm-battery-comparison.jpg"/></a><br/><br/>- Greencell 312G 4.5V lantern battery alongside the original (depleted) CMOS battery.<br/></p><p><br/>I did a quick sanity check of the old battery to make sure I had the polarity right.  The voltage is down to 1V:<br/></p><p><br/><a href="http://www.soulsphere.org/img/blog/absurd-cmos/02-battery-voltage.jpg" rel="nofollow"><img src="http://www.soulsphere.org/img/blog/absurd-cmos/02sm-battery-voltage.jpg"/></a><br/></p><p><br/>All that needs to be done now is to connect the connector from the old battery to the new one. I've always been hopeless at soldering, but fortunately this is a job that is simple enough for sellotape.<br/></p><p><br/><a href="http://www.soulsphere.org/img/blog/absurd-cmos/05-hacked-battery" rel="nofollow"><img src="http://www.soulsphere.org/img/blog/absurd-cmos/05sm-hacked-battery.jpg"/></a><br/></p><p><br/>This is the logic board from the Mac.  I've maxed out the RAM and added PCI Ethernet and USB cards. The black square at the bottom left is where the battery is supposed to be attached (it has a velcro strip at the back).<br/></p><p><br/><a href="http://www.soulsphere.org/img/blog/absurd-cmos/03-logic-board.jpg" rel="nofollow"><img src="http://www.soulsphere.org/img/blog/absurd-cmos/03sm-logic-board.jpg"/></a><br/></p><p><br/>Obviously this is far too small for the new battery, and the card slides into the back of the machine, mounted vertically.  It has to be attached to the board somehow.  Where can it go?<br/></p><p><br/><a href="http://www.soulsphere.org/img/blog/absurd-cmos/04-new-battery.jpg" rel="nofollow"><img src="http://www.soulsphere.org/img/blog/absurd-cmos/04sm-new-battery.jpg"/></a><br/></p><p><br/>Fortunately, the engineers at Apple were apparently smart enough to anticipate this very problem, and designed a convenient space on the riser card to put the battery in.</p></div>
    </content>
    <updated>2011-12-14T13:28:20Z</updated>
    <published>2010-09-06T11:16:19Z</published>
    <source>
      <id>urn:lj:livejournal.com:atom1:fragglet</id>
      <author>
        <name>fragglet</name>
      </author>
      <link href="http://fragglet.livejournal.com/" rel="alternate" type="text/html"/>
      <link href="http://fragglet.livejournal.com/data/atom" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>fragglet</subtitle>
      <title>fragglet</title>
      <updated>2011-12-24T12:45:22Z</updated>
    </source>
  </entry>

  <entry>
    <id>urn:lj:livejournal.com:atom1:fragglet:19646</id>
    <link href="http://fragglet.livejournal.com/19646.html" rel="alternate" type="text/html"/>
    <link href="http://fragglet.livejournal.com/data/atom/?itemid=19646" rel="self" type="text/xml"/>
    <title>How to coerce gdb into giving a backtrace</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">When debugging with gdb, I sometimes encounter a problem in getting it to recognise a stack trace.  Sometimes it only gives a few function calls, or none at all.  Here's an example:<br/><blockquote><pre>(gdb) bt
#0  0xb7886424 in __kernel_vsyscall ()
#1  0xb7559163 in ?? () from /lib/i686/cmov/libc.so.6
#2  0xb74f1387 in ?? () from /lib/i686/cmov/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
</pre></blockquote><br/>This obviously isn't a very useful backtrace.  At this point it can be useful to have a look at the registers and the contents of the stack.<br/><blockquote><pre>(gdb) info registers
eax            0xfffffe00	-512
ecx            0x80	128
edx            0x2	2
ebx            0xb75c33a0	-1218694240
esp            0xbfe55018	0xbfe55018    <b>&lt;= stack pointer on x86 </b>
ebp            0xbfe55048	0xbfe55048
esi            0x0	0
edi            0x0	0
eip            0xb7886424	0xb7886424 &lt;__kernel_vsyscall+16&gt;
eflags         0x202	[ IF ]
cs             0x73	115
ss             0x7b	123
ds             0x7b	123
es             0x7b	123
fs             0x0	0
gs             0x33	51
(gdb) x/64x $sp
0xbfe55018:	<b>0xbfe55048</b>	0x00000002	0x00000080	0xb7559163
0xbfe55028:	0xb75c33a0	0xb75c1ff4	0x09ec0470	0xb74f1387
0xbfe55038:	0xb77c4afd	0xb782199c	0xb782199c	0x09ec0478
0xbfe55048:	<b>0xbfe55078</b>	0xb77c4bf4	0x09ec0478	0xb782199c
0xbfe55058:	0x0000ffff	0xb75c3438	0xbfe55098	0xb789a240
0xbfe55068:	0x00000000	0xb782199c	0x0000ffff	0xb75c3438
0xbfe55078:	<b>0xbfe55098</b>	0xb7818736	0x09ec0478	0x00000000
0xbfe55088:	0xb77c50cd	0xb782199c	0xb7818709	0xb782199c
0xbfe55098:	<b>0xbfe550b8</b>	0xb77c54ad	0x00000000	0x00000000
0xbfe550a8:	0x0000000b	0xb75c3438	0xb77c5449	0xb782199c
0xbfe550b8:	<b>0xbfe550c8</b>	0xb77bb7dd	0xb782199c	0x0000000b
0xbfe550c8:	<b>0xbfe550e8</b>	0xb77bb84e	0x0000ffff	0xb789a240
0xbfe550d8:	0x00000000	0xb77bb830	0xb77bb839	0xb782199c
0xbfe550e8:	<b>0xbfe55108</b>	0xb77bc08f	0x0000000b	0x00000000
0xbfe550f8:	0x00000000	0x00000010	0xb75c1ff4	0x3efafafb
0xbfe55108:	<b>0xbfe556c8</b>	0xb7886400	0x0000000b	0x00000033
</pre></blockquote><br/>The values in bold are the frame pointers, forming a linked list back up the stack.  If you compiled with <tt>-fomit-frame-pointer</tt> things will be harder to figure out.  In this case it certainly doesn't look like the stack is corrupt.  Perhaps gdb is just confused.<br/><p><br/>Pick a location slightly further up the stack and set the <tt>$sp</tt> variable, and suddenly backtrace works!<br/></p><blockquote><pre>(gdb) set $sp=0xbfe55048
(gdb) bt
#0  0xb7886424 in __kernel_vsyscall ()
#1  0xb782199c in ?? () from /usr/lib/libSDL-1.2.so.0
#2  0xb7818736 in ?? () from /usr/lib/libSDL-1.2.so.0
#3  0xb77c54ad in ?? () from /usr/lib/libSDL-1.2.so.0
#4  0xb77bb7dd in SDL_QuitSubSystem () from /usr/lib/libSDL-1.2.so.0
#5  0xb77bb84e in SDL_Quit () from /usr/lib/libSDL-1.2.so.0
#6  0xb77bc08f in ?? () from /usr/lib/libSDL-1.2.so.0
#7  
#8  0xb74ede80 in ?? () from /lib/i686/cmov/libc.so.6
#9  0xb74efc8c in malloc () from /lib/i686/cmov/libc.so.6
#10 0xb7764eec in ?? () from /usr/lib/libSDL_mixer-1.2.so.0
#11 0xb7765b98 in Mix_SetPanning () from /usr/lib/libSDL_mixer-1.2.so.0
#12 0x080828b1 in I_SDL_StartSound (id=-1218694088, channel=-1218699276, 
    vol=120, sep=38) at i_sdlsound.c:671
#13 0x08073e9b in S_StartSound (origin_p=0xb624f990, sfx_id=22)
    at s_sound.c:656
#14 0x08061459 in T_MoveFloor (floor=0xb63271b8) at p_floor.c:220
#15 0x0806d0ea in P_RunThinkers () at p_tick.c:119
#16 0x0806d161 in P_Ticker () at p_tick.c:153
#17 0x08052fb6 in G_Ticker () at g_game.c:1151
#18 0x0804dbf4 in D_DoomLoop () at d_main.c:437
#19 0x0804ecc0 in D_DoomMain () at d_main.c:1506
#20 0x08054d1c in main (argc=5, argv=0xbfe55d04) at i_main.c:152
</pre></blockquote></div>
    </content>
    <updated>2011-12-14T13:28:01Z</updated>
    <published>2010-11-23T20:38:03Z</published>
    <source>
      <id>urn:lj:livejournal.com:atom1:fragglet</id>
      <author>
        <name>fragglet</name>
      </author>
      <link href="http://fragglet.livejournal.com/" rel="alternate" type="text/html"/>
      <link href="http://fragglet.livejournal.com/data/atom" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>fragglet</subtitle>
      <title>fragglet</title>
      <updated>2011-12-24T12:45:22Z</updated>
    </source>
  </entry>

  <entry>
    <id>urn:lj:livejournal.com:atom1:fragglet:19966</id>
    <link href="http://fragglet.livejournal.com/19966.html" rel="alternate" type="text/html"/>
    <link href="http://fragglet.livejournal.com/data/atom/?itemid=19966" rel="self" type="text/xml"/>
    <title>Initialisation dogma considered harmful</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">In C, variables aren't initialised to a value automatically.  I've seen some people who seem to have adopted a rule of initialising every variable they use when they declare it.  That is to say, they write code like this:<br/><blockquote><pre>   void frobnicate(void)
   {
       int num_frobs = 0;
       void *frobs = NULL;

       num_frobs = get_num_frobs();
       frobs = malloc(num_frobs);

       ....
</pre></blockquote><br/>Even though they initialise the variables before using them in their code, they include an initialiser in the declaration to set the value to zero or NULL.  Presumably the logic is something like: variables that aren't initialised can hold any value, which can cause bugs, so it's a good idea to always initialise every variable <i>just in case</i>.<br/><p><br/>I think this is an actively harmful practise and should be discouraged.  The reason I think this is that modern C compilers can detect when variables might be used without being initialised first (and gcc is scarily good at it), and adopting a rule like this of initialising everything breaks that functionality.  Consider an example like this:<br/></p><blockquote><pre>    void clever_function_name(void)
    {
        mystruct *obj = NULL;
        int bar = 0;

        if (somecondition) {
            obj = new_mystruct();
            bar = 1;
        } else {
            // oops, forgot to initialise obj here as well
            bar = 2;
        }

        ...

        obj-&gt;member = bar;
    }
</pre></blockquote><br/>In this situation, "obj" is "uninitialised", as there is a code path where it isn't set that leads to a crash.  But technically, it <i>has</i> been initialised in the variable declaration, as part of this initialisation dogma.  If it hadn't, the compiler would have been able to detect this bug, but it can't.<br/><p><br/>I think the key thing is that initialising to a value like zero or NULL doesn't actually solve anything or prevent any bugs because it's just an arbitrary value.  In a general sense, having a variable that is set to those values isn't any more helpful than having some random garbage that got left on the stack.  It doesn't prevent uninitialised variable bugs, but it does prevent the compiler from detecting them.</p></div>
    </content>
    <updated>2011-12-14T13:27:07Z</updated>
    <published>2010-11-25T21:56:37Z</published>
    <source>
      <id>urn:lj:livejournal.com:atom1:fragglet</id>
      <author>
        <name>fragglet</name>
      </author>
      <link href="http://fragglet.livejournal.com/" rel="alternate" type="text/html"/>
      <link href="http://fragglet.livejournal.com/data/atom" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>fragglet</subtitle>
      <title>fragglet</title>
      <updated>2011-12-24T12:45:22Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jmtd.net/log/flowers_for_algernon/</id>
    <link href="http://jmtd.net/log/flowers_for_algernon/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/flowers_for_algernon/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/flowers_for_algernon/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>Flowers for Algernon — Daniel Keyes</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>A melancholic look at intellectual disability and how it was regarded and
treated by the society of the time (1960s). Despite an inevitable conclusion, it was enjoyable and thought provoking.</p></div>
    </content>
    <updated>2011-12-02T15:42:08Z</updated>
    <published>2011-12-02T15:38:38Z</published>
    <category term="book log"/>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2012-01-03T09:19:20Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jmtd.net/log/mail_archiving/</id>
    <link href="http://jmtd.net/log/mail_archiving/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/mail_archiving/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/mail_archiving/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>mail archiving</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>I wrote a quick proof-of-concept script that can traverse my email (in local
Maildir format) and detach all attachments: saving them to another location
and replacing them with a text attachment which documents where they've gone.</p>

<p>This reduces my work mailbox size substantially and allows for more
space-efficient storage of the attachments (utilising all 8 bits of the byte,
at the very least, but with the potential for compression to be added to the
mix).  It maintains the link between email and attachment, however, which is
crucial if the method of discovery of the attachment in the future is to find
the email.</p>

<p>For this to be future proof, the path where the mail is saved needs to be.  The
best scheme I can think of involves dedicating a sub-domain to the problem and
using a URI scheme which is guaranteed<a class="footnote" href="http://jmtd.net/log/#fn:hashcollision" id="fnref:hashcollision">1</a> to be unique for the
attachment, such as a hash-sum:</p>

<pre><code>https://file.example.com/sha1/509c2fe2eba509e93987c3024a74d74583c274bd
</code></pre>

<p>I could finish up my script, set my my own personal infrastructure for this
and convert my mailbox with a few hours more work. Before I do, I have two
questions:</p>

<ul>
<li>Is this already available in an open source tool: am I re-inventing
the wheel needlessly?</li>
<li>Would anyone else find this useful?</li>
</ul>

<div class="footnotes">
<hr/>
<ol>

<li id="fn:hashcollision"><p>within the practical limitations of hashing algorithms, at least.<a class="reversefootnote" href="http://jmtd.net/log/#fnref:hashcollision"> ↩</a></p></li>

</ol>
</div></div>
    </content>
    <updated>2011-11-29T19:21:45Z</updated>
    <published>2011-11-29T19:17:55Z</published>
    <category term="cs.ncl.ac.uk"/>
    <category term="email"/>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2011-12-29T10:21:27Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://derekmd.com/?p=3638</id>
    <link href="http://derekmd.com/2011/11/lets-be-vague/" rel="alternate" type="text/html"/>
    <link href="http://derekmd.com/2011/11/lets-be-vague/#comments" rel="replies" type="text/html"/>
    <link href="http://derekmd.com/2011/11/lets-be-vague/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Let’s Be Vague</title>
    <summary xml:lang="en">Decided to pick it up again, maybe finish it. Seven levels.</summary>
    <updated>2011-11-28T01:17:05Z</updated>
    <published>2011-11-28T01:17:05Z</published>
    <category scheme="http://derekmd.com" term="Gaming"/>
    <category scheme="http://derekmd.com" term="Doom"/>
    <category scheme="http://derekmd.com" term="Odium"/>
    <author>
      <name>Derek</name>
      <uri>http://last.fm/user/Afterglew/</uri>
    </author>
    <source>
      <id>http://derekmd.com/feed/atom/</id>
      <link href="http://derekmd.com" rel="alternate" type="text/html"/>
      <link href="http://derekmd.com/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">This is not 'Nam. There are rules.</subtitle>
      <title xml:lang="en">Derek MacDonald</title>
      <updated>2012-02-02T16:58:42Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jmtd.net/log/in_response/</id>
    <link href="http://jmtd.net/log/in_response/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/in_response/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/in_response/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>In response to Andrew Cowie</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://blogs.operationaldynamics.com/andrew/software/gnome-desktop/gnome-3-experience">Andrew Cowie blogs about 'A good GNOME 3
Experience'</a>.
He writes</p>

<blockquote>
  <p>I think it’s a bit odd not to expect that something that was widely
  advertised as being such a different user experience is … different.</p>
</blockquote>

<p>and</p>

<blockquote>
  <p>if they had gone and bought an Apple laptop with Mac OS X on it they would be
  perfectly reasonably working through learning how to use a new Desktop and
  not complaining about it at all. But here we are admonishing the GNOME
  hackers had the temerity to do something new and different.</p>
</blockquote>

<p>I think Andrew's phrasing here is a bit disingeneous. Or perhaps he genuinely
mistakes the frustration that has been felt by GNOME 3.  I don't want to whine
on too much, so I'll try to get this out of the way in one paragraph.</p>

<p>F/OSS users are members of a community.  There is inevitably a wall between the
majority of community members and the blessed: the decision makers, the
developers.  The art of maintaining a good community is partly to do with
making this wall as invisible as possible:  encouraging participation, lowering
the barrier for contributions; welcoming feedback; etc.<a class="footnote" href="http://jmtd.net/log/#fn:gnomecommunity" id="fnref:gnomecommunity">1</a>. The
GNOME community have invested a lot into the GNOME 2 way of doing things, and
GNOME 3, by breaking away from that so fundamentally, has devalued the
community's investment. It screams: we don't want your panel widgets! We don't
want your themes!  Your working practices are wrong: this is the right way!
GNOME 3 is opinionated software, and it's opinion differs from a large body of
the GNOME community.  The result? resentment.  Remember: GNOME 3 is not just
something new: it's the abrupt termination of something old, tried and tested.</p>

<p>…and hopefully that's the last time I need to vent about my GNOME 3
frustration.  It's hear to stay, the question for the frustrated is: are you?
Moving on…</p>

<p>Andrew goes on to recommend:</p>

<blockquote>
  <p>One thing I do recommend is mapping (say) CapsLock as an additional “Hyper”
  …
  You do the mapping in:</p>
  
  <p>System Settings → Keyboard Layout → Layout tab → Options..</p>
</blockquote>

<p>I used to do this with GNOME 2, but I couldn't find how to do it on GNOME 3.
Andrew's post gave me the important hint that it was still possible, but the
precise location doesn't match: On my Fedora 16 / GNOME 3.2 system, it's
<em>System Settings → Region and Language → Layouts → Options…"</em>.</p>

<p>This is especially useful on my beloved UltraNav keyboard which lacks the
Windows 95 keys.  Sadly it does not work very well through various remote
desktop tools: I get an inconsistent capslock state within VMs connected
to via <code>VNC</code>. <code>rdesktop</code> seems ok.</p>

<div class="footnotes">
<hr/>
<ol>

<li id="fn:gnomecommunity"><p>I have more to write about GNOME in this context in a future post.<a class="reversefootnote" href="http://jmtd.net/log/#fnref:gnomecommunity"> ↩</a></p></li>

</ol>
</div></div>
    </content>
    <updated>2011-11-23T10:06:34Z</updated>
    <published>2011-11-21T14:46:05Z</published>
    <category term="linux"/>
    <category term="ui"/>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2011-12-21T17:39:40Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-7669319597798967102.post-5093177565831822375</id>
    <link href="http://blog.aradiel.co.uk/feeds/5093177565831822375/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/>
    <link href="http://www.blogger.com/comment.g?blogID=7669319597798967102&amp;postID=5093177565831822375" rel="replies" title="0 Comments" type="text/html"/>
    <link href="http://www.blogger.com/feeds/7669319597798967102/posts/default/5093177565831822375" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/7669319597798967102/posts/default/5093177565831822375" rel="self" type="application/atom+xml"/>
    <link href="http://blog.aradiel.co.uk/2011/11/zelda-takeover-day.html" rel="alternate" title="Zelda Takeover Day" type="text/html"/>
    <title>Zelda Takeover Day</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div>Just in time for the release of Skyward Sword I've managed to put together a video about the Zelda-focused day from Gamecity 6.</div><div>Enjoy.</div><div><br/></div><div>Oh, by the way - it's mp4 format. For some reason it won't let me attach the flv version as well, so I'm going to upload that separately, unfortunately.</div><div><br/></div><div><br/></div><div><br/></div><div>FLV version:</div><div><br/></div><div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/7669319597798967102-5093177565831822375?l=blog.aradiel.co.uk" width="1"/></div></div>
    </content>
    <updated>2011-11-18T12:56:21Z</updated>
    <published>2011-11-18T11:42:00Z</published>
    <author>
      <name>Joe</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/00031985767167992777</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-7669319597798967102</id>
      <category term="patsy"/>
      <category term="guy"/>
      <category term="psychonauts"/>
      <category term="Grox"/>
      <category term="alcohol"/>
      <category term="web"/>
      <category term="video"/>
      <category term="party"/>
      <category term="parody"/>
      <category term="games"/>
      <category term="Katamari"/>
      <category term="blood"/>
      <category term="insults"/>
      <category term="art"/>
      <category term="procrastination"/>
      <category term="dragonball"/>
      <category term="Spore"/>
      <category term="critic"/>
      <category term="review"/>
      <category term="satire"/>
      <category term="vampire"/>
      <category term="metaphysics"/>
      <category term="comments"/>
      <category term="evolution"/>
      <author>
        <name>Joe</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/00031985767167992777</uri>
      </author>
      <link href="http://blog.aradiel.co.uk/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/7669319597798967102/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://blog.aradiel.co.uk/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/7669319597798967102/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <subtitle>&lt;Insert arbitrary description here!&gt;</subtitle>
      <title>The blog</title>
      <updated>2012-02-02T18:10:23Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://derekmd.com/?p=3400</id>
    <link href="http://derekmd.com/2011/11/richfaces-richelement-workaround/" rel="alternate" type="text/html"/>
    <link href="http://derekmd.com/2011/11/richfaces-richelement-workaround/#comments" rel="replies" type="text/html"/>
    <link href="http://derekmd.com/2011/11/richfaces-richelement-workaround/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">RichFaces #{rich:element()} Workaround</title>
    <summary xml:lang="en">Working with the Seam Framework and RichFaces for over a year, I found their components work in the general case. i.e., the simplest of early oughts HTML forms. But complex AJAX views cause all sorts of difficulties once you get into EL expressions for iterated components (e.g., from &lt;rich:datatable&gt;) within &lt;f:subview&gt;-named scopes. The biggest challenge [...]</summary>
    <updated>2011-11-17T16:21:02Z</updated>
    <published>2011-11-17T16:21:02Z</published>
    <category scheme="http://derekmd.com" term="Computing"/>
    <author>
      <name>Derek</name>
      <uri>http://last.fm/user/Afterglew/</uri>
    </author>
    <source>
      <id>http://derekmd.com/feed/atom/</id>
      <link href="http://derekmd.com" rel="alternate" type="text/html"/>
      <link href="http://derekmd.com/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">This is not 'Nam. There are rules.</subtitle>
      <title xml:lang="en">Derek MacDonald</title>
      <updated>2012-02-02T16:58:42Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blog.brillskills.com/?p=291</id>
    <link href="http://blog.brillskills.com/2011/11/grid-layout-all-up-in-your-webkit/" rel="alternate" type="text/html"/>
    <title>Grid Layout comin’ to a Webkit near you</title>
    <summary>I heard on twitter from my homeboy Peter Beverloo1 that Google are gonna start implementing CSS Grid Layout in Webkit. This is rad news for web devs, for a few reasons: Firstly, CSS Grid Layout is just great. It’s a proposal from Microsoft on a new way to layout HTML components via CSS. See, one [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://twitter.com/#!/beverloo/status/135514595174531072">I heard on twitter</a> from my homeboy Peter Beverloo<sup>1 </sup>that Google <a href="https://lists.webkit.org/pipermail/webkit-dev/2011-November/018570.html">are gonna start</a> implementing <a href="http://dev.w3.org/csswg/css3-grid-align/">CSS Grid Layout</a> in Webkit. This is rad news for web devs, for a few reasons:</p>
<p>Firstly, CSS Grid Layout is just great. It’s a proposal from Microsoft on a new way to layout HTML components via CSS. See, one big problem with HTML/CSS over the years has been that the layout model was meant for documents, not for application UI. Document layout is pretty simple, you get a width as input, and then you lay words out in rows until you reach the end of a line. Then you go to the next line, and continue until you run out of words, at which point you get a height, and you can render a resulting box. Unfortunately, this doesn’t work at all for the layouts with buttons and widgets and columns and all the other crap that UIs have.</p>
<p>Web devs needed to find a way to build these kind of UIs on the web. The first way they did it was using HTML tables, because tables are pretty much perfect for building those kinds of UI. However, the problem was that HTML isn’t meant to be presentational, it’s meant to be “semantic”, where elements express the meaning of data rather than how it looks, and using tables for layout violates that principle. Presentation was meant to be controlled using CSS. However, CSS was originally created for styling documents, not laying out UI. It didn’t provide any obvious way to achieve equivalent results, nor was any such functionality forthcoming. Instead, web devs learned to abuse features such as margins, padding and (especially) floats to get the results they wanted. Later-on absolute positioning came along, which made things easier, but was still far from a silver bullet.</p>
<p>This difficulty lead to a schism in web development between those who build web sites using tables for layout. and those who use CSS. And it’s one that you still see see today, whenever people in blogs, forums, etc. discuss the topic of web development. A lot of developers, especially those who only do a bit of web development, really hate CSS. They don’t see any problem using tables for layout, and override objections with the argument that it is simply too awkward to try and build complex layouts with CSS. Most of these people aren’t building web sites for fortune 500 companies, more often just small firms and internal tools, but they’re still a sizeable group of vocally dissatisfied customers. Arguing back is usually an equal number of CSS apologists who are adamant that using tables for layout is an abhorrence, and that everything is easily achievable with CSS.</p>
<p>While I don’t use tables for layout, I do have sympathy with the former of the two groups. Building UIs with floats and margins is a horribly unnatural and unintuitive process, especially for the beginner. These features were never intended to be leveraged in this way, and in that respect it’s an abuse just as much as using tables for layout was. It’s also an approach that is practically impossible to build good visual tooling experience around. Something is badly wrong when doing things the “right” way is so difficult.</p>
<p>Some better means of laying out pages via CSS was badly needed, and for years the W3C worked on various half-assed proposals around adding columns and weird ASCII-art based templates, but nothing practical ever arrived in the browsers. Things weren’t helped of course by this being Internet Explorer’s wilderness years, where it was enjoying 90%+ market share and 0% development effort. However, while they were ignoring IE, Microsoft were building WPF and Silverlight, two closely related technologies that took a lot of inspiration from the web, while attempting to improve it. One such area of improvement was layout. In particular, they provided a grid layout container that could be used to lay out controls in rows and columns.</p>
<p>Finally, a couple of years ago, Microsoft started getting serious about the web again, and putting a lot more effort into improving IE and participating in the creation of web standards. They submitted a number of proposals to the W3C, and one such proposal was Grid Layout, essentially an adaption of the model they developed in WPF and Silverlight for HTML and CSS.</p>
<p>The key thing about Grid Layout is that the structure of the grid is not specified in markup. There are no &lt;tr&gt; and &lt;td&gt; elements containing things. Instead, there is just a container element of some kind, perhaps a &lt;div&gt;, and some other elements within it, and then the grid is specified through CSS properties that target the elements via their id.</p>
<p>While the grid layout is a major improvement on floats and margins for hand-coded layouts, its real strength is that it’s eminently toolable. It should finally be possible to build a visual design tool for HTML and CSS that is…</p>
<ul>
<li>Intuitive</li>
<li>Powerful</li>
<li>Round-tripping</li>
<li>Produces clean and straightforward markup and CSS</li>
</ul>
<p>Truly a promised land, eh? We’re not quite there yet, but the holy grail of easy layout for web UIs is within our grasp.</p>
<p>Microsoft themselves have already implemented Grid Layout and shipped it in previews of IE10, so it’ll be available on Windows 7 and Windows 8. There’s still the long tail of IE7-9 users to worry about, but at least there’s light at the end of the tunnel. Firefox doesn’t yet appearing to be working on support, although I expect they’ll try to get one in time for the Windows 8 release in order to stay competetitive, especially if webkit also has an implementation. <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=616605">There is a Firefox bug open here</a>, voting on it can’t hurt.</p>
<p><sup>1</sup>He’s not really my homeboy, I don’t even know him.</p></div>
    </content>
    <updated>2011-11-13T11:37:41Z</updated>
    <category term="Uncategorized"/>
    <author>
      <name>Jon</name>
    </author>
    <source>
      <id>http://blog.brillskills.com</id>
      <link href="http://blog.brillskills.com/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://blog.brillskills.com" rel="alternate" type="text/html"/>
      <subtitle>because nothing is really real until it's blogged about</subtitle>
      <title>Brillskills</title>
      <updated>2012-02-01T12:00:04Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blog.brillskills.com/?p=288</id>
    <link href="http://blog.brillskills.com/2011/11/288/" rel="alternate" type="text/html"/>
    <title>Development Developments</title>
    <summary>Work has been pretty crazy over the last few months, hence my not finding the time to write much here. As evidenced by my previous posts, when I do write I tend to ramble on for pages at a time, so rattling off a quick new post here and there wasn’t really an option. However, [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Work has been pretty crazy over the last few months, hence my not finding the time to write much here. As evidenced by my previous posts, when I do write I tend to ramble on for pages at a time, so rattling off a quick new post here and there wasn’t really an option. However, now that I’ve got my weekends back, I might have time to start blogging a little more, particularly on the technical side.</p>
<p>The past six months have been spent working on two projects. The first of these was a fairly significant Silverlight application for a financial services company. The second, which I’m still working on, is an AJAX intensive website for a property company. Somehow, through this work, I’ve transitioned from being a mainly server-side developer to being a mainly client-side one. Right now, 90% of the code I write is client-side JavaScript, which is something of a change from the 100% C# I was writing before this.</p>
<p>It’s certainly a change, but not an unwelcome one. I’ve always had an (un)healthy fascination with browsers and the client-side, um, side of web-development, but traditionally at my  firm, “real” programmers have done the server stuff, while designers and front-end specialists have handled the scripting stuff alongside the photoshop, HTML and CSS work, with little crossover between the two. However, the realities of, firstly, developing in Silverlight, and secondly, developing a complex AJAX interface, have meant the lines have become somewhat blurred.</p>
<p>The Silverlight project was an interesting experience. I’m not really a fan of proprietary web stacks, being more of an open-web advocate. Albeit one who is often driven to despair by the politics of the standardisation process and the glacial rate of advancement (mainly due to IE version lag). It also became increasingly clear as the project went on that Silverlight as a technology was sitting on a rather shaky foundation, as the news coming out of Microsoft regarding its future was not promising. In fact, just last week the shoe dropped, and Mary J Foley all but confirmed that the next release of Silverlight, version 5, will be the last.</p>
<p>What happened to cause this is, of course, the rise of the Smartphone and iOS, and the decline of Flash. Silverlight was developed by Microsoft purely as a competitive move against Adobe, in the days when it genuinely seemed possible that Flash might take over the web. Now that everyone agrees that isn’t going to happen, and focus is instead switching to “HTML5″ for the web and integrated app stores selling native apps. Indeed, even as we were finishing up work on the Silverlight app, work was beginning on an alternative HTML version to run on mobile platforms. From what I gather, that version may end up supplanting the Silverlight app on desktops as well.</p>
<p>It might sound like a frustrating experience, to invest that much time in what appears to be a doomed app and platform, but it was actually an incredibly useful one. As I said, I have no love of proprietary web stacks, and will not shed any tears over the death of Silverlight for that reason. On the other hand, I cannot deny that it is a fantastic piece of technology is many respects. It’s clearly the product of some smart people who looked at web development, understood what worked about it and what didn’t, and tried to make a technology that improved upon it. In some respects they succeeded, in some they didn’t. In some respects I think they succeeded even in-spite of themselves.</p>
<p>Working with Silverlight, and learning the patterns and practices required to implement a complex app, really helped me grasp the right way to build for the client-side web, in particular the use of the MVVM pattern and asynchronous operations. In many ways Silverlight forces you, or at least strongly encourages you, down the right path in these areas, and this is tremendously useful when you move back to regular web development using HTML, CSS and JavaScript. That is something I want to expand on in future posts, and go into the kinds of libraries and patterns that have been particularly useful in my latest work project. I think that’ll do for now though.</p></div>
    </content>
    <updated>2011-11-13T01:07:55Z</updated>
    <category term="Uncategorized"/>
    <author>
      <name>Jon</name>
    </author>
    <source>
      <id>http://blog.brillskills.com</id>
      <link href="http://blog.brillskills.com/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://blog.brillskills.com" rel="alternate" type="text/html"/>
      <subtitle>because nothing is really real until it's blogged about</subtitle>
      <title>Brillskills</title>
      <updated>2012-02-01T12:00:04Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jmtd.net/log/games_team/</id>
    <link href="http://jmtd.net/log/games_team/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/games_team/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/games_team/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>Retiring from the Debian games team</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>After over five years, I've decided to <a href="http://lists.debian.org/debian-devel-games/2011/11/msg00022.html">retire from the Debian Games
Team</a>.</p>

<p>The games team has been a fun group to work within Debian:  packaging
doom-related programs was my route into Debian and I've really enjoyed it.</p>

<p>Spare time is very tight at the moment, and I'm not dedicating much at all to
Debian work.  Within that, I'd quite like to try and focus on some other areas.</p>

<p>Good luck to the team going forward!</p></div>
    </content>
    <updated>2011-11-11T10:28:35Z</updated>
    <published>2011-11-11T10:25:09Z</published>
    <category term="debian"/>
    <category term="games"/>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2011-12-19T16:46:25Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jmtd.net/log/minecraft/</id>
    <link href="http://jmtd.net/log/minecraft/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/minecraft/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/minecraft/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>Minecraft</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><div class="image">
<a href="http://jmtd.net/log/./minecraft/1.jpg"><img alt="The Archipelago" class="img" height="120" src="http://jmtd.net/log/./minecraft/213x120-1.jpg" width="213"/></a>

<p>The Archipelago</p>

</div>

<div class="image">
<a href="http://jmtd.net/log/./minecraft/2.png"><img alt="Bird's eye view" class="img" height="109" src="http://jmtd.net/log/./minecraft/203x110-2.png" width="203"/></a>

<p>Bird's eye view</p>

</div>

<p>You're on a small island in the middle of a vast ocean. There's nothing but
dirt, stone and grass on the your island, which is part of a tiny archipelago.
One of the nearby islands features a dark cave, with what looks like a coal
seam near the entrance. You can glimps two small trees on another island
nearby.</p>

<p>All around your little clutch of islands is what appears to be vast, unending
ocean in all directions.</p>

<p>It's midday and you need to make yourself safe for the night. You can use the
wood from the trees to craft a pickaxe. With this, you can fetch some coal
from the seam. With the coal, you can create some torches, to see in the dark.
You might have enough wood left over to make a door, if you're lucky. Or
perhaps you should save it to craft a boat, or a sword. Groans from something
unknown emanate worryingly closely from the darkness of the cave.</p>

<p>You're lucky: one of your two trees has dropped a sapling. You eagerly plant
it. In a few days time, you might be able to harvest some more wood. You've
been granted a temporary reprieve, but the law of diminishing returns means at
some point, and soon, you'll run out of wood.</p>

<p>Swimming is time-consuming. By the time you have assembled a meagre supply of
wood and coal, it's almost sunset. You nervously dig a burrow in the mud of
your original island, light it with a torch and block the entrance back up.
Night passes slowly as you listen to <em>things</em> crawling around in the darkness
outside.</p>

<p>I first learned about <a href="http://minecraft.net/">Minecraft</a> from <a href="http://orbit.vect.org/?item=170">this blog post
by Mike Watson</a> last year. Mike did a great
job of demonstrating the narrative power of the game and his post left a
lasting impression on me.</p>

<p>Every now and then I dip in to Minecraft to see what's new since the last time
I played it. In the last few months version 1.8 was released and so I started a
new map to check it out. I ended up with a corker of a randomly-generated map.
Inspired by Mike's post, I thought I'd write a bit about it. In a follow-up
post I will provide the map itself.</p></div>
    </content>
    <updated>2011-11-09T17:19:35Z</updated>
    <published>2011-11-09T17:15:20Z</published>
    <category term="games"/>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2011-12-02T15:42:08Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jmtd.net/log/gnome3/</id>
    <link href="http://jmtd.net/log/gnome3/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/gnome3/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/gnome3/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>GNOME 3</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>Oh, boy. Where do I start…</p>

<p>I postulate that there exists something called the "UI Singularity".  Those who
spend too much time considering the optimal way to interact with computing
devices eventually pass through this singularity and can no longer effectively
communicate with those of us on the other side.</p>

<p>At least that's one way to explain what seems to be happening to free-software
desktop environments.  From the outside, it would appear this happened to KDE
with KDE 4, and now, unfortunately, it has happened to GNOME, with GNOME 3.</p>

<p>I've had GNOME 3.0 running on my Debian laptop for a few months, which I have
used casually.  At <a href="http://www.ncl.ac.uk/computing/">work</a>, we installed Fedora
15 (GNOME 3.0) on our 69-seat Linux lab over the summer, which I have used on
occasion to achieve specific things.  I haven't dared upgrade my main work
machine yet.  So, it could be argued that I haven't spent enough time immersed
in the GNOME 3 experience to really judge it fairly.</p>

<p>On the face of it, I wish 3 was an iterative development from 2, and didn't
throw so many babies out with the bathwater.  My casual use of it so far has
not endeared it to me at all.</p>

<p>In the interests of being fair, rather than deliver my opinion of GNOME 3 as it
currently stands, I've decided to try and use it in anger for a while to truly
see whether I can "get it". Now that we're past the start of term, I am
attempting to use a lab-configured Fedora 15 machine as my main work
environment.  I'll run with this for a while, and then try a Fedora 16 instance
(I need to consider whether we should move to F16 for the second semester
anyway) to see what improvements GNOME 3.2 brings.</p></div>
    </content>
    <updated>2011-11-08T10:32:07Z</updated>
    <published>2011-11-08T10:23:28Z</published>
    <category term="cs.ncl.ac.uk"/>
    <category term="linux"/>
    <category term="ui"/>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2011-11-29T19:21:45Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jmtd.net/log/greece/</id>
    <link href="http://jmtd.net/log/greece/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/greece/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/greece/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>Greece (Dodecanese islands)</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><div class="image">
<a href="http://jmtd.net/log/./greece/pool.jpg"><img alt="private pool in Kos" class="img" height="192" src="http://jmtd.net/log/./greece/256x192-pool.jpg" width="256"/></a>

<p>private
pool in Kos</p>

</div>

<p>In August 2010, Sarah and I had a lovely (but short) week-long holiday in
Rhodes, Greece. We thoroughly enjoyed it but I didn't document it here.  When
<a href="http://changelog.complete.org/archives/6629-anniversary-europe-ideas">John Goerzen was looking for European holiday destinations earlier this
year</a>, I
had no hesitation in recommending Rhodes.  I am surprised and delighted that
John took up my suggestion and loved it too! See <a href="http://changelog.complete.org/archives/7243-greece-part-1-wow">John's holiday
blogging</a> for
more on this beautiful place.</p>

<p>This year we wanted to take a two-week holiday and have a similar experience
again. We ended up choosing Kos, Greece.  Kos was, perhaps not surprisingly,
quite similar to Rhodes.  We were based in "Hotel Oceanis" in Psalidi, on the
north-east side, about ten minutes bus journey from Kos town.</p>

<p>The hotel was very relaxing with plenty of space. It's based on the sea-side
and has two public pools: the large main one and a smaller (but seemingly
deeper) one adjacent to a snack bar.  We were very lucky to find that the hotel
had put is in a room with a private swimming pool! In total, we had four
separate places to swim in the hotel.</p>

<p>Kos town was similar to Rhodes town, but not quite as "historic" feeling. It
was a bit larger/more spread-out. Some areas of the town are quite lively but
we always managed to find pleasant and quiet places to eat and drink together.</p>

<p>We had twice as much time and took advantage of that by hiring a car and
visiting the rest of the island.  In particular we loved the beach in
Mastichari (middle-North), which had quite turbulent rolling waves. "Sunny
beach" on the south coast was absolutely packed with holiday makers, but was
none-the-less worth the look.</p>

<p>All in all, my first two experiences of Greek islands were wonderful.  One day,
I'm sure we will return to (at least) Rhodes, but we may leave it for a while
and see what the rest of the world has to offer in the mean time.</p></div>
    </content>
    <updated>2011-11-02T11:15:08Z</updated>
    <published>2011-11-02T11:14:51Z</published>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2011-11-23T10:06:34Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jmtd.net/log/rage/</id>
    <link href="http://jmtd.net/log/rage/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/rage/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/rage/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>Rage</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://www.rage.com/">Rage</a> is the latest game by <a href="http://www.idsoftware.com/">Id
Software</a>, a company whose prior work <a href="http://jmtd.net/log/../doom/">I have an
immense fondness for</a>.  I picked it up at the same time as buying a
refurbished Playstation 3 a few weeks ago.</p>

<p>Sadly, I'm not too impressed.</p>

<p>The graphics are <em>very</em> pretty, most of the time, but the PS3 suffers the same
problem which has plagued the PC version, namely, <a href="http://www.youtube.com/watch?v=F-5Sik87qhQ">texture
pop-up</a>: A noticeable delay for a
low-resolution texture to be swapped in for a high-resolution one.</p>

<p>I'm only about 45 minutes in but my experience mirrors that of <a href="http://www.rockpapershotgun.com/2011/10/19/on-fake-freedom/">Rock Paper
Shotgun's</a>: It's
desperately trying to disguise it's own linearity.</p>

<p>Finally, and most crucially, I'm suffering majorly from motion sickness after
more than a few minutes of play.  This might be related to the fact that Rage's
framerate is apparently double that of most games at 60 frames per second.
Whatever the explanation, I can't play it if it makes me sick to do so!</p>

<p>I may trade it in for the similarly-themed <a href="http://www.youtube.com/watch?v=F-5Sik87qhQ">Fallout: New
Vegas</a>, which I held off buying
simply because I thought two post-apocalyptic FPS games was too many.  I loved
Fallout 3 (albeit on Xbox 360), logging perhaps 50+ hours of play with plenty
more to do; but I don't think I could return to the beginning of that game.</p></div>
    </content>
    <updated>2011-10-31T21:47:37Z</updated>
    <published>2011-10-31T21:25:51Z</published>
    <category term="games"/>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2011-11-11T10:28:35Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jmtd.net/log/ifttt/</id>
    <link href="http://jmtd.net/log/ifttt/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/ifttt/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/ifttt/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>ifttt</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>I've just learned of <a href="http://ifttt.com/">if this then that</a>: a simple web tool that performs actions based on events. It's like a streamlined, easy-to-use subset of yahoo pipes. I'm going to try and use it to achieve a few bits of integration, such as tweeting when I write a new blog post.</p></div>
    </content>
    <updated>2011-10-25T05:48:35Z</updated>
    <published>2011-10-25T05:48:35Z</published>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2011-11-09T17:19:35Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jmtd.net/log/phm/</id>
    <link href="http://jmtd.net/log/phm/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/phm/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/phm/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>NIN album collection now complete</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><div class="image">
<a href="http://jmtd.net/log/./phm/image1.jpg"><img alt="[pic]" class="img" height="300" src="http://jmtd.net/log/./phm/290x300-image1.jpg" width="290"/></a>

</div>

<p>With this, my NIN vinyl album collection is now
complete.</p>

<p>I don't have a comprehensive NIN vinyl collection by any account: I don't have
all the singles nor the remix albums, rarities, etc., but I do have all the
albums.  This is the newly-remastered version of "Pretty Hate Machine", which
sites proudly next to an original.</p>

<p>I'm still waiting for the much-anticipated remaster of <a href="http://www.ninwiki.com/The_Fragile_(halo)">The
Fragile</a>, which turned 12 last
month.  It appears to have been sidelined by movie soundtrack work.</p></div>
    </content>
    <updated>2011-10-18T08:53:41Z</updated>
    <published>2011-10-18T08:52:22Z</published>
    <category term="vinyl"/>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2011-11-08T10:32:07Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://derekmd.com/?p=3561</id>
    <link href="http://derekmd.com/2011/10/rogers-wireless-a-direct-line-to-your-pockets/" rel="alternate" type="text/html"/>
    <link href="http://derekmd.com/2011/10/rogers-wireless-a-direct-line-to-your-pockets/#comments" rel="replies" type="text/html"/>
    <link href="http://derekmd.com/2011/10/rogers-wireless-a-direct-line-to-your-pockets/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Rogers Wireless: A Direct Line to Your Pockets</title>
    <summary xml:lang="en">Even after I move to Australia, Rogers manages to get my ire. Emailed below to their support, likelihood of a proper response…? My most recent wireless invoice contains billing detail: Oct 02 Early Cancellation Fee 500MB Data Option 100.00 I was under contract with Rogers wireless May 2008 to May 2011. I purchased an unlocked [...]</summary>
    <updated>2011-10-14T00:00:30Z</updated>
    <published>2011-10-14T00:00:30Z</published>
    <category scheme="http://derekmd.com" term="General"/>
    <author>
      <name>Derek</name>
      <uri>http://last.fm/user/Afterglew/</uri>
    </author>
    <source>
      <id>http://derekmd.com/feed/atom/</id>
      <link href="http://derekmd.com" rel="alternate" type="text/html"/>
      <link href="http://derekmd.com/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">This is not 'Nam. There are rules.</subtitle>
      <title xml:lang="en">Derek MacDonald</title>
      <updated>2012-02-02T16:58:42Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://derekmd.com/?p=3518</id>
    <link href="http://derekmd.com/2011/09/afl-grand-final-in-canada/" rel="alternate" type="text/html"/>
    <link href="http://derekmd.com/2011/09/afl-grand-final-in-canada/#comments" rel="replies" type="text/html"/>
    <link href="http://derekmd.com/2011/09/afl-grand-final-in-canada/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Live AFL Grand Final Broadcast in Canada? Not for 2011</title>
    <summary xml:lang="en">I sent the below letter to TSN’s Audience Relations, where relations means you get an auto-reply indicating a cog will read the message but not personally respond. If there’s enough volume on a topic, someone in power at Bell Media may hear about it at the end of the day so you may be better [...]</summary>
    <updated>2011-09-26T23:56:38Z</updated>
    <published>2011-09-26T18:59:40Z</published>
    <category scheme="http://derekmd.com" term="Sports"/>
    <author>
      <name>Derek</name>
      <uri>http://last.fm/user/Afterglew/</uri>
    </author>
    <source>
      <id>http://derekmd.com/feed/atom/</id>
      <link href="http://derekmd.com" rel="alternate" type="text/html"/>
      <link href="http://derekmd.com/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">This is not 'Nam. There are rules.</subtitle>
      <title xml:lang="en">Derek MacDonald</title>
      <updated>2012-02-02T16:58:42Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://derekmd.com/?p=3215</id>
    <link href="http://derekmd.com/2011/09/fo-sale/" rel="alternate" type="text/html"/>
    <link href="http://derekmd.com/2011/09/fo-sale/#comments" rel="replies" type="text/html"/>
    <link href="http://derekmd.com/2011/09/fo-sale/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Used hardware. It’s not old, it’s vintange! (It’s old)</title>
    <summary xml:lang="en">I thought about posting this on Craigslist but it’s seriously not even worth the effort meeting people to off-loading such junk. To storage the lot goes! 8-port 10mbps Ethernet Soho Hub The manufacturer seemingly wants to 100% hide its brand from the packaging, manual, and equipment. Ethernet 8/16-Port 10Base-T Stackable Hub. Linksys Wireless-G USB Network [...]</summary>
    <updated>2011-09-26T06:27:33Z</updated>
    <published>2011-09-26T03:15:22Z</published>
    <category scheme="http://derekmd.com" term="Computing"/>
    <author>
      <name>Derek</name>
      <uri>http://last.fm/user/Afterglew/</uri>
    </author>
    <source>
      <id>http://derekmd.com/feed/atom/</id>
      <link href="http://derekmd.com" rel="alternate" type="text/html"/>
      <link href="http://derekmd.com/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">This is not 'Nam. There are rules.</subtitle>
      <title xml:lang="en">Derek MacDonald</title>
      <updated>2012-02-02T16:58:42Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-7669319597798967102.post-3140023839153720906</id>
    <link href="http://blog.aradiel.co.uk/feeds/3140023839153720906/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/>
    <link href="http://www.blogger.com/comment.g?blogID=7669319597798967102&amp;postID=3140023839153720906" rel="replies" title="0 Comments" type="text/html"/>
    <link href="http://www.blogger.com/feeds/7669319597798967102/posts/default/3140023839153720906" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/7669319597798967102/posts/default/3140023839153720906" rel="self" type="application/atom+xml"/>
    <link href="http://blog.aradiel.co.uk/2011/09/awful-anime-adaptations-2-blood-last.html" rel="alternate" title="(Awful) Anime Adaptations 2: Blood The Last Vampire: Part 4" type="text/html"/>
    <title>(Awful) Anime Adaptations 2: Blood The Last Vampire: Part 4</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div>Well, here it is:</div><div>The 4th and final of the second episode of (Awful) Anime Adaptations.<br/></div><div><br/></div><div>Now I can finally get to writing the others. Right after I finish Deus Ex, of course...</div><div><br/></div><div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/7669319597798967102-3140023839153720906?l=blog.aradiel.co.uk" width="1"/></div></div>
    </content>
    <updated>2011-09-08T21:20:34Z</updated>
    <published>2011-09-08T21:17:00Z</published>
    <category scheme="http://www.blogger.com/atom/ns#" term="video"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="blood"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="parody"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="satire"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="review"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="critic"/>
    <author>
      <name>Joe</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/00031985767167992777</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-7669319597798967102</id>
      <category term="patsy"/>
      <category term="guy"/>
      <category term="psychonauts"/>
      <category term="Grox"/>
      <category term="alcohol"/>
      <category term="web"/>
      <category term="video"/>
      <category term="party"/>
      <category term="parody"/>
      <category term="games"/>
      <category term="Katamari"/>
      <category term="blood"/>
      <category term="insults"/>
      <category term="art"/>
      <category term="procrastination"/>
      <category term="dragonball"/>
      <category term="Spore"/>
      <category term="critic"/>
      <category term="review"/>
      <category term="satire"/>
      <category term="vampire"/>
      <category term="metaphysics"/>
      <category term="comments"/>
      <category term="evolution"/>
      <author>
        <name>Joe</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/00031985767167992777</uri>
      </author>
      <link href="http://blog.aradiel.co.uk/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/7669319597798967102/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://blog.aradiel.co.uk/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/7669319597798967102/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <subtitle>&lt;Insert arbitrary description here!&gt;</subtitle>
      <title>The blog</title>
      <updated>2012-02-02T18:10:23Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-7669319597798967102.post-2386413365068450038</id>
    <link href="http://blog.aradiel.co.uk/feeds/2386413365068450038/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/>
    <link href="http://www.blogger.com/comment.g?blogID=7669319597798967102&amp;postID=2386413365068450038" rel="replies" title="0 Comments" type="text/html"/>
    <link href="http://www.blogger.com/feeds/7669319597798967102/posts/default/2386413365068450038" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/7669319597798967102/posts/default/2386413365068450038" rel="self" type="application/atom+xml"/>
    <link href="http://blog.aradiel.co.uk/2011/07/gaiking.html" rel="alternate" title="Gaiking" type="text/html"/>
    <title>Gaiking</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Admittedly I have not watched the original, but <a href="http://www.youtube.com/watch?v=rUsEOZ4xWhQ">this</a> has piqued my interest enough to get added onto my list.<div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/7669319597798967102-2386413365068450038?l=blog.aradiel.co.uk" width="1"/></div></div>
    </content>
    <updated>2011-07-29T12:13:28Z</updated>
    <published>2011-07-29T12:12:00Z</published>
    <author>
      <name>Joe</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/00031985767167992777</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-7669319597798967102</id>
      <category term="patsy"/>
      <category term="guy"/>
      <category term="psychonauts"/>
      <category term="Grox"/>
      <category term="alcohol"/>
      <category term="web"/>
      <category term="video"/>
      <category term="party"/>
      <category term="parody"/>
      <category term="games"/>
      <category term="Katamari"/>
      <category term="blood"/>
      <category term="insults"/>
      <category term="art"/>
      <category term="procrastination"/>
      <category term="dragonball"/>
      <category term="Spore"/>
      <category term="critic"/>
      <category term="review"/>
      <category term="satire"/>
      <category term="vampire"/>
      <category term="metaphysics"/>
      <category term="comments"/>
      <category term="evolution"/>
      <author>
        <name>Joe</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/00031985767167992777</uri>
      </author>
      <link href="http://blog.aradiel.co.uk/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/7669319597798967102/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://blog.aradiel.co.uk/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/7669319597798967102/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <subtitle>&lt;Insert arbitrary description here!&gt;</subtitle>
      <title>The blog</title>
      <updated>2012-02-02T18:10:23Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jmtd.net/log/mr-lint/</id>
    <link href="http://jmtd.net/log/mr-lint/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/mr-lint/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/mr-lint/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>mr-lint</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://kitenet.net/~joey/code/mr/">mr</a> (multi-repository) is a useful script
by <a href="http://kitenet.net/">Joey Hess</a> for managing multiple version control
check-outs.  It's particularly useful for team Debian package maintenance,
where you can have a common <code>mrconfig</code> file allowing team members to have easy
access to all packages.  <a href="http://anonscm.debian.org/viewvc/pkg-games/mrconfig/.mrconfig?view=markup">Here's the mrconfig file for the Games
team</a>
(which bizarrely only lists git repositories despite being maintained in svn…).
It could also be useful for maintaining a collection of puppet modules from separate places.</p>

<p>I frequently find myself wanting to sanity check my local copies of
repositories.  Have I forgotten to push commits upstream? Are my local branches
not up-to-date?  In a package management context, have I remembered to tag each
package release?  Are all the upstream releases tagged?</p>

<p>To aid this process, I've hacked together a script I've called <code>mr-lint</code>.  This
reads your <code>mrconfig</code> file and performs the above tests on every repository it
finds.  It attempts to determine whether the check-out is a debian package or
not, and performs additional tests where appropriate.</p>

<p>Sample output:</p>

<pre><code>$ mr-lint wd/debian/bup
wd/debian/bup: local branches not present in origin: rescue-diverge
wd/debian/bup: local branch debian does not match origin branch debian
wd/debian/bup: local branch master does not match origin branch master
wd/debian/bup: 5 missing upstream tags: 0.21, 0.17b, 0.20, 0.24b, 0.14a
wd/debian/bup: 3 missing debian tags: debian/0.17b-1, debian/0.20-2,
debian/0.21-1
</code></pre>

<p>I've called it <code>mr-lint</code>  because I hope that if people think the idea is sound
or the script useful, I might be able to adapt it into a patch against <code>mr</code>
itself. <a href="http://jmtd.net/log/./mr-lint/mr-lint.txt">Here's the script</a>.  If there is any interest, I'll put
it somewhere more permanent.</p></div>
    </content>
    <updated>2011-07-28T10:53:43Z</updated>
    <published>2011-07-28T10:53:31Z</published>
    <category term="debian"/>
    <category term="software"/>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2011-11-02T11:15:08Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jmtd.net/log/puppet_revisited/</id>
    <link href="http://jmtd.net/log/puppet_revisited/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/puppet_revisited/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/puppet_revisited/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>puppet revisited</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>In <a href="http://jmtd.net/log/./puppet/">an earlier post</a>, I asked a number of questions, most of
which are now answered. Here's a recap:</p>

<p>I wrote</p>

<blockquote>
  <p>I stumbled across some CF Engine-style definitions for puppet in a <a href="http://www.debian-administration.org/articles/528">Debian
  Administration article</a>
  (taken originally from puppet's own wiki, which have since been
  moved/deleted)</p>
</blockquote>

<p>Perhaps it was removed with good reason ☺  This is a fairly horrid solution to
the problem. <a href="http://www.hands.com/~phil/">Phil</a> was the first to suggest
investigating Augeas, a neat tool that abstracts away the nasty specifics of
parsing the myriad configuration file formats and provides a unified, tree-like
interface for adjusting configurations.  The interface reminds me of
manipulating XML via the DOM.  More on Augeas in a later blog post…</p>

<p>I also wrote </p>

<blockquote>
  <p><em>package { [foo,bar]: …} syntax</em> worked fine, but is a little verbose and the
  package list is awkward to maintain buried inside the puppet syntax.  I spent
  some time trying to see whether I could populate a puppet list based on the
  contents of a file: then I could list the packages one-per-line in a separate
  file.  I haven't found a way of doing that yet.</p>
</blockquote>

<p>I haven't found a more concise way of solving this problem, but as I have grown
more familiar with puppet's syntax I have become less bothered by it.
<a href="http://poisonbit.wordpress.com/">Iñigo</a> suggested pre-processing the puppet
configuration, but I'd rather not complicate my provisioning approach (VCS
hooks) by attempting that.</p>

<p>Finally I wrote</p>

<blockquote>
  <p>Using my laptop as a second node also exposed some interesting puppet client
  behaviour.  Once I went off-site, the laptop tried to look up <code>puppet</code> on
  foreign networks (such as my home network).   I would have assumed that,
  once the strong SSL association had been made, the client would try to
  connect to the FQDN of the server.   This probably isn't a serious problem
  in practice, as we probably won't need to rely on nodes off-site talking to
  the configuration server, but I hope that the client doesn't trust any host
  that happens to answer to <code>puppet</code>...</p>
</blockquote>

<p>I'm pleased to report that the client is at least this clever: it refused to
talk to a local puppetmaster that I setup at home.</p></div>
    </content>
    <updated>2011-07-15T17:06:07Z</updated>
    <published>2011-06-16T20:46:43Z</published>
    <category term="configuration management"/>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2011-10-25T05:48:35Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jmtd.net/log/puppet_packages/</id>
    <link href="http://jmtd.net/log/puppet_packages/" rel="alternate" type="text/html"/>
    <link href="http://jmtd.net/log/puppet_packages/#comments" rel="comments" type="text/html"/>
    <link href="http://jmtd.net/log/puppet_packages/comments.atom" rel="comments" type="application/atom+xml"/>
    <title>puppet packages</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>Puppet lets you install packages on your system, like this:</p>

<pre><code>package { 'foo': ensure =&gt; installed }
</code></pre>

<p>You can also ask it to make sure that the package is kept up-to-date:</p>

<pre><code>package { 'foo': ensure =&gt; latest }
</code></pre>

<p>What does "latest" mean?  How does this interact with a mixed repository
<code>sources.list</code> on Debian?</p>

<p>It turns out that both <code>ensure =&gt; installed</code> and <code>ensure =&gt; latest</code> honour
pinning.  For example: if you have a stable system; sid in your <code>sources.list</code>
and pinning set up; either of the above will install stable's version of <code>foo</code>. </p>

<p>I think <code>ensure =&gt; latest</code> is less useful than it might initially appear.  If
you install a package <code>foo</code> and use <code>ensure =&gt; latest</code>, but <code>foo</code> depends on
packages <code>bar</code> and <code>baz</code>, it will only ensure that <code>foo</code> is up-to-date, not
<code>bar</code> or <code>baz</code>.  Similarly any other packages that you have not installed with
puppet will not be kept up-to-date unless you name them explicitly.  If you
want to automatically take all updates from your distributor, you need to use
another mechanism to do so.</p></div>
    </content>
    <updated>2011-07-15T17:06:07Z</updated>
    <published>2011-06-17T13:50:44Z</published>
    <category term="configuration management"/>
    <source>
      <id>http://jmtd.net/log/</id>
      <author>
        <name>jmtd</name>
      </author>
      <link href="http://jmtd.net/log/" rel="alternate" type="text/html"/>
      <link href="http://jmtd.net/log/index.atom" rel="self" type="application/atom+xml"/>
      <subtitle>jmtd</subtitle>
      <title>Jon Dowland's Weblog</title>
      <updated>2011-10-31T21:47:37Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blog.brillskills.com/?p=246</id>
    <link href="http://blog.brillskills.com/2011/07/hacking-hacks/" rel="alternate" type="text/html"/>
    <title>Hacking Hacks</title>
    <summary>The News of the World phone hacking scandal has provided no end of entertainment and office chat over the past week. I must admit to getting swept along with the mob spirit and sending a few polite emails to various companies, expressing my wish that they cease advertising with the paper due to its nefarious [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://blog.brillskills.com/wp-content/uploads/2011/07/hildy.jpg"><img alt="" class="size-full wp-image-252 aligncenter" height="332" src="http://blog.brillskills.com/wp-content/uploads/2011/07/hildy.jpg" title="hildy" width="450"/></a></p>
<p>The News of the World phone hacking scandal has provided no end of entertainment and office chat over the past week. I must admit to getting swept along with the mob spirit and sending a few polite emails to various companies, expressing my wish that they cease advertising with the paper due to its nefarious activities. It’s all a bit of self-righteous moral masturbation of course. After all, the British social-networking crowd were recently falling over themselves to aid newspapers in exposing the private affairs of Ryan Giggs and other celebrities, who were using super-injunctions to keep details of their private lives out of the tabloids. And now everyone is waging war on the News of the World for going too far in giving people exactly what they want, and seem to believe they’re entitled to?</p>
<p>But you know what, fuck it. I never buy tabloid papers, and it’s nice to engage in a little moral posturing and schadenfreude when the targets are as disagreeable as Rupert Murdoch and his cohorts. I do feel a little sorry for the journalists who will lose their jobs now that the News of the World has been shut down. They’ve basically been used as human shields in News International’s desperate attempt to protect Rebecca Brooks at all costs. However, I’m not sure I buy into all their teary eyed laments that NotW was a great paper and its closure a terrible loss. Looking through their website now the paywall has been pulled down, it just seems like a fairly worthless mix of tits, celebs and right-wing political rhetoric that the country won’t be much poorer without.</p>
<p>I also got involved in <a href="http://www.avaaz.org/en/murdoch_messages_2/">the campaign to stop Rupert Murdoch from taking over BSkyB</a>, by submitting an entry to the government consultation on the matter. They’ve already achieved a minor victory, as the submission of over 100,000 responses to the consultation apparently means the decision will be delayed until at least September, as they examine every single response as they are legally required to do. If you want to contribute yourself, the consultation is closing on Friday 8th July, so I suggest you submit a response as soon as possible.</p>
<p>I didn’t send the form letter the campaign provided, as there seemed little point. It opines that the takeover is undesirable for various reasons, but the government’s line seems to be that its hands are tied as it can only block the deal on the grounds of media plurality, not on ethics. Therefore, I decided to write my own response, attempting to present a quasi-legal argument why recent events do in fact have a bearing on whether the deal affects media plurality. I don’t have the exact text of what I sent, so I can’t include it here (I may have used some language that it wouldn’t be wise to openly publish anyway), but I’ll try and provide a summary.</p>
<p>I am not a lawyer, so cannot really make a properly informed legal argument, but I decided to at least start by looking at what the law says. In particular, I found a <a href="http://blogs.lse.ac.uk/mediapolicyproject/2011/01/12/media-plurality-dossier-the-case-of-newscorps-bid-for-bskyb/">Media Plurality Dossier by the London School of Economics</a> that included an interesting quote from the relevant legislation:</p>
<p>2a.1. Enterprise Act 2002</p>
<blockquote>
<p>“Section 67 allows the Secretary of State to intervene in order to protect legitimate interests, including that there is a sufficient plurality of persons with control of media enterprises.” <a href="http://www.legislation.gov.uk/ukpga/2002/40/contents">http://www.legislation.gov.uk/ukpga/2002/40/contents</a></p></blockquote>
<p>The use of the word “sufficient” seemed particularly interesting. What is “sufficient” plurality of the media? It seemed to me that if there was a case to be made, this was a promising area of attack.</p>
<p>News International has allegedly been involved in a wide range of illegal and immoral activities, and also an effort to cover-up that activity that has continued for a number of years. Some claim this attempted cover-up is still ongoing. Perhaps of more concern however, is that there seemed to be little appetite to investigate News International and hold them to account. The metropolitan police, the government, the Press Complaints Commission, the government; all of them failed to give the oversight that it is their responsibility to provide. Even the rest of the press, with the exception of the Guardian, were highly reluctant to investigate or cover the story.</p>
<p>Why did this occur? The most plausible explanation appears to be that News International was powerful enough that it could frighten politicians, dissuade police officers, pay-off victims, and silence journalists. And it did exactly that for many years. Its power stemmed from the scale of its reach within British public life. It had too many newspapers, too many people on the payroll, and too many friends for anyone to cross it and expect to win, especially in the highly-political upper-echelons of bodies like the police, parliament and national newspapers.</p>
<p>This situation came abount due to the plurality, or lack thereof, of the British media. Too much power has been concentrated in the hands of too few, unaccountable individuals. In this context, for the plurality of the media to be eroded even further, by allowing News International to take full ownership of BSkyB, seems highly foolish. It is clear that, instead, the definition of what is “sufficient” plurality needs to be examined in light of these events, with the likely conclusion that organisations like News International should be owning less of the media, not more. Media plurality over the past decade has obviously been grossly insufficient, and contributed to a media and wider establishment wholly unequal to the task of holding News International to account over its actions.</p>
<p>That was pretty much the gist of my argument, although I couldn’t resist getting in one, slightly cheeky, final point. Given that there is an ongoing police investigation into criminal activity by the News of the World, and that there is grounds to suspect that News International used its influence to unduly disrupt attempts to investigate and expose this activity, wouldn’t any decision by the government to extend News International’s influence even further mean it was essentially acting an accessory to this activity? Not a position that government would want to be in, I’m sure!</p>
<p>That was more or less what I sent in. Given how quickly things are changing, the next days and months may render current questions about the takeover of BSkyB moot anyway, but I’m still glad I made my voice heard, in however small a way. I encourage you to do so as well. It really is therapeutic to unload on an issue like this, with the hope, however small, that it might have some effect or do some good somewhere down the line.</p></div>
    </content>
    <updated>2011-07-07T21:53:30Z</updated>
    <category term="Politics"/>
    <category term="hack hack hack"/>
    <category term="news of the world"/>
    <author>
      <name>Jon</name>
    </author>
    <source>
      <id>http://blog.brillskills.com</id>
      <link href="http://blog.brillskills.com/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://blog.brillskills.com" rel="alternate" type="text/html"/>
      <subtitle>because nothing is really real until it's blogged about</subtitle>
      <title>Brillskills</title>
      <updated>2012-02-01T12:00:04Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blog.brillskills.com/?p=226</id>
    <link href="http://blog.brillskills.com/2011/06/ie10-pp2-site-ready-and-positioned-floats/" rel="alternate" type="text/html"/>
    <title>IE10 PP2, ‘site-ready’, and Positioned Floats</title>
    <summary>The second platform preview of IE10 was released yesterday. Apparently it is the same version of Trident that powered the recent Windows 8 demos, so there you go. First impression is it continues the rapid pace of recent IE development. There’s a lots of really cool additions, although no single, striking visual feature, like gradients [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://blogs.msdn.com/b/ie/archive/2011/06/29/site-ready-html5-second-ie10-platform-preview-available-for-developers.aspx">The second platform preview of IE10 was released yesterday</a>. Apparently it is the same version of Trident that powered the recent Windows 8 demos, so there you go.</p>
<p>First impression is it continues the rapid pace of recent IE development. There’s a lots of really cool additions, although no single, striking visual feature, like gradients or transforms, this time. Instead, mostly this release seems to be focused on a spread of new APIs and more subtle features, although it’s no less impressive for that. As usual, <a href="http://blog.brillskills.com/2011/04/the-problem-with-microsoft-internet-explorer-is-in-this-picture/" title="The problem with Microsoft Internet Explorer is in this picture">Hachamovitch</a> writes the announcement blog post and mixes in the usual marketing stuff, around Microsoft’s ‘site-ready HTML5′ line, with the descriptions of new features. Personally I wish they’d get someone technical to write these posts and put in a few code snippets and whatnot, Scott Guthrie style, but whatever.</p>
<p>I know it’s not wise to pay any attention to political or marketing waffle, but this whole ‘site-ready’ especially confuses me when you look at what they’ve actually added in this release. As far as I understand, The ‘site-ready’ thing is about Microsoft wanting to make the distinction between browsers adding features that are experimental vs those that are stable. Experimental features are things like Web Sockets that are still undergoing a standardisation effort and may change significantly before they are finished, as parts are added or changed, and bugs discovered. Whereas stable features are those that have been in development for longer, and which have reached a level of maturity where major changes are unlikely. Microsoft point to the trouble with Web Sockets experienced by Chrome and Firefox, where they implemented an early version of the protocol, only to have to disable it when a security flaw was discovered, as demonstrating the dangers of releasing experimental features too early. It puts users in danger, they say, and leads to developers having to keep rewriting their code to target changing APIs. In response, Microsoft created their HTML5 Labs initiative to prototype implementations without building them into IE proper.</p>
<p>Now, that’s all reasonable and sensible. But now look at the most trumpeted of the more visual features added to PP2: Positioned Floats. The idea here is to allow text to wrap around floated elements in a controllable way, such as in the manner demonstrated in this image that I have ‘borrowed’ from Microsoft’s draft spec:</p>
<p><a href="http://blog.brillskills.com/wp-content/uploads/2011/06/positioned-floats.jpg"><img alt="" class="size-full wp-image-227 alignnone" height="239" src="http://blog.brillskills.com/wp-content/uploads/2011/06/positioned-floats.jpg" title="positioned-floats" width="624"/></a></p>
<p>Nice idea, very useful, etc. The spec it’s contained within is <a href="http://www.interoperabilitybridges.com/css3-floats/">CSS Floats and Positioning Level 3</a>. Although the spec is formatted as W3C editor’s draft, if you look at the URL you’ll see that it’s hosted on interoperabilitybridges.com, which is a site Microsoft uses to host a lot of its standards-based and interoperability projects. That’s because it’s not actually an official W3C CSS3 module, just a proposal for one.</p>
<p>In fact, the spec is an amalgamation of two previous proposal: One by Microsoft to extend positioning for floats, and the other being Adobe’s CSS Exclusions. Adobe’s spec was previously part of their CSS Regions and Exclusions proposal, which was created and prototyped together by Adobe as a way of letting web browsers create the kinds of fancy, magazine type layouts that a lot of publishers are creating in native iPad apps. The spec for the feature was laster split into separate Regions and Exclusions modules. In addition, Tab Atkins of Google has also been <a href="http://www.xanthir.com/blog/b48H0">working on a Positioned Layout spec</a> that covers much of the same ground and which he was supposedly going to publish as a new CSS3 module later this summer. Oh, and there’s another CSS3 module called Generated Content for Paged Media that also extends CSS 2.1 floats to allowing floats elements with respect to pages and multiple columns.</p>
<p>At the recent <a href="http://lists.w3.org/Archives/Public/www-style/2011Jun/0325.html">Kyoto face-to-face meeting on the 11th of June</a> the W3C CSS working group looked at all these different proposals and decided on an action to bring them all together in a single new mega-spec called CSS Floats. Whereupon, they can be all be progressed together and the overlaps and interactions between them defined, and at some point in the future possibly split out again into separate specs.</p>
<p>Confused yet? There’s nothing really wrong with all the above, it’s just a result of there being a lot of people with good ideas, all interested in making progress in the same area, and having to work together to achieve it. However, it seems to me to be very clear that what Microsoft calls Positioned Floats in IE PP2, which is as yet only specced in a non-official W3C proposal on interoperabilitybridges.com, is very far from being in the least bit stable. In fact, it has effectively already been superseded by this as-yet unwritten spec that the W3c intends to produce. It also appears from the minutes of the FTF that at least one person, Mozilla’s David Baron, has strong concerns about whether it is a good idea at all.</p>
<p>In this situation, for Microsoft to turn around and not only implement positioned floats, but to do so while beating their drum on so called ‘site-ready’ standards vs those that are still experimental, seem just a little hypocritical. Now, I know Microsoft guys would say that their competitors add new CSS features as and when they feel like it, often without even a proposal spec. Apple in particular have been guilty of this on several occasions. And they’re right of course. I don’t object to Microsoft including an experimental implementation of positioned floats in IE10 if they want, but I couldn’t miss the opportunity to point out such a blatant example of double-standards and use it to illustrate ome of the craziness in the CSS standardisation process.</p></div>
    </content>
    <updated>2011-06-30T21:52:35Z</updated>
    <category term="Uncategorized"/>
    <author>
      <name>Jon</name>
    </author>
    <source>
      <id>http://blog.brillskills.com</id>
      <link href="http://blog.brillskills.com/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://blog.brillskills.com" rel="alternate" type="text/html"/>
      <subtitle>because nothing is really real until it's blogged about</subtitle>
      <title>Brillskills</title>
      <updated>2012-02-01T12:00:04Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blog.brillskills.com/?p=218</id>
    <link href="http://blog.brillskills.com/2011/06/yahoo-sucks/" rel="alternate" type="text/html"/>
    <title>I wanted to sign in to Flickr using my Facebook account…</title>
    <summary>…and this is what Yahoo demanded in order to connect the accounts. I mean, just look at that shit. Words fail me.</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://blog.brillskills.com/wp-content/uploads/2011/06/yahoo-ludicrous-permissions.png"><img alt="Flickr's insane requirements to connect a Facebook account" class="aligncenter size-full wp-image-219" height="471" src="http://blog.brillskills.com/wp-content/uploads/2011/06/yahoo-ludicrous-permissions.png" title="yahoo-ludicrous-permissions" width="577"/></a></p>
<p>…and this is what Yahoo demanded in order to connect the accounts. I mean, just look at that shit. Words fail me.</p></div>
    </content>
    <updated>2011-06-28T22:54:13Z</updated>
    <category term="Nerdy"/>
    <category term="Stupidity"/>
    <category term="Yahoo"/>
    <author>
      <name>Jon</name>
    </author>
    <source>
      <id>http://blog.brillskills.com</id>
      <link href="http://blog.brillskills.com/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://blog.brillskills.com" rel="alternate" type="text/html"/>
      <subtitle>because nothing is really real until it's blogged about</subtitle>
      <title>Brillskills</title>
      <updated>2012-02-01T12:00:04Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-7669319597798967102.post-3421675125809538444</id>
    <link href="http://blog.aradiel.co.uk/feeds/3421675125809538444/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/>
    <link href="http://www.blogger.com/comment.g?blogID=7669319597798967102&amp;postID=3421675125809538444" rel="replies" title="0 Comments" type="text/html"/>
    <link href="http://www.blogger.com/feeds/7669319597798967102/posts/default/3421675125809538444" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/7669319597798967102/posts/default/3421675125809538444" rel="self" type="application/atom+xml"/>
    <link href="http://blog.aradiel.co.uk/2011/06/eve-mining-profit-calculator-v10.html" rel="alternate" title="EvE Mining Profit Calculator v1.0 - Release" type="text/html"/>
    <title>EvE Mining Profit Calculator v1.0 - Release</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I have written a mining calculator for EvE Online that the community could find useful - by entering the necessary values it will tell you in order of priority which ores to mine, what to do with said ore, and the amount of money the player can expect to make, assuming they have a full cargo-hold of the stuff.<div><br/></div><div>Here is the public dropbox link for it: <a href="http://dl.dropbox.com/u/33554381/EveMiningForProfit.zip">http://dl.dropbox.com/u/33554381/EveMiningForProfit.zip</a></div><div><br/></div><div>If I update it to be more complicated, then I think I can just update the zip file, so it will have the latest version in it.</div><div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/7669319597798967102-3421675125809538444?l=blog.aradiel.co.uk" width="1"/></div></div>
    </content>
    <updated>2011-06-26T18:40:20Z</updated>
    <published>2011-06-26T18:35:00Z</published>
    <author>
      <name>Joe</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/00031985767167992777</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-7669319597798967102</id>
      <category term="patsy"/>
      <category term="guy"/>
      <category term="psychonauts"/>
      <category term="Grox"/>
      <category term="alcohol"/>
      <category term="web"/>
      <category term="video"/>
      <category term="party"/>
      <category term="parody"/>
      <category term="games"/>
      <category term="Katamari"/>
      <category term="blood"/>
      <category term="insults"/>
      <category term="art"/>
      <category term="procrastination"/>
      <category term="dragonball"/>
      <category term="Spore"/>
      <category term="critic"/>
      <category term="review"/>
      <category term="satire"/>
      <category term="vampire"/>
      <category term="metaphysics"/>
      <category term="comments"/>
      <category term="evolution"/>
      <author>
        <name>Joe</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/00031985767167992777</uri>
      </author>
      <link href="http://blog.aradiel.co.uk/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/7669319597798967102/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://blog.aradiel.co.uk/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/7669319597798967102/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <subtitle>&lt;Insert arbitrary description here!&gt;</subtitle>
      <title>The blog</title>
      <updated>2012-02-02T18:10:23Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://orbit.vect.org/?item=181</id>
    <link href="http://orbit.vect.org/?item=181" rel="alternate" type="text/html"/>
    <title>Computer</title>
    <summary>This is how you hack, right guys?  Right?  Yeah?  Computer?  Mirror, you have made my day....</summary>
    <updated>2011-06-21T18:05:00Z</updated>
    <category term="Funny Stuff, Internet!"/>
    <author>
      <name>Mike</name>
    </author>
    <source>
      <id>http://orbit.vect.org/</id>
      <link href="http://orbit.vect.org/" rel="alternate" type="text/html"/>
      <link href="http://orbit.vect.org/?rss" rel="self" type="application/rss+xml"/>
      <subtitle>I mostly talk about video games and the world wide web</subtitle>
      <title>in orbit</title>
      <updated>2012-02-02T21:00:05Z</updated>
    </source>
  </entry>
</feed>

