<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Alex Pounds' blog</title><link>http://alexpounds.com/blog</link><description>Alex Pounds' blog – links, photographs, and original writing.</description><language>en-gb</language><copyright>Copyright 2003-2013 Alex Pounds.</copyright><lastBuildDate>Tue, 14 May 2013 15:39:41 -0700</lastBuildDate><atom:link href="http://alexpounds.com/blog/rss" rel="self" type="application/rss+xml"/><item><title>Smart, gets things done, opinionated</title><link>http://alexpounds.com/blog/2013/05/14/smart-gets-things-done-opinionated</link><description><![CDATA[<p>I've been helping a client with their technical hiring. They need more developers and it's <a href="https://sites.google.com/site/steveyegge2/five-essential-phone-screen-questions">notoriously hard</a> to select the good ones. It's extraordinarily difficult to tell the difference between someone who <em>sounds</em> good and someone who <em>is</em> good. It's practically impossible if you're not a developer yourself; that's where I came in. </p>

<p>One <a href="http://www.joelonsoftware.com/articles/GuerrillaInterviewing3.html">standard tenet of screening programmers</a> comes from Joel Spolsky:</p>

<blockquote>
<p>How do you know whether to hire someone? In principle, it's simple. You’re looking for people who are</p>

<ol>
<li>Smart, and</li>
<li>Get things done.</li>
</ol>

<p>That's it. That's all you’re looking for.</p>
</blockquote>

<p>That's definitely a great starting point. But I think the list needs one more item: <strong>opinionated</strong>. </p>

<p>It's not enough to be smart and to get things done. I've interviewed a number of candidates who had a strong history of both. But as soon as I tried to get an opinion out of them I found myself stuck in a bog of equivocation. </p>

<h3 id="taste">Taste</h3>

<p>Sometimes the opinions are matters of taste. I like to ask candidates what websites they like, what tools they use, <strong>and what they like about them</strong>. The last part's the key. I'm not trying to bond with you when I ask what websites you like; I'm trying to get a sense for your taste, your critical eye, and your ability to intuit what's under the bonnet. I'm not going to rule you out for using NetBeans when I like vim; if you're interviewed by someone who will, you probably don't want to work there anyway. I'm trying to figure out how you approach problems, what crutches you have<sup><a href="#fn:1" id="fnref:1">1</a></sup>, and how much thought you've given to how you work. </p>

<p>Here's an example: you interview two candidates and ask them for their favourite websites. Both say they like Twitter. &quot;Why?&quot; you ask. Candidate A mumbles something inoffensive about how he likes talking to his friends. Candidate B talks about the problem of distributing messages to millions of people, near-instantaneously, pushing the data to web browsers and mobile devices. Who's the stronger candidate? </p>

<p>But delivery is important, too: what if candidate A had spoken confidently about how Twitter's changed how he interacts with his friends, how the public interacts with celebrities, and completely reinvented breaking news: all of a sudden it's not so clear-cut. One candidate is more focused on technology, the other on sociological impact. The right choice depends on your company &amp; the job role, but now you've got more information to make the decision. </p>

<h3 id="technology">Technology</h3>

<p>Sometimes the opinions are about technology. I always try to include an open-ended design question in an interview; lately I've been using &quot;How might you design a system that lets people play Monopoly with each other over the internet?&quot;<sup><a href="#fn:2" id="fnref:2">2</a></sup>. The openness is a feature; good candidates will ask a few questions before diving in, and there are lots of dramatically different ways of answering.</p>

<p>One candidate proposed a peer-to-peer solution. That's uncommon, but not insane. You can make that work. But he couldn't explain the strengths or drawbacks. He couldn't explain why he'd chosen that instead of a client-server approach. &quot;There's a number of factors involved&quot; isn't an answer if you can't name some factors. I'm totally fine with a candidate changing their mind! A great answer would be &quot;I started this as a peer-to-peer solution, but now I see problems with synchronisation and preventing cheating. So, in retrospect, I think a client-server model would be better.&quot; Unfortunately I couldn't get anything out of this candidate; I encouraged and cajoled, but he stuck with neutral platitudes. </p>

<p>The best people I've worked with all have strong opinions about how software &amp; the Internet should work. We don't always agree, but being unafraid to express an opinion means we can discuss a problem and find a decent solution. </p>

<p>There's one final nuance: the people you want have <em>pragmatic</em> opinions and respect other points of view. I don't want people who insist they're right, don't listen to others, or <a href="http://www.xkcdb.com/5088">ignore reality</a>. Sometimes there are valid reasons to cut corners, do a hacky job, or do something that stinks. You need people who will roll up their sleeves and get stuck in. But equally, you should expect to hear about how <em>you</em> screwed up, how the situation should never have reached that point, and how to stop it happening in future. </p>

<h3 id="imadeveloper.whatamisupposedtododifferently">I'm a developer. What am I supposed to do differently?</h3>

<ul>
<li><strong>Be fearless in interviews</strong>. Your goal is to demonstrate your skills &amp; knowledge, not avoid offence. Let's say you discovered the company's using a PHP-based stack, your CV says you just migrated from PHP to Java because PHP was unscalable, and now the interviewer's asking you what the problem was. Trust me: he's not feeling hurt. He's not saying that PHP's great and Java's crap. He wants to know what the problems were, and how changing language fixed them. Don't apologise, or equivocate, or say things like &quot;That's just my opinion.&quot; It's obviously your opinion. Explain why you hold it.</li>
<li><strong>Look at things with a critical eye</strong>. Pick a website or app you use daily. What's good about it? What sucks? If you could wave a magic wand, what would you change? What would you change it <em>to</em>? Why do you think it's not that way already? If that change made things better for you, would it make things worse for others? If so, do you still think it should be changed?</li>
<li><strong>Ask questions</strong>. An opinion isn't a snap judgement, and it's only useful if it's been thought through. Interviews aren't interrogations – you get to ask questions too. Don't immediately jump into an answer if someone asks you to design a system; you don't know enough yet. How many users are we expecting? How technical are the users? Are there budget constraints? Is it web-only, desktop-only, mobile-only, or some combination thereof? Is performance an issue? Is it more important to optimise for server-side performance or client-side performance? Can we presume that all our users speak English? Can we trust our data to be valid? Can we hand-wave past a particular bit for now, or would you like me to outline that first?</li>
<li><strong>Work on your interpersonal skills</strong>. Disagreement is fine. Discussion is great. But you must express that disagreement constructively, otherwise you're just being an asshole. <a href="http://www.amazon.co.uk/gp/product/0091906814/ref=as_li_ss_tl?ie=UTF8&amp;camp=1634&amp;creative=19450&amp;creativeASIN=0091906814&amp;linkCode=as2&amp;tag=alexpoundscom-21">Dale Carnegie wrote the classic book on this</a>; <a href="http://usualerror.com/e-book/">The Usual Error</a> is also worth reading.</li>
<li><strong>Sometimes you have to watch the world burn</strong>. Maybe your interviewer <em>is</em> offended by your dislike of PHP, your belief in semantic HTML, or your system design. Be open to the possibility that you're wrong, and be humble, but remember the interviewer's done you a favour. Do you really want to work with someone who isn't open to other people's ideas and won't listen to explanation? Do you want to work somewhere where disagreements are settled with &quot;I'm right because I've been here longest?&quot;</li>
</ul>

<div class="footnotes">
<hr />
<ol>

<li id="fn:1">
<p>Everybody has crutches; they're not a bad thing. Why wouldn't you want the computer to make your life easier? Some of my favourites include syntax highlighting, auto-indentation, and auto-lint-on-save. IDE users probably like automated refactoring, inline help, and code generation. <a href="#fnref:1" title="return to article" class="reversefootnote">&#160;&#8617;</a></p>
</li>

<li id="fn:2">
<p>Shamelessly lifted from <a href="http://weblog.raganwald.com/2006/06/my-favourite-interview-question.html">Reginald Braithwaite</a>. <a href="#fnref:2" title="return to article" class="reversefootnote">&#160;&#8617;</a></p>
</li>

</ol>
</div>
]]></description><guid isPermaLink="true">http://alexpounds.com/blog/2013/05/14/smart-gets-things-done-opinionated</guid><pubDate>Tue, 14 May 2013 15:39:41 -0700</pubDate></item><item><title>My FAWM 2013 experience</title><link>http://alexpounds.com/blog/2013/03/31/my-fawm-2013</link><description><![CDATA[<p>Earlier this year, a <a href="https://london.hackspace.org.uk/">Hackspace</a> member offered the mailing list a free <a href="http://www.creative.com/emu/products/product.aspx?category=532&amp;pid=13558">MIDI controller</a>. I'd been considering taking part in <a href="http://fawm.org/">FAWM</a>&nbsp;&ndash;&nbsp;February Album Writing Month&nbsp;&ndash;&nbsp;and this pushed me over the edge. I accepted the MIDI controller. I signed up for FAWM and <a href="https://twitter.com/acreature/status/286811550973562880">announced my intentions</a>. So how did I do? </p>

<p>Not well.</p>

<p>FAWM sets a simple goal: 14 songs, 28 days. People take part for all kinds of reasons and have different criteria for what constitutes a song. It's a challenge, not a competition: you're only accountable to yourself. Personally, I wanted to write chiptunes&nbsp;&ndash;&nbsp;8-bit/retro computer game music. I've admired the genre for a long time, and I messed around with making some a couple of years ago. But I didn't manage more than a couple of 20-30 second snippets back then. It taught me how to use the software/hardware (I'm working on a separate article about that), but this would be the first &quot;proper&quot; music I've written since my GCSEs. </p>

<p>I wasn't expecting electronic music to be so time consuming. At full speed, with no blocks on inspiration, I could make one track a day. But that's an entire day of effort; 8-10 hours doing nothing else. More realistically, I could write 1 song every 2 days. I thought this would be enough, especially if I worked hard on weekends. But by February 10<sup>th</sup> I'd only managed 3 tracks and I knew I wasn't going to catch up. Between work, Valentine's day, &amp; a friend's week-long visit from the USA I was never going to hit 14 songs. I intended to make a couple more songs with what was left of the month, but I wasn't enjoying it. So I gave up. </p>

<p>I've got a few half-written tracks left over, including one that's a &quot;proper&quot; chiptune (written with the Gameboy's hardware limitations in mind). One of my worries was that although I was using simple synths and tone generators, I wasn't making &quot;real&quot; chiptunes. The chiptune police would kick down my door, NES zappers drawn, shouting &quot;Imposter!&quot;. Thus I tried sticking a bit closer to the original medium. I'd like to finish them off at some point, but I'm waiting for the desire to return. </p>

<p>So here they are: 3 songs that were meant to be chiptunes but probably count more as &quot;chiptune inspired&quot;:</p>

<ul>
<li><a href="/static/blog/2013/20130204-basslinebounce.mp3">Bassline Bounce</a></li>
<li><a href="/static/blog/2013/20130209-carnivalpixels.mp3">Carnival Pixels</a></li>
<li><a href="/static/blog/2013/20130210-5pinchip.mp3">5 Pin Chip</a></li>
</ul>

<p>Would I do it again next year? Probably not. The FAWM community itself is amazing and I really appreciated the encouragement I received. But I don't think I can cram 14 chiptunes into one month without putting everything else on hold; even if I could, that doesn't seem like a fun activity. If I did take part again it would probably be something acoustic. </p>]]></description><guid isPermaLink="true">http://alexpounds.com/blog/2013/03/31/my-fawm-2013</guid><pubDate>Sun, 31 Mar 2013 11:07:09 -0700</pubDate></item><item><title>A brief dose of futurism</title><link>http://alexpounds.com/blog/2013/03/18/a-brief-dose-of-futurism</link><description><![CDATA[<p>Much has been written about Google's self-driving cars. To recap: Google has started <a href="http://www.wired.com/magazine/2012/01/ff_autonomouscars/all/">publicly demonstrating</a> a car that can <a href="http://www.youtube.com/watch?v=cdgQpa1pUUE">drive on public streets</a> all by itself. It's deeply impressive technology, and is a manifestation of a decades-old prediction. Cars that drive themselves! No more congestion! No more accidents! Tomorrow's world today! </p>

<p>Because this technology is still stuck in the lab, demonstrated under carefully controlled conditions, my instincts are to dismiss it as speculation or decades away. But I've learnt that my instincts are basically slaves to my lack of long-term imagination. When I was 14 I read about e-ink and flexible displays. They seemed far-fetched then, but Kindles have been around for years and flexible displays seem <a href="http://news.cnet.com/8300-5_3-0.html?keyword=flexible+displays">just around the corner</a>. Self-driving cars are probably closer than I think.</p>

<p>So how would that affect the tech world? Why would Google bother? <a href="http://googleblog.blogspot.co.uk/2010/10/what-were-driving-at.html">Google say</a> it's to advance society, which is probably partially true. But to me, the interesting part is the data. A self-driving car necessarily involves a whole bunch of sensors and cameras. A GPS and internet link are practically a given. So when this technology makes it into commercial vehicles Google's going to have a huge competitive advantage when it comes to maps and local data.</p>

<p>You won't need a dedicated street view team because you can use the imagery from people's cars. 3D maps <a href="http://appleinsider.com/articles/12/10/05/apple-improving-3d-flyover-visuals-in-ios-6-maps">like Apple's</a> come from laser rangefinders and cameras, both of which will be built in to people's cars. Traffic flow data <a href="http://googlemobile.blogspot.co.uk/2009/08/bright-side-of-sitting-in-traffic.html">already comes from people's phones</a>; it's a tiny step to pull it from the car directly. Updating maps with new/missing/altered roads is a similarly small step. As mobile bandwidth increases, the idea of a live streetview might actually be feasible. Scary as hell, but feasible. </p>

<p>This is all obviously good news for Google and good news for Google's users, but mapping competitors should worry. <strong>It's not about taking the human out of the process; it's taking the employee out of it.</strong> Other companies would have to pay people to gather data that Google's harvesting ambiently.</p>

<h3>And now something completely unrelated</h3>

<p>For a while I've been trying to figure out how to fit this thought into 140 characters, and failed: </p>

<blockquote>
  <p>You may think that with iPads and private space travel and drone strikes that we're living in the future. But your washing machine's UI begs to differ. </p></blockquote>

<p>But trying to get a thought into a tweet can leave it open to misinterpretation. Is it a less-pithy version of "The future's already here, it's just not very evenly distributed"? Did Warren Ellis <a href="http://www.warrenellis.com/?p=14314">pre-emptively skewer it</a>? The answer to both questions is &quot;Yes and no.&quot;</p>

<p>My intention wasn't to normalise the age we're living in. I was trying to express the concept that some things are mind-blowingly amazing, whereas others remain mundane and niggling. I thought the great promise of the future isn't a few giant things, but a thousand tiny ones. Maybe we're condemned to overlook them; progress itself is a thousand tiny steps rather than one giant leap.</p>

<p>The shape of my life now is radically different compared to my life in 2003. And yet I still have to do my best Egyptologist impression when doing the laundry. A courier can't be more specific about a delivery time than a 12 hour window. I still buy pasta from the supermarket and find 3 unopened packs when I get home. </p>

<p>All I'm saying is there's still some room for improvement.</p>
]]></description><guid isPermaLink="true">http://alexpounds.com/blog/2013/03/18/a-brief-dose-of-futurism</guid><pubDate>Mon, 18 Mar 2013 16:36:25 -0700</pubDate></item><item><title>Help! Chrome's ignoring my Cache-Control headers!</title><link>http://alexpounds.com/blog/2012/11/30/help-chrome-ignoring-cache-control-headers</link><description><![CDATA[<p>You're a web developer and you've discovered your web app's sending a lot of static assets over the wire with every page load. These are <em>static</em> assets, so there's no need – they don't ever change. If you configure your web server with the right headers, you can tell browsers to cache them forever. Pages will load faster, and your server will be under less load. So you create a <code>.htaccess</code> file with something like this in it:</p>

<p><code>&lt;ifModule mod_headers.c&gt;<br />
Header set Cache-Control "max-age=604800, public"<br />
&lt;/ifModule&gt;</code></p>

<p>You load your website and watch the network inspector in Chrome. You hit refresh, but you still see loads of requests for your static files. You hit refresh again. Maybe it cached this time, or maybe not. But refresh again, and everything gets retransferred! You start looking at individual requests. The headers are being set properly. You read the spec, and everything looks fine. Other browsers are respecting the headers and doing the right thing. What the hell's going on?</p>

<p>You're not going mad, and you probably haven't messed up. Chrome's trying to be helpful: it can't tell you're a web developer, and it doesn't know you're tapping that refresh button to test the server. <strong>Chrome's detecting the multiple refreshes, presuming you're doing it because the page is broken, and reloading everything from the server</strong>. I haven't figured out the exact behaviour it uses to do this, but it seems it involves whether you click through to other pages or not. As a result, you'll get more reliable testing if you navigate around your app a bit rather than clicking refresh.</p>
]]></description><guid isPermaLink="true">http://alexpounds.com/blog/2012/11/30/help-chrome-ignoring-cache-control-headers</guid><pubDate>Fri, 30 Nov 2012 15:56:58 -0800</pubDate></item><item><title>Trick or Treat?</title><link>http://alexpounds.com/blog/2012/10/31/trick-or-treat</link><description><![CDATA[<p>I've lived in London for 6 years now, but tonight was the first time I was visited by trick-or-treaters. Every year prior I indulged the Guardianista fantasy of making friends with the local youth – and the Daily Mail fantasy that I must bribe my way to safety via sweeties – by buying a giant bag of fun-size chocolate bars. And every year prior nobody came. I was left with broken dreams and a lot of chocolate.</p>

<p>But tonight was different. I arrived home late, and had just collapsed on the sofa when there was a sudden knock on the door. Standing up, I gazed down the half-lit hallway to see the silhouette of a teenager in a bad costume. &quot;I'll pretend I'm not in,&quot; I thought. Then a couple of braincells kicked in and I realised the lights were on. I had to answer it.</p> 

<p>I rushed to the kitchen and looked in the cupboard. Nothing. No sweets, no pastries, no chocolate. But there was one thing. One vague possibility. I grabbed it and headed to the door.</p>

<p>When I opened it the two teens had cut their losses and were halfway across the road, but they turned around when they heard the door open. &quot;Err, trick or treat?&quot; one asked, hopefully, not moving closer. And that's when I found myself possessed by a spirit infinitely older than my own, speaking words I'd promised myself I would never utter.</p>

<p>&quot;I'm really sorry, I've just got home from a long day at work and I haven't got any sweets in the house,&quot; I said. &quot;But I can give you this pomegranate if you wanted.&quot;</p>

<p>At some point – some point in the past year – I have changed from the person who buys sweets for Halloween to the person who offers trick-or-treaters fruit. Children tell playground horror stories about people like me. I can make excuses and plead special circumstances, but let's face facts: they asked for sweets. They got fruit.</p>

<p>The ghouls shrugged non-committally and walked off, and I thank them for that. No egging of the house, no shouted abuse. Perhaps they understood that the crashing realisation of what I have become is the greatest trick of all. But they probably just thought they'd try next door.</p>]]></description><guid isPermaLink="true">http://alexpounds.com/blog/2012/10/31/trick-or-treat</guid><pubDate>Wed, 31 Oct 2012 16:59:45 -0700</pubDate></item><item><title>My biggest co-incidence</title><link>http://alexpounds.com/blog/2012/09/30/my-biggest-coincidence</link><description><![CDATA[<p>It's 2005. I'm in Australia, technically. I'm on a boat sailing round the Whitsunday islands with 30 other people. We put to sea for 3 days. 3 days of beautiful scenery, deserted beaches, and giant card games below decks. 3 days of diving, sunbathing, and talking. 3 days of whales. 3 days of no shaving, no warm running water, and no phone signal.</p>

<img src="/static/images/blog/2012/whitsundays.jpg" alt="Sunrise over the Whitsunday islands." />

<p>I got talking to one of the English women in our group. We soon discovered we'd gone to the same university. But not only that: at the same time. But not only that: we had some friends in common. But not only that: I had <em>been to her house</em>. One of our friends in common was her old housemate, and we'd met there for pre-club drinks. And here we were, in the middle of nowhere, on the opposite side of the planet.</p>
]]></description><guid isPermaLink="true">http://alexpounds.com/blog/2012/09/30/my-biggest-coincidence</guid><pubDate>Sun, 30 Sep 2012 15:55:49 -0700</pubDate></item><item><title>My laser-cut iPad stand</title><link>http://alexpounds.com/blog/2012/08/26/my-laser-cut-ipad-stand</link><description><![CDATA[<p>I sometimes use my iPad as a second screen – an auxiliary display for alerts (if you're a masochist) or side-channel apps (to do lists, calendars, Pomodoro timers, etc). If you've got a smart cover you can use it as a stand, but otherwise you have two choices: buy one, or make one. I made one – or actually two. One for home, one for work.</p>

<ul class="blog gallery"> 
<li><a href="/static/images/blog/2012/ipadstandlandscapefront.jpg"><img src="/static/images/blog/2012/ipadstandlandscapefront.tmb.jpg" alt="The iPad stand with iPad, in landscape." /></a></li>
<li><a href="/static/images/blog/2012/ipadstandcloseup02.jpg"><img src="/static/images/blog/2012/ipadstandcloseup02.tmb.jpg" alt="The iPad stand on its own, at a slight angle." /></a></li>
</ul>

<p>I started with <a href="http://www.thingiverse.com/thing:6391">a design on Thingiverse</a> and made some minor changes: I altered the slot size to work with 5mm Perspex and extended the rear feet because I was worried about the stand's stability. After a few rounds of trial and error on the laser cutter, I got a snug fit and a working stand. I used some scrap Perspex for mine, so there are some small cut-outs on the bottom edge.</p>

<p>If I were doing this again I'd either make the rear leg rounded so the notch wasn't supported with such a thin bit of Perspex (Perspex shatters easily) or make this out of something like MDF or ABS. I've used this stand for over a year on a daily basis and it's not failed in use, but I did drop one and the foot broke at the narrowest part. I'd also consider raising the iPad a little further off the desk, so you could charge it in a portrait orientation.</p>

<p>My main use case for this these days is to display <a href="http://itunes.apple.com/gb/app/concentrate!-timer/id416973825">Concentrate!</a> while working, though I've also used it to keep an eye on the news at times of civil unrest and media inquisitions.</p>

<p><a href="/static/ipadstand-v01.dxf">Download the DXF file</a> to make your own, or check it out <a href="http://www.thingiverse.com/thing:29168">on Thingiverse</a>.</p>
<ul class="blog gallery">
<li><a href="/static/images/blog/2012/ipadstandscreenshot.png"><img src="/static/images/blog/2012/ipadstandscreenshot.tmb.png" alt="A screenshot of the DXF file." /></a></li>
<li><a href="/static/images/blog/2012/ipadstandcloseup01.jpg"><img src="/static/images/blog/2012/ipadstandcloseup01.tmb.jpg" alt="The stand on its own, head-on." /></a></li>
<li><a href="/static/images/blog/2012/ipadstandportraitback.jpg"><img src="/static/images/blog/2012/ipadstandportraitback.tmb.jpg" alt="The iPad stand supporting the iPad in portrait mode, from the rear." /></a></li>
<li><a href="/static/images/blog/2012/ipadstandportraitfront.jpg"><img src="/static/images/blog/2012/ipadstandportraitfront.tmb.jpg" alt="The iPad stand supporting the iPad in portrait mode, from the front." /></a></li>
</ul>


]]></description><guid isPermaLink="true">http://alexpounds.com/blog/2012/08/26/my-laser-cut-ipad-stand</guid><pubDate>Sun, 26 Aug 2012 13:04:15 -0700</pubDate></item><item><title>Workarounds for a couple of unetbootin bugs</title><link>http://alexpounds.com/blog/2012/07/18/workarounds-for-unetbootin-bugs</link><description><![CDATA[<h3>Bug number one: a corrupted Ubuntu installer</h3>

<dl>
<dt>The symptom</dt>
<dd>the Ubuntu 12.04 alternate installer fails when installing the base system, telling you that the disk is corrupt. You'll get an error message along the lines of &quot;problem reading data from the CDROM&quot;.</dd>
<dt>The problem</dt>
<dd><a href="https://bugs.launchpad.net/unetbootin/+bug/373089">Unetbootin</a>/<a href="http://sourceforge.net/tracker/?func=detail&aid=2928072&group_id=14481&atid=114481">7zip</a> have known bugs with long file names/file paths. These have been open for a couple of years, so don't expect them to be fixed soon.</dd>
<dt>The solution</dt>
<dd>Use Ubuntu's startup disk creator instead. You can either run it from the launcher or as <code>usb-creator-gtk</code> from a console.</dd>
</dl>

<h3>Bug number two: your DBAN USB key won't boot.</h3>
<dl>
<dt>The symptom</dt>
<dd>When you try to boot from your DBAN USB key you get the boot menu, but attempting to boot any of the entries fails with the message &quot;Could not find ramdisk image:/ubninit&quot;.</dd>
<dt>The problem</dt>
<dd>Unetbootin doesn't configure <code>syslinux.cfg</code> properly.</dd>
<dt>The solution</dt>
<dd>Edit <code>syslinux.cfg</code>, replacing all occurrences of &quot;ubninit&quot; with &quot;ISOLINUX.BIN&quot; and the one occurrence of &quot;ubnkern&quot; with &quot;DBAN.BZI&quot;. It's case sensitive, so make sure it's all uppercase.</dd>
</dl>

<h3>Bonus DBAN/Unetbootin tip</h3>
<p>Unetbootin creates a default boot option for DBAN that includes the <code>--autonuke</code> flag. This means your DBAN key is especially dangerous – if you boot off the key, either by accident or design, it'll wipe all disks without any human intervention. Avoid this by removing the <code>--autonuke</code> option from the section marked <code>label unetbootindefault</code> while you've got <code>syslinux.cfg</code> open.</p>]]></description><guid isPermaLink="true">http://alexpounds.com/blog/2012/07/18/workarounds-for-unetbootin-bugs</guid><pubDate>Wed, 18 Jul 2012 09:24:01 -0700</pubDate></item><item><title>Everything I know about selling on eBay</title><link>http://alexpounds.com/blog/2012/07/02/everything-i-know-about-selling-on-ebay</link><description><![CDATA[<p>I've been selling a lot of stuff on eBay as part of an ongoing decluttering/minimalism drive lately. I've given a few people this braindump in person, but it's probably more useful as a written list. All of these tips apply to eBay auctions – I've got little experience with "Buy it Now" items.</p>

<h3>Make sure it's worth it.</h3>

<p>By the time you've photographed, uploaded, form-filled, written about your item, packed it, addressed it, and taken it to the post office you will have spent at least an hour per item. This isn't a good use of your time if it sells for 99p. (I sometimes list stuff that I know isn't going to perform well if it's not suitable for charity shops and/or I'll feel guilty about throwing it away.)</p>

<h3>What does and doesn't sell?</h3>

<p>Things that sell well: </p>

<ul>
<li>Photographic equipment</li>
<li>Computer equipment</li>
<li>Anything that would make you go "Oooooh" at a jumble sale. </li>
</ul>

<p>Things that sell OK: </p>

<ul>
<li>CDs</li>
<li>DVD boxed sets</li>
<li>Actually collectible collectibles</li>
<li>obsolete computer hardware</li>
<li>small organisational things (wallets, purses, folders, cases). I don't understand why, but they seem to.</li>
</ul>

<p>Things that don't sell: </p>

<ul>
<li>Books</li>
<li>DVDs</li>
<li>Chargers and cables</li>
<li>Small furniture. </li>
</ul>

<h3>Don't get your hopes up.</h3>

<p>Searching eBay for completed listings similar to your item will give you an idea about what it's really worth. You may think it's worth £100 but if everyone else's sold for £40, yours will sell for £40. A good listing and a bit of luck might help you do a bit better, but it might also do a bit worse. </p>

<h3>Buy a scale, and use eBay's postage calculator.</h3>

<p>I bought a <a href="http://www.dealextreme.com/p/digital-weighting-hook-scale-with-neck-strap-40kg-max-10g-resolution-18014">small hanging scale for £5</a> and weigh everything I'm selling. If you weigh the item with a jiffy bag you'll get an <a href="http://postageestimator.ebay.co.uk/">exact cost for postage</a>. I recycle envelopes and boxes from other purchases, but you can also buy packaging from pound shops and on eBay itself. Don't buy from the post office – it's really expensive.</p>

<h3>List items for free.</h3>

<p>If you your listing starts at 99p and only has one photo then you don't pay anything. You can use custom HTML in the description and include extra photos that way, presuming you have somewhere to host them. Beware! Flickr explicitly blocks image links from eBay referers. </p>

<h3>Place 10 day listings and start them on Thursday evening.</h3>

<p>It's worth spending 6p per item to schedule all your listings to start on Thursday evening. They'll finish on Sunday evening – a time when people are at home and likely to be looking at the computer. It also gets two weekends to attract bidders and watchers. Theoretically you only have to go to the post office once, on Monday, but there's always one arsehole who won't pay you until Tuesday evening. </p>

<h3>Buy it Now probably isn't worth it.</h3>

<p>The Buy it Now option disappears as soon as you get your first bidder. People will make a 99p bid in to stop other people buying it outright.</p>

<h3>Good pictures help, lots of pictures help.</h3>

<p>If it's just a book or a DVD this isn't important, but if you want to sell something that's worth more than £50 then photograph it from every angle and write a lot about it. You'll get more watchers and bidders that way. If you can include photos of your item working, then do so.  </p>

<h3>Cross-link if you like, but it doesn't work.</h3>

<p>If I'm selling a bunch of similar items then I add links to the others in each listing. Other books by the same author, a laptop case for a laptop, or a keyboard that matches a mouse; that kind of thing. I've also got a standard boilerplate that links through to <a href="http://www.ebay.co.uk/sch/acreatureofthenight/m.html">my other items for sale</a>. Despite this, it's very rare to sell more than one thing to anyone. It's probably not worth the hassle. </p>

<h3>Most bids happen in the last few minutes.</h3>

<p>It's not unusual for bids to trickle in for the first 9 days and only pick up in the last few minutes/seconds. If you've got a lot of watchers – say, more than 15 – then this becomes more likely. Don't panic if you've not hit your expected price before the last day. </p>

<h3>Fill out the proof of postage certificate at home.</h3>

<p>You can save yourself some time at the Post Office by filling out the certificate at home. Sometimes the counter staff will give you a pad for free, but you can also order <a href="http://forums.moneysavingexpert.com/showpost.php?p=7034973&amp;postcount=5">over the phone</a> or <a href="http://www.royalmail.com/mailsupplies">online</a>. I've also managed to order via <a href="mailto:rm.orders@royalmail.com">email</a> but I've seen <a href="http://forums.moneysavingexpert.com/showthread.php?t=22455&amp;highlight=stationary&amp;page=5">suggestions</a> that this only works for business addresses. So far I've never had to use the proof of postage, but it's reassuring and definitely worth doing for larger trades. PayPal and eBay are biased towards the buyer, so if there is a dispute all documentation helps you.</p>

<h3>Take a book to the post office.</h3>

<p>There will be queues. You will be bored. Take a book. </p>
]]></description><guid isPermaLink="true">http://alexpounds.com/blog/2012/07/02/everything-i-know-about-selling-on-ebay</guid><pubDate>Mon, 02 Jul 2012 11:36:31 -0700</pubDate></item><item><title>How to run a script when a filesystem gets mounted on Linux</title><link>http://alexpounds.com/blog/2012/06/26/how-to-run-a-script-on-filesystem-mount-in-Linux</link><description><![CDATA[<p>I wanted to run a script when a filesystem gets mounted on my Ubuntu server. I thought this would be a common task but it took me a while to find the answer. Some people suggested using udev, but udev responds to device changes. If you're trying to trigger something like a backup when you plug in a USB drive, udev is the way to go. But it's no use if your device is always connected but not always mounted.</p>

<p>When my server starts, <code>/home</code> isn't mounted automatically. <code>/home</code>'s on an encrypted filesystem, and the system runs without a keyboard and monitor, so I want it to boot up normally without <code>/home</code> and I'll mount it the next time I login. When <code>/home</code> becomes available, it should start a media server and NFS sharing.</p>

<p>It's not well documented, but it's easy under Ubuntu. You need to use <a href="http://upstart.ubuntu.com/">upstart</a> and create an init script. These live in <code>/etc/init/</code> and can have any name ending in <code>.conf</code>. You can either write your script directly in the init script, or call another script elsewhere. As I only had a couple of tasks to perform the behaviour's more obvious if it's in the init script. 
Here's what mine looks like:</p>

<p><pre># mounted-home - Trigger actions when home becomes available. 

description "Trigger actions when /home becomes available." 

start on mounted MOUNTPOINT=/home 

task 

script
    /etc/init.d/forked-daapd restart
    service nfs-kernel-server restart   
end script</pre></p>

<p>You could also write a complementary script that stops these things when the home directory is unmounted, but I don't normally unmount my home dir and there's no harm in running this script repeatedly – the restart command will start it if it's stopped, or bounce it if it's already running.</p>]]></description><guid isPermaLink="true">http://alexpounds.com/blog/2012/06/26/how-to-run-a-script-on-filesystem-mount-in-Linux</guid><pubDate>Tue, 26 Jun 2012 04:29:54 -0700</pubDate></item><item><title>A brief review of Catball Eats it All</title><link>http://alexpounds.com/blog/2012/05/12/catball-eats-it-all</link><description><![CDATA[<p>Let me state my biases upfront. I love quirky, ridiculous games. I love great game music. And I love cats. <em>Catball Eats It All</em> ticks all of these boxes. Later I discovered it started as a <a href="http://www.kickstarter.com/projects/brokencompass/catball-eats-it-all">Kickstarter project</a> - icing on the indie cake.</p>

<ul class="blog gallery">
<li><a href="/static/images/blog/2012/catballloading.jpg"><img src="/static/images/blog/2012/catballloading.tmb.jpg" /></a></li>
<li><a href="/static/images/blog/2012/catballbegin.jpg"><img src="/static/images/blog/2012/catballbegin.tmb.jpg" /></a></li>
</ul>

<p><a href="http://itunes.apple.com/gb/app/catball-eats-it-all/id478615881?mt=8">Catball Eats It All</a> is a pinball-platformer game for iOS. You are the Catball, and must roll & float through the level eating all the little bits of food before the timer runs out. Once you've got all the food, you eat the level itself. It's a simple concept, and the delight is in the execution: great artwork (from <a href="http://www.nosego.com">Nosego</a>), great music (from <a href="http://www.myspace.com/benthornewill">Ben Thornewill</a>/<a href="http://jukeboxtheghost.com">Jukebox the Ghost</a>), and great sound effects. There's also a refreshing absence of freemium piffle. Overall, it's a charmer.</p>

<p>There are some flaws, however: the controls can be irritating and hard to master. In many ways, the controls <em>are</em> the game. It's sometimes fairly hard but that tends to flow from the controls rather than the game itself. It also made a poor first impression, downloading its level data when you run it for the first time (instead of when you install it), so you're out of luck if you try it out somewhere without internet. Fortunately, this was fixed in a recent update.</p>

<p>It's a bit of a slow burner, and I found myself playing it more for the music than the gameplay. But it's a lovely little game for 69p, and definitely worth your time - especially if you like Kometun, pinball, or cats.</p>

<p>Overall: 7/10. Recommended; <a href="http://itunes.apple.com/gb/app/catball-eats-it-all/id478615881?mt=8">Available from the iTunes store</a>.</p>

<ul class="blog gallery">
<li><a href="/static/images/blog/2012/catballgameplay.jpg"><img src="/static/images/blog/2012/catballgameplay.tmb.jpg" /></a></li>
<li><a href="/static/images/blog/2012/catballscore.jpg"><img src="/static/images/blog/2012/catballscore.tmb.jpg" /></a></li>
</ul>
]]></description><guid isPermaLink="true">http://alexpounds.com/blog/2012/05/12/catball-eats-it-all</guid><pubDate>Sat, 12 May 2012 11:15:04 -0700</pubDate></item><item><title>Lessons from my recent iPad debacle.</title><link>http://alexpounds.com/blog/2012/01/21/lessons-from-my-recent-ipad-debacle</link><description><![CDATA[<p>A series of unfortunate events left my iPad reset to its factory defaults and unable to restore from backup. All my data: gone. This was a horrid reminder of things that I knew but hadn't fully internalised. Please learn from my mistakes and absorb the following:</p>

<p><strong>Don't forget your iTunes backup password.</strong> There's no going back if you tick the "encrypt my backups" option. You can't trash the old backups and make a new one with a known password. You can't recover the old password (unless it's really weak and you'll pay £80). Your iPad will still back up – but you can't restore without the password. If you forget your password and want a usable backup, you must blank your iPad and start from scratch.</p>

<p><strong>iPad encryption is strong. Really strong.</strong> I think of the iPad as a consumer device and expected security to match – allowing new backups, and/or weak encryption. Nope: it uses AES256 for encryption, SHA-1 hashes for filenames¹, and random keys as part of each backup². All the encryption's handled on the iPad and no data leaves the iPad unencrypted³. Each file in the backup gets a different encryption key¹. You need the passcode to unlock the device, and checking this is done on the iPad itself.</p>

<p><strong>Ubiquitous capture for passwords is vital.</strong> Use a password safe – a program that stores your passwords, so you can memorise 1 really strong password & use randomised passwords for everything – and make sure everything goes in there. No paper scraps. No "Oh, I'll remember this one." <strong>EVERYTHING.</strong> If you find a password you've written down, put it in the password safe as "unknown" before destroying it.</p>

<p><strong>Password reuse can be a good thing.</strong> Why the fuck didn't I use my Apple ID password? Or the unlock code for the iPad? Or my encrypted HD password? Or my encrypted PC backup password? Because I'm a fucking idiot, that's why.</p>

<p><strong>If you don't have more than one copy of your data, you don't have it.</strong> My password safe was on my iPad. I would have been stuck even if I'd stored it in there. You need multiple copies of your data, in multiple locations, and not tied to any one device.</strong>

<p><small>¹ iPhone Data Protection in-depth, slide 48.<br />
² iPhone Data Protection in-depth, slide 52.<br />
³ Data Decryption & Password Recovery, slide 25.<br />
Evolution of iOS Protection and iPhone Forensics: from iPhone OS to iOS 5, slides 29-30.</small></p>]]></description><guid isPermaLink="true">http://alexpounds.com/blog/2012/01/21/lessons-from-my-recent-ipad-debacle</guid><pubDate>Sat, 21 Jan 2012 16:00:00 -0800</pubDate></item><item><title>Anthropomorphism</title><link>http://alexpounds.com/blog/2011/12/28/anthropomorphism</link><description><![CDATA[<a href="/static/images/blog/2011/headlessbear.jpg"><img src="/static/images/blog/2011/headlessbear.tmb.jpg" alt="A headless teddy bear." /></a>

<p>This evening I was going through some old boxes and I found this teddybear. He has a NatWest ribbon on – he's clearly a promotional item, and not a much-loved childhood friend. Somehow he’d been decapitated while in storage. What am I supposed to do with a headless teddy?</p>

<p>I’m supposed to throw him away, of course. But I don’t think I can. His big black eyes are pleading with me to love him.</p>

<p>I think I have issues with anthropomorphism.</p>]]></description><guid isPermaLink="true">http://alexpounds.com/blog/2011/12/28/anthropomorphism</guid><pubDate>Wed, 28 Dec 2011 12:28:00 -0800</pubDate></item><item><title>Lightning Shoots in Abandoned Buildings</title><link>http://alexpounds.com/blog/2009/04/23/lightning-shoots-in-abandoned-buildings</link><description><![CDATA[<p>On Sunday I noticed an abandoned building with an easy way in. On Monday I
emailed a friend and asked her if she'd like to come with me as a model. On
Tuesday we did the photos. I love it when a plan comes together.  </p>

<ol>
<li><a href="#The_Setting">The Setting</a></li>
<li><a href="#The_Model">The Model</a></li>
<li><a href="#The_Point">The Point</a></li>
<li><a href="#The_Shoot">The Shoot</a></li>
<li><a href="#The_Post-processing">The Post-processing</a></li>
<li><a href="#The_Lessons">The Lessons</a></li>
<li><a href="#The_Results">The Results</a></li>
</ol>

<a name="The_Setting"></a><h2>The Setting</h2>
<p>Abandoned buildings are fun and scary. I spotted one with easy access from a
bus ride, and thought it could make a good setting. A friend suggested that as
sets go they've been done to death. I suppose they have - even I've <a
href="http://ethicsgirls.com/20070505">used one before</a> - but I wasn't
looking to create something groundbreaking, just something interesting to me.
&quot;This is my photograph. There are many others like it but this one is
mine,&quot; and all that. </p>

<p>There are some risks with abandoned buildings. They are dirty and possibly
structurally unsound so you need to keep your wits about you. You never know if
you're going to find squatters or other people in there. You're trespassing,
which in the UK is a civil offence (ie. you're risking court, not an arrest). I
am not a lawyer, or even an experienced trespasser, but I expect that if you're
not causing any damage then if you do meet a security guard they'll ask you to
leave, nothing more. I am paranoid so I left anything identifying in my wallet
at home anyway.</p>

<p>When in the building itself, keep an eye out for broken glass, used needles,
excrement, etc. Bring a torch even if it's a sunny day outside. Look for signs
of human habitation - bedding, fresh rubbish, etc. If you do meet someone
chances are they'll be friendly (or at least leave you alone), certainly if you
explain that you're just looking around - but on the other hand you've probably 
got some expensive equipment with you. If you're going with someone else
(which is a damn good idea) then take care of them too, especially if they're a
model - tell them in advance so they can bring some rugged footwear and
clothes. You may be fine in jeans and boots but if they're in ballet pumps and
a floaty dress they might not be so lucky. Don't take unnecessary risks, and
try to think before you move (especially if you're on an upper floor or looking
at stairs). With wooden floors be aware of damp and flexing surfaces; with
metal be aware of rust; with concrete be aware of cracked or broken surfaces.
If you're going up stairs try to stay as close to the point of support as you
can (generally close to the wall). </p>


<a name="The_Model"></a><h2>The Model</h2>
<p>I don't have any go-to models in London at the moment so I asked a friend of
mine, Lara, who seemed like she'd have the temperament for prancing around in
front of a camera. I met Lara at <a href="http://www.jitsufoundation.org">jitsu</a> 
lessons, and I figured that if we both knew some jitsu we stood a fighting
chance against zombies, vampires, and anyone else unsavoury we encountered
inside the building. (Lara's better than I am.) As usual I got her to sign a
standard model release, and told her about the setting and the point of the
shoot.</p>


<a name="The_Point"></a><h2>The Point</h2>

<p>I wanted to try out some of the small-strobe lighting techniques recommended
by <a href="http://strobist.blogspot.com">Strobist</a>. I was also interested 
to see how my <a href="http://strobist.blogspot.com/2009/03/manual-flashes-two-debuts-and-adoption.html">cheap eBay flash</a> 
held up. I was planning to borrow another, more powerful speedlite from a
friend, but alas that didn't work out. I carried everything by bike - camera,
tripod, light stand, umbrella. The umbrella got ball-bungeed to the stand, and
the stand got ball-bungeed to the bike. It made riding ungainly, but not
unbearably so. That said, I'd have been out of luck if I wanted two stands and
I wouldn't make a habit of going by bike. I've decided the best accessory a
photographer can have is an assistant. An assistant with a car.</p>

<p>We only had an evening after work to do it; I wanted to get in quickly
before the hole was boarded up, so didn't want to wait until the weekend. We'd
also be fighting fading ambient light in what was likely to be a fairly dingy
setting anyway. With two lights this wouldn't be a problem as you can light
both the subject and the background, but with just one low-powered strobe it
was likely to be limiting. I brought a tripod along so I could use long
exposures and a couple of lenses that open up to f/2 and f/1.8. The only mental
image I had in my mind going in was of a pristine secretary in the ruined
building, so I asked Lara to bring some office clothes with her.</p>

<p>On the whole, this was very much a &quot;Wander around an abandoned building
while taking some photos&quot; rather than &quot;A photoshoot that happens to be in an
abandoned building.&quot;</p>


<a name="The_Shoot"></a><h2>The Shoot</h2>

<p>We met a little later than planned, around 19:40. We walked to the building
and went inside. It was a bit of a wreck. We looked on the first floor and
found used needles, razor blades, and a condom wrapper. We tried the next floor
up, which had less drug paraphernalia but more turds and rubbish. There was
detritus everywhere. We decided to go down to the first floor instead of
scouting further as the light was fading. I got Lara to change into her
secretarial garb and grabbed some available light portraits. Even at this late
stage I had to shoot at a high ISO rating, and pushed my luck too much with
slow shutter speeds. I tried grabbing some wide-angle shots to try and get a
broad view of the broken office with Lara in the centre, but these were prosaic
due to boring lighting. Slightly better were the attempts to use a 
<a href="http://ethicsgirls.com/20090421/007-img_8155%20web.jpg">broken
window as a framing device</a>. I stuck a diffuser on the flash and placed it to
camera left, bouncing it off the ceiling.</p>

<p>After that there was a quick outfit change to the green silk top, and a
lighting change too. The light was coming from one silvered umbrella, wherein I
valiantly attempted to avoid reflections in the windows behind Lara. I tried to
get a <a href="http://ethicsgirls.com/20090421/005-img_8196%20web.jpg">nice exposure 
of the world outside</a> to provide a little interest in the
background. We did some <a href="http://ethicsgirls.com/20090421/008-img_8208%20web.jpg">against</a>
 the <a href="http://ethicsgirls.com/20090421/008-img_8208%20web.jpg">pillar</a>
, and some standing in the open
without the shirt, but again they turned out flat and lifeless. I could have
made this better by asking Lara to do something more interesting than stand
there. </p>

<p>We were rapidly losing the light and starting to freak out about when the
occupants would return, so we packed up and left for the outside world. We did
some more pictures outside which were my <a href="http://ethicsgirls.com/20090421/003-img_8276%20web.jpg">favourite</a> 
<a href="http://ethicsgirls.com/20090421/002-img_8280%20web.jpg">images</a> of the shoot. I
slapped a couple of <a href="http://strobist.blogspot.com/2006/03/lighting-101-using-gels-to-correct.html">CTO gels</a> 
onto the flash to bring the flash closer to the sodium streetlights, stuck a 
<a href="http://strobist.blogspot.com/2006/03/lighting-101-cereal-box-snoots-and.html">cereal-box snoot</a> 
on it, and stuck it high up to camera left. I tried using a longer shutter
speed than normal to get a blurry background and a little light trail while
using the flash to freeze Lara. I used a similar setup for the doorway
pictures, but the snooted light was closer this time and the ratio between the
flash and ambient was lower. </p>

<p>It was starting to get late so we retired to a nearby coffee shop and had a
couple of warm drinks (<a href="camomiletea.php">camomile tea</a>
 for me, hot chocolate with marshmallows for her) and had a look at the pictures. 
Then we said our goodbyes and went our separate ways.</p>


<a name="The_Post-processing"></a><h2>The Post-processing</h2>
<p>Lara is basically stunning, so I didn't have to do anything cosmetic.
Everything was compensating for my own mistakes; I cropped down a bit more and
tightened up the composition, cloned out some distracting spots and reflections
from my light, and tweaked the colour balance to make the lighting a little
less orange. I converted a couple of images to black and white, because the
colour wasn't adding anything to the image and (in 
<a href="http://ethicsgirls.com/20090421/008-img_8208%20web.jpg">one case</a>) because
heavily-grainy images work better in black and white than in colour. I'm still
not entirely happy with that one. I also lightened a shadow on Lara's face in
one shot to stop it from being too distracting.</p>

<p>I ended up doing more processing than I like on these. Generally I'm a fan
of Ansel Adams' idea of <a href="http://en.wikipedia.org/wiki/Ansel_Adams#Contributions_and_influence">previsualising</a>
 and getting things right in-camera, but
I'm not going to beat myself up too heavily over these as it was dark and hard
to see what's in the viewfinder (as well as the first shoot I've done for a
long time).</p>

<a name="The_Lessons"></a><h2>The Lessons</h2>

<ol>
<li>I don't care how dark it is, ISO 1600 is only for once-in-a-lifetime
things like sporting events and assassinations. Break out the tripod instead or
open up as wide as you can go and live with no depth-of-field. If you're
shooting wide-angle it's not going to be too bad anyway.</li>
<li>Some abandoned buildings are horrific. Pick ones far away from cities and
transport hubs, they're less likely to be drug dens and flop houses.</li>
<li> If you're having trouble with composing in the viewfinder, be sure to
pay attention to it on the LCD. Don't just concentrate on the exposure.</li>
<li> The best accessory a photographer can have is an assistant. An
assistant with a car.</li>
<li> The second-best accessory is a reflector. (This would have made my
one-light setup more flexible and allowed me to provide some fill light).</li>
<li> Asking the model to do something silly often results in a more interesting
image.</li>
</ol>

<a name="The_Results"></a><h2>The Results</h2>
<p>These are <a href="http://ethicsgirls.com/20090421/">in a gallery</a> on <a href="http://ethicsgirls.com">Ethicsgirls</a>.</p>
<table border="0" width="100%" class="gallery">
<tr valign="top">
   <td><a href="http://ethicsgirls.com/20090421/007-img_8155%20web.jpg"><img src="http://ethicsgirls.com/20090421/007-img_8155%20web.jpg.small.jpeg" alt="Lara as a secretary using the window as a framing device." /></a></td>
   <td><a href="http://ethicsgirls.com/20090421/005-img_8196%20web.jpg"><img src="http://ethicsgirls.com/20090421/005-img_8196%20web.jpg.small.jpeg" alt="Lara in a silk shirt." /></a></td>
   <td><a href="http://ethicsgirls.com/20090421/008-img_8208%20web.jpg"><img src="http://ethicsgirls.com/20090421/008-img_8208%20web.jpg.small.jpeg" alt="Lara leaning against a pillar." /></a></td>
</tr>
<tr valign="top">
   <td><a href="http://ethicsgirls.com/20090421/006-img_8213%20web.jpg"><img src="http://ethicsgirls.com/20090421/006-img_8213%20web.jpg.small.jpeg" alt="Lara with her back to a pillar." /></a></td>
   <td><a href="http://ethicsgirls.com/20090421/004-img_8227%20web.jpg"><img src="http://ethicsgirls.com/20090421/004-img_8227%20web.jpg.small.jpeg" alt="Lara fiddling with a button a shirt." /></a></td>
   <td><a href="http://ethicsgirls.com/20090421/000-img_8241%20web.jpg"><img src="http://ethicsgirls.com/20090421/000-img_8241%20web.jpg.small.jpeg" alt="Lara outside, lit by a snooted flash." /></a></td>
</tr>
<tr valign="top">
   <td><a href="http://ethicsgirls.com/20090421/001-img_8261%20web.jpg"><img src="http://ethicsgirls.com/20090421/001-img_8261%20web.jpg.small.jpeg" alt="Lara on steps, with a long exposure to get some light trails on the left." /></a></td>
   <td><a href="http://ethicsgirls.com/20090421/003-img_8276%20web.jpg"><img src="http://ethicsgirls.com/20090421/003-img_8276%20web.jpg.small.jpeg" alt="Lara in a doorway pulling a fishface." /></a></td>
   <td><a href="http://ethicsgirls.com/20090421/002-img_8280%20web.jpg"><img src="http://ethicsgirls.com/20090421/002-img_8280%20web.jpg.small.jpeg" alt="Lara in a doorway smiling." /></a></td>
</tr>
</table>
]]></description><guid isPermaLink="true">http://alexpounds.com/blog/2009/04/23/lightning-shoots-in-abandoned-buildings</guid><pubDate>Thu, 23 Apr 2009 16:00:00 -0700</pubDate></item><item><title>Linux Music Players Suck</title><link>http://alexpounds.com/blog/2008/03/31/linux-music-players-suck</link><description><![CDATA[<p>As some of us <a href="http://groups.google.com/group/alt.sysadmin.recovery/search?group=alt.sysadmin.recovery&amp;q=all+software+sucks&amp;qt_g=Search+this+group">already know</a>, 
all software sucks. But Linux music players seem to suck more than most. I mentioned to a colleague that I was still using the original XMMS to listen to music, 
and his horror (combined with some niggling little issues) caused me to explore the alternatives to this old, outdated, unmaintained bit of software. It turns out 
the alternatives suck.</p>

<h3>What I want</h3>
<p>Some things are absolutely non-negotiable features:</p>
<ul>
    <li>Must be able to scrobble (ie. submit music to <a href="http://www.last.fm/user/acreature">Last.fm</a>).</li>
    <li>Must be able to deal with large collections of music (18,000 tracks or thereabouts).</li>
    <li>Must support UTF-8, for <a href="http://www.last.fm/music/Maxïmo+Park">artists</a> <a href="http://www.last.fm/music/Antonín+Dvořák">with</a> 
        <a href="http://www.last.fm/music/Академический%20ансамбль%20песни%20и%20пляски%20Российской%20армии">non-ASCII</a> <a href="http://www.last.fm/music/渋さ知らズ">names</a>.</li>
</ul>
<p>Some things are mere nice-to-haves, varying from &quot;This is standard stuff and I'll be rather annoyed if you don't have it&quot; to &quot;Mere frivolity&quot;:</p>
<ul>
    <li>Support for embedded artwork. Lots of players are quite keen to fetch artwork from Amazon; I don't necessarily want artwork in my 
        music player, but if you're going to display it at least use the details in the files.</li>
    <li>Support for watching directories for new files - a kind of auto-playlist-management thing. This ties in with the above requirement 
        of 'not melting when dealing with large collections' - it's no good watching my nominated directories if you're going to rape my
        CPU every 5 minutes to check for new files.</li>
    <li>Persistent queues. I generally listen to my entire collection on shuffle, and just queue up albums and tracks I particularly want to hear
        as and when. Sometimes the queue gets quite long; it should be saved and restored if the music player is quit and re-run.</li>
    <li>A Winamp 2-style interface. I've never been seduced by the &quot;your media player should look sexy&quot; arguments, but I like the winamp
        interface because it lets me have the player always on my screen without taking up lots of space (see the top of 
        <a href="http://www.ethicsgirls.com/stuff/screenshot-fluxbox.jpg">this screenshot</a>).</li>
</ul>

<h3>What I currently use: XMMS 1</h3>
<p>I have been using XMMS for many years now. It has some niggles in it, but mostly it's OK. But, like everything else here, it sucks:</p>
<ul>
    <li>Not-quite-there support for UTF-8: some names show OK, others don't. Fortunately it still scrobbles these tracks OK, so I can live with it 
        displaying weirdly in the playlist.</li>
    <li>No concept of a library, so whenever I buy another CD or download a new track I have to add it to the playlist by hand, or put up with duplicates. 
        Generally I never bother - instead, I periodically clear the entire playlist and re-add the directories where I keep my music.</li>
    <li>No persistent playqueue. This was the one that made me start to look for a replacement.</li>
    <li>Not currently maintained. Which is fine, really, as it works fine and doesn't crash. But none of these niggles are ever going to be fixed.</li>
</ul>
<p>Despite these I've stuck with it at home; it's the only player I've found that takes the 18,000 tracks in my collection in its stride. Changing between tracks
is quick, searching and scrolling the list is fast. I can go without the tree-view browsers in other players if they're going to be dog-slow to use.</p>

<h3>First attempt at something else: Rhythmbox</h3>
<p>Rhythmbox is surprisingly good. But, despite this, it sucks: </p>
<ul>
    <li>It does support a library management system, but I can only tell it to watch a single folder! I don't have all my music below a single directory.</li>
    <li>The library-watcher goes absolutely nuts whenever I add new music to the collection, taking many minutes at 100% CPU to find the 10 new files I've added. 
        It periodically does a similar thing just to find out if I have added something or not.</li>
    <li>No embedded artwork support.</li>
    <li>No persistent queues.</li>
    <li>A disturbing habit of crashing X when I quit it on my work computer. It doesn't do this at home, but I still do not approve. Having everything I'm currently
        working on disappear is not pleasant.</li>
</ul>
<p>It gets an honourable mention for working out of the box and having a mostly non-broken artist/album/track browser.</p>


<h3>Amarok</h3>
<p>Turns out I work with <a href="http://www.last.fm/user/mxcl">someone who used to be a core developer on Amarok</a>, and I read on <a href="http://www.methylblue.com">his blog</a>
how <a href="http://www.methylblue.com/blog/amarok-complex/">unremittingly awesome</a> it was. I trusted him, and I believed the hype. So I installed it and gave it a spin. 
Unfortunately it made me viscerally angry on my first attempt at using it. It has a startup wizard that wanted me to set it up a database before I could use it. Once I'd got over 
the shock of a music player insisting on an SQL backend I told it where my music could be found. It then spent 20 minutes indexing my music, in silence, as it told me to 'please wait'. 
I've since been told that I could have played stuff direct from the filesystem in that time, but there was nothing on the screen to indicate this. Then when it had <em>finally</em> done
this I tried to play some music. It played me the introduction clip from the developers, then gave me an error message telling me it couldn't actually play MP3s after all. This was the 
final straw; having waited patiently for it to do its thing only to be told that the music player couldn't actually play any music drove me over the edge and I quit in disgust.</p>
<p>But I am a sucker. People kept telling me that I was just unlucky and it was actually very good. So I gave it another spin. Here's why it sucks:</p>
<ul>
    <li>It doesn't use quite as much of the CPU when scanning for new files in the library, but it's still noticeable when it does it, and it's not exactly nimble.</li>
    <li>Laggy when changing tracks and displaying information about what's currently playing.</li>
    <li>I don't think its queue persists, but I'm not sure.</li>
    <li>The user interface feels 'big'. It uses a lot of space to display little information. It's also somewhat 'modal' - there's information displayed when the player is stopped
        that isn't there when it's playing. For instance, it's actually got quite a neat little &quot;recently added&quot; display that shows you stuff new to your library - but 
        you can't get at this when the player's playing. You must stop it first if you want to listen to something new (or find it manually).</li>
    <li>Library browsing is slow, even though it's got a Postgres database as its backend.</li>
    <li>Prediction/exploration functions are probably only any good when you've listened to several thousand tracks (I think it's trying to recommend tracks I listen to for playing next);
        as it is, it just feels cluttered and useless.</li>
    <li>I think it considers a track played as soon as <em>any</em> of it has been played; skipping it doesn't count as a non-play. If this isn't a case then the user interface 
        needs to be brushed up.</li>
</ul>
<p>If you're looking for something that's going to insist you explore your music and have the time to devote to letting it build up a decent body of stats to use, Amarok
may be worth a look. Personally, I'd give it a miss. Sorry Max.</p>


<h3>Audacious</h3>
<p>Audacious is either the first or second rewrite of the original XMMS codebase; it's one of those projects that's been forked and forked again. It is, on face
value, a maintained version of XMMS. It's got scrobbling support, the Winamp interface I like, and also supports UTF-8. In fact, it's almost good enough to 
replace XMMS. But, like the others mentioned here, it sucks:</p>
<ul>
    <li>No persistent playqueue.</li>
    <li>No automatic library management.</li>
    <li>Really slow when dealing with big playlists; scrolling through the list is not possible due to the lag. Displaying the next page takes around 10 seconds
        on a playlist of 18,000 tracks. It might be quicker when all the metadata has been loaded in already, but it'd have to re-do it whenever I re-loaded the 
        playlist. XMMS displays the filenames of files and redraws them once it's loaded the metadata; it seems Audacious waits to load the data for all the files 
        and then redraws the screen.</li>
    <li>At least one of the main developers is a jerk. This isn't a big thing for most people, but I was willing to fix the first item, and could probably have a
        stab at the second two. But having chatted on the IRC channel for a bit I can't face it. The devs apparently want to take Audacious in a different direction,
        and dealing with such a... forceful personality would not be fun. My motivation to contribute has gone.</li>
</ul>
<p>As it happens I have switched to Audacious at work - I have a small enough MP3 collection at work that any lag is not enough to annoy me, and the improved 
UTF-8 support is worth any slowdown.</p>


<h3>XMMS2</h3>
<p>I haven't actually tried this, but this is why I think it sucks anyway:</p>
<ul>
    <li>A client-server model for a music player? You've got to be kidding me. I can see why it would be useful in some cases, but I'm not building a jukebox
        or placing client units throughout my flat. I just want to listen to music on my computer. Client-server is overkill. I could forgive this, but...</li>
    <li>All the <a href="http://wiki.xmms2.xmms.se/index.php/XMMS2_Clients">clients</a> look like 'my first GUI app'. They are pretty much all huge and/or horrible.
        The few clients that I looked at and thought &quot;I could use this every single day&quot; are either abandoned or missing key functionality. When they say 
        it's not ready for public usage yet, they're not kidding.</li>
</ul>


<h3>Exaile</h3>
<p>Apparently some people look at software projects like Amarok and think &quot;Hey, that's neat. Let's rewrite it in Python.&quot;. Rhythmbox decided they wanted 
Amarok in GTK rather than QT, and it's ended up a little different, so maybe the same thing will happen with Exaile. It's a bit more minimal (which is a good thing), but 
it still sucks:</p>
<ul>
    <li>No embedded artwork support.</li>
    <li>Smart playlists aren't automatically updated - if you have a playlist open on a tab and that playlist gets new tracks added to it, the open tab does not
        gain them. You must close it and re-open.</li>
    <li>There's a lag on changing tracks. There's a lag whenever you try and do just about anything, in fact - 3-5 seconds after adding something to your playlist and 
        around 10 seconds when you change the tree browser from 'artist' to 'album' or similar. Naturally there's a lag and a whole load of CPU usage when the library
        updates itself.</li>
    <li>I don't think I can close the main window and have it run just in the tray.</li>
</ul>
<p>It does, however, have persistent playqueues. It would be better if it had more info to begin with (see below).</p>


<h3>General Reflections</h3>

<p>It would be really useful if there was some source that could give a music player details about everything you've ever listened to; <a href="http://www.last.fm/">Last.fm</a>
would be the obvious source but there's (currently) no feed for your own scrobbles, and you can't get your entire scrobbling history from Last.fm. This is a shame; I have a hunch 
that Amarok's features would be much better if you could 'prime the pump' with this data; likewise for Exaile's smart playlists.</p>
<p>Before <a href="/contact.php">emailing me</a> madly to tell me how wrong I am, please understand I'm not impugning you personally for your choices; if these players work for you, 
great. Unfortunately, they don't entirely work for me.</p>.]]></description><guid isPermaLink="true">http://alexpounds.com/blog/2008/03/31/linux-music-players-suck</guid><pubDate>Mon, 31 Mar 2008 16:00:00 -0700</pubDate></item><item><title>HOWTO: Automated, encrypted, incremental backups on Linux</title><link>http://alexpounds.com/blog/2007/08/22/howto-automated-encrypted-backups-on-linux</link><description><![CDATA[<p>I recently decided that I was going to get one small corner of my computing life in order. Yes, my home directory was 
a mess. Yes, I had way too much stuff sitting around unorganised. Yes, I had about 3 previous generations of hard disk 
sitting in <code>/usr/disk</code> because I hadn't been bothered to suit through the bits I need and delete the stuff I 
didn't. I mean, hey - I might really need my NVidia drivers from 5 years ago one day, you know? </p>

<p>Anyway, I decided that I was going to stop living on the edge and get an automatic nightly backup. My previous backup
strategy was &quot;Burn stuff to DVD when I remember&quot;. I could just about fit all my documents, mail, source code, 
and other stuff onto one DVD. But my music wasn't backed up (though not such a big deal, as it was on my iPod and I've got 
the original CDs) and my photos were not fantastically well backed up. This was the clincher: I'd recently bought two 4
gigabyte CompactFlash cards for use with my camera. The upshot of this was that I often had shoots that were &gt; 4Gb - 
often as much as 8Gb. That won't all fit on one DVD so backing them up was a pain. Finally, backing up to DVD was 
something I only did once every month or so and 
<a href="http://forums.cnet.com/5208-10149_102-0.html?forumID=7&threadID=152618&messageID=1698511">DVDs aren't all that 
permanent anyway</a>. It would be just my luck to suffer a hard disk crash and then find all my backups are unreadable.</p>

<p>Here's what I needed from the new system: 

<ul>
<li><strong>Automatic</strong> - I shouldn't have to do anything. If it relies on my involvement it will never get done.</li>
<li><strong>Secure</strong> - Not a massive concern in the real world, but it adds to the psychological feeling of 
security. I want to know that if someone nicks my backup it's useless to them - they don't get all my cached passwords, financial
records, and naked pictures of my girlfriend.</li>
<li><strong>Incremental</strong> - More of a nice-to-have than a requirement, an incremental backup lets you go back to 
earlier snapshots if you want to. Rather than taking full backups every day (which would require huge amounts of space) you 
just store the bits that have changed, although it looks to the system like each one is a full backup.</li>
</ul>
</p>

<h3>Step 1: Assumptions and Requirements</h3>
<p>I run Debian Linux on my PC so this is written from that perspective, but this should work fine on 
just about any Linux machine.</p>
<p>In hardware terms you just need a spare hard disk. I got a <a href="http://www.amazon.co.uk/gp/product/B000G12W3Q?ie=UTF8&tag=alexpoundscom-21&linkCode=as2&camp=1634&creative=6738&creativeASIN=B000G12W3Q">500GB External HD</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=alexpoundscom-21&l=as2&o=2&a=B000G12W3Q" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
which I'm using via USB. The drive needs to be slightly bigger than the data you're backing up. I have
400Gb of data drives in my machine, so 500Gb is ample. 
Personally I chose to back up the entire system, though some people consider that overkill and just back
up <code>/home</code> (where all your documents and personal settings are stored). I also like to have 
a backup of <code>/etc</code> for my system settings, <code>/root</code> for root's home directory 
(I have a couple of sysadminny scripts in there, some environment settings, etc), and I've also got a 
<code>/data</code> partition which is where all my photos end up. So backing up just <code>/home</code> 
wasn't for me. Rather than figure out what bits I wanted to back up and which bits I could ignore, 
I just backed everything up.</p>

<p> In software terms you need <code>rsync</code> and LUKS:</p>
<div class="bodybox">
<code>apt-get install rsync cryptsetup</code></div>


<h3>Step 2: Encrypt and mount the disk</h3>

<p><small>I found <a href="http://www.debian-administration.org/articles/469">this article</a> useful
when trying to figure this out the first time around.</small></p>

<ol>
<li><p>Your first step is to figure out where your disk is. If it's an IDE drive you'll find the device 
on <code>/dev/hdb</code> or similar, and the partition on <code>/dev/hdb1</code>. If you need to 
partition the drive then try using <code>cfdisk</code> (my favourite, although not always available)
or <code>fdisk</code>.</p>
<p>My drive's USB, which means it lives on <code>/dev/sda1</code>, but it's better to use one of the links
in <code>/dev/disk/</code>. These are automatically created symlinks to devices so you don't have to worry 
about what order you plug stuff in. This doesn't really matter - we're only going to be referring to the 
device once - but it's good to know.</p>
<p><strong>Be very careful</strong> when choosing your device, as we're about to torch all the information on it. 
Set it up as an encrypted LUKS container like this:</p>
<div class="bodybox">
<code>cryptsetup luksFormat /dev/disk/by-label/My_Book</code></div>
<p>It'll ask you if you're sure you want to destroy the data on this drive, then prompt you for a passphrase. 
Try and <a href="http://www.utexas.edu/computer/passwords/choose.html">pick a good one</a>.</p></li>

<li><p>Now we open our newly encrypted device and make a filesystem on it. The first command creates a 
mapped device on <code>/dev/mapper/</code> and the second sets up a filesystem - I've gone with Ext3, 
but you can pick your favourite.</p>
<div class="bodybox">
<code>cryptsetup luksOpen /dev/disk/by-label/My_Book crypto_backup<br />
mkfs.ext3 /dev/mapper/crypto_backup</code></div></li>

<li><p>That's it - you've now got an encrypted drive ready to roll.</p>
<div class="bodybox">
<code>mkdir /mnt/backup</br>
mount /dev/mapper/crypto_backup /mnt/backup</code></div></li>
</ol>

<p>NB. If you have one of these Western Digital drives, you may find that they don't let you mount them by 
label after you've encrypted them. Use <code>/dev/disk/by-id</code> instead if this is an issue for you.</p>


<h3>Step 3: Set up the backup</h3>

<p><small>I found <a href="http://www.mikerubel.org/computers/rsync_snapshots/">this article to be a 
very thorough explanation of backing stuff up using rsync</a>. It may be useful if you want the mucky
details.</small></p>

<ol>
<li><p>Perform the initial backup (this is all on one line): </p>
<div class="bodybox">
<code>rsync -av --exclude=/media --exclude=/media --exclude=/mnt / /mnt/backup/backup.0</code></div>
<p>The -av puts rsync into archive mode (which makes it mirror things like file permissions, copying 
symlinks as symlinks, etc), and makes it verbose so it tells you what's going on. The excludes keep it 
from trying to back up itself, my Ipod if I leave it plugged in overnight, or any CDs I have in the drive. 
The final two arguments are the source and destination - in this case the filesystem root <code>/</code> and 
the <code>backup.0</code> folder in <code>/mnt/backup</code>. That's it - you're all backed up.</li>

<li><p>Let's create the backup script that performs the incremental backups. Create this, change the 
<code>BACKUP_ROOT</code> and <code>BACKUP_SOURCE</code> lines to suit and stick it somewhere 
safe - <code>/root/bin/backupscript</code> for instance: </p>
<div class="bodybox">
<code>#!/bin/bash<br />
BACKUP_ROOT=/mnt/backup<br />
BACKUP_SOURCE=/<br />
<br />
rm -rf $BACKUP_ROOT/backup.3<br />
mv $BACKUP_ROOT/backup.2 $BACKUP_ROOT/backup.3<br />
mv $BACKUP_ROOT/backup.1 $BACKUP_ROOT/backup.2<br />
mv $BACKUP_ROOT/backup.0 $BACKUP_ROOT/backup.1<br />
# This next bit should all be on one line! <br />
rsync -ua --delete --exclude=/media --exclude=/mnt --link-dest=$BACKUP_ROOT/backup.1 $BACKUP_SOURCE $BACKUP_ROOT/backup.0</code></div>
<p>First of all this removes the oldest backup (4 days ago). Then it ages all the backups by one, before 
backing up the system. After it's run you'll find you've got 4 days worth of backups, but it only takes up a 
bit more space than one backup. How does that work? </p>
<p>The magic is in the --link-dest parameter. To explain this I'll have to get a bit abstract, so bear with me. 
When you see a list of files in a directory, you're not actually seeing the files - you're seeing a bunch of 
links to certain areas of a disk. You can have more than one link to the same area of disk, and it'll look to
your computer like you've got the same file in several places - but really the file's only stored once on the 
disk itself. When you remove the file you're actually removing a link, and it's only when there's no links
left that the computer will use the space for something else.</p>
<p>By way of analogy consider addresses for houses. You could post stuff to &quot;42 Prudence Avenue, The Village&quot;
and it'll arrive at your house - but you could also post stuff to &quot;The Old Windmill, The Village&quot; or
&quot;White Cottage, Prudence Avenue, The Village&quot; and it will all arrive. This doesn't mean you've got 
three houses, it's just three different ways of pointing to them. And it's only when all of them are 
removed from the council's list of ratepayers that they come and repossess your house.</p>
<p>Returning to the topic at hand: the --link-dest argument performs a little magic and makes links to files in 
the given directory if the file hasn't changed. So it looks like you've got 4 copies of a file - one in each day's 
backup - but really it's only stored once.</p>
</ol>


<h3>Step 4: Automate it</h3>

<ol>
<li><p>First up you need to edit root's crontab so that the backup runs nightly. su to root then run
<code>crontab -e</code> and add the following line:</p>
<div class="bodybox">
<code># m h  dom mon dow   command</br >
 0 3 * * *       /root/bin/backupscript</code> </div>
<p>This tells cron to run your backupscript every day at 3AM. Make sure your backup script is executable! 
<code>chmod +x /root/bin/backupscript</code></p></li>

<li><p>Now we need to make sure that the encrypted container is mapped at boot, and mounted automatically for us.
Add a line to <code>/etc/crypttab</code> so it looks something like this:</p>
<div class="bodybox">
<code># &lt;target name&gt; &lt;source device&gt;         &lt;key file&gt;      &lt;options&gt;<br />
crypto_backup   /dev/disk/by-id/usb-WD_5000AAJS_Externa_123-part1    none    luks</code></div>

<p>This tells the system that the <code>/dev/disk/by-id/usb-WDetc</code> device should be mapped to 
<code>/dev/mapper/crypto_backup</code> on startup as a LUKS container. As no key file is specified it will
prompt for a password on bootup.</p></li>

<li><p>Now we've told the system how to map the device we can just add it to <code>/etc/fstab</code> like anything
else: </p>
<div class="bodybox">
<code># &lt;file system&gt; &lt;mount point&gt;   &lt;type&gt;  &lt;options&gt;       &lt;dump&gt;  &lt;pass&gt;<br />
/dev/mapper/crypto_backup       /mnt/backup     ext3    defaults 0      2</code></div></li>
</ol>


<h3>Limitations</h3>

<ul>
<li><strong>If you're using this to backup a database (eg. MySQL) you are entering a world of pain</strong>. 
MySQL generally stores its databases in a whole bunch of files. To take a snapshot of a database from the 
filesystem you'd have to stop the database entirely, copy all the files, then start it again - and that's 
not a supported way of doing things. Otherwise you're just crossing your fingers that nothing changes the 
database while you're trying to back it up (either a user of the database like a website or a program, or 
MySQL itself deciding now's a good time to reindex or whatever). Rsync will make sure that your files are 
not changed during the backup, but it doesn't do it for an entire directory. You're better scheduling a 
regular backup using <code>mysql_dump</code> or similar to somewhere on your hard disk, and letting those 
backups get copied by rsync instead.</li>
<li><strong>You are not totally safe</strong>. If this is your home computer this is a backup regime that 
you are justified in feeling smug about. If you're an investment bank or a medical facility you should be 
panicking. What if there's a fire? A flood? An explosion? What happens if your backup is scheduled at 
3AM but your hard disk dies at 2:55? A home user can cope with this level of risk, but anyone whose data
really truly matters (ie. people will lose lots of money/limbs if data is lost) should have a proper 
disaster recovery plan, offsite backups, replication, etc.</li>
<li><strong>You're trusting people not to destroy your backups</strong>. Generally the setup above will 
let anyone read or write the backups on the system if they have permissions to do so. Instead of setting the 
mountpoint to 755, you may want to run <code>chmod 700 /mnt/backup</code>. This means that only root 
can read or write the backup - but this may not be convenient. 
<a href="http://www.mikerubel.org/computers/rsync_snapshots/#ReadOnly">There is a solution</a> but I decided
it was overkill for my needs - I'm the only one using my PC and I trust myself not to destroy it all.</li>
<li><strong>This is not a versioning system</strong>. The snapshots let you go back a short way in time 
but think of this as a convenience thing (&quot;Oh no! I really didn't want to delete that document two 
days ago!&quot;) rather than as a way of applying versioning. Use Subversion or CVS for this instead.</li>
</ul>]]></description><guid isPermaLink="true">http://alexpounds.com/blog/2007/08/22/howto-automated-encrypted-backups-on-linux</guid><pubDate>Wed, 22 Aug 2007 16:00:00 -0700</pubDate></item><item><title>Smokers</title><link>http://alexpounds.com/blog/2006/07/18/smokers</link><description><![CDATA[<p>I didn't mean to have a go at smokers. I mean, it's easy these days, isn't
it? They're getting marginalised by the law, by public opinion, and their lungs
aren't too happy with them either. They're easy prey and I didn't want to be
that obvious.</p>

<p>That said this was always going to read as an anti-smoker rant. If you're
going to give someone a kicking you might as well use the hob nailed boots.</p>

<hr />

<p>I tell you, the sooner we ban smokers the better. Those of a pedantic bent
might suggest we ban smok<em>ing</em> rather than smok<em>ers</em> but I'm
taking the hard line here. Frankly I am less concerned about the risks of
second-hand smoke and the burden on the health service than I am about the
mindless inconsiderate nature of some of the people who smoke.</p>

<p>But perhaps it's not their fault. Maybe they're not inconsiderate - they may
just be retarded. You've got to be a few IQ points below par to willingly
suck down that chemical-laden, tar-ridden smoke many times a day. When their own
filthy habits start intruding into my life it may not be because they don't
care, it's because they don't realise. Smoking clogs the arteries and the lungs
- the reduction of blood flow to the brain is manifesting itself, that's
  all.</p>

<p>I have recently started working in central London. The thought process behind
moving to our capital was nothing more complicated than &quot;I have no idea
what I want to do. I may as well move to London where there's plenty of stuff
going on to keep me distracted.&quot; City life pulls me in two directions - I
enjoy the sheer quantity of diversions and 24 hour services but I also miss the
lush, verdant outdoors. Another pertinent side of me is that I treasure my lunch
hours. I will take a full hour to sit down, eat, do the crossword, and read the
paper. It is one of the anchor points of my day - possibly the only one. These
seemingly unrelated factors combine to give me my lunchtime pursuit - sitting in
one of London's many parks and eating.</p>

<p>Many other people have the same idea. On overcast days the parks are speckled
with people, but when it's busy the places are rammed. That's OK - other people
are allowed to like the outdoors as well. We can all sit in the park together
and enjoy the trees and the grass, the slightly fresher air, and pretend for a
brief slice of time that we're not surrounded by pollution and filth.</p>

<p>Only we can't pretend that, can we? The grass is covered in cigarette butts.
London's cleaners do a sterling job keeping the pavement detritus at bay, but
you can't brush grass clean. Even if we ignore your discarded dog-ends and
settle on the grass we are faced with a larger problem. You see, there is a
reason there are butts everywhere. There are smokers in the park too.</p>

<p>Like the lumberjack who works outside because he loves the outdoors, the
smokers in the park think nothing of sparking up when they are a few short feet
from you. They'll sit there happily puffing away while we try to eat our lunch.
I came outside to enjoy what little fresh air I can find, not have it removed by
some blonde bint in advertising who talks loudly about when she should text
the man she danced with last weekend. This also puts me off my lunch but,
admittedly, it may not be relevant.</p>

<p>I'm not bothered about the health issues. I'm not entirely convinced about
banning smoking in pubs - it seems a mite hypocritical to protect someone's
lungs while encouraging them to poison their livers. You go to a bar, you expect
the smoke. The stinking hair and clothes along with the dry throat are the cost
you pay for socialising in such locations. I don't expect that from my lunch
break.</p>

<p>And how about the degenerate swines who smoke while walking along the street?
Double points for having a mobile phone clamped to your ear and the cigarette in
that hand so it's not even like you're feeding your nicotine habit. As you walk
along and belch out clouds of smoke the poor sods behind you get it in the face
every single time. You may think you're clever but one day I'm going to have
your ankles. Then we'll see who's the smart one.</p>

<p>Australia has a campaign about cigarette butts. It's based around the slogans
&quot;Bin yer butts&quot; and &quot;Don't be a tosser&quot;. We need more of
that type of wordplay in this country. Quality puns and insults for
transgressors. The closest we come to this right now is the pleasure of telling
people without seatbelts to belt up.</p>

<p>I don't think there's a solution beyond ghettoising smokers even further.
Don't send them outside, where they congregate around doorways like mini
smokestacks in their own cliquey industrial revolutions. Stick them in a sealed
room in the basement with an air vent. No matter how good the filter is the air
will be stale and the walls will yellow and peel. Better yet, put them in a
vacuum. They're used to breathing problems and (thanks to the fire triangle)
they won't be able to light up at all.</p>]]></description><guid isPermaLink="true">http://alexpounds.com/blog/2006/07/18/smokers</guid><pubDate>Tue, 18 Jul 2006 16:00:00 -0700</pubDate></item><item><title>I went to an Aussie Rules match once</title><link>http://alexpounds.com/blog/2006/07/14/i-went-to-an-aussie-rules-match-once</link><description><![CDATA[<p>I saw Adelaide vs. Port Adelaide at the AFL semi-final last year. It was a
bit of a last-minute thing. This weird German girl came up to me on the street,
and asked if I was busy that night, as she had a spare ticket. &quot;Try
something new!&quot; I thought. I don't get asked out on the street that often
and one of the things I'd been trying on my jaunt around Australia was to do
new things, things I don't do at home like go to sports matches with people off
the street. </p>

<p>God, I wish I'd listened to my inner voice and run for the hills. </p>

<p>So, <a href="http://ethicsgirls.com/88/img014.jpeg.html"><strong>C</strong>razy
<strong>G</strong>erman <strong>C</strong>hick</a> goes home to change and we
agree to meet later. We meet, and warning sign #2 (#1 was her asking people on
the street to go to a sports match) appears: it's the evening, and we're
strictly non-participatory, and she's wearing lycra sports gear. Cycling shorts
and a top, along with some ridiculous fingerless gloves. It's Adelaide in
September so it's not the warmest of evenings - I was chilly. I look past this
and we go to get the bus. Adelaide do this thing where you buy a day travelpass
and that lets you use all public transport. I have one and so does she - we
board the bus without incident. We make small talk for a while, until she
notices some other people going to the game. CGC starts talking to them and
asks for some of their alcohol. They laugh but she persists; eventually they
give her the dregs of one of their cans. (Asking for alcohol from complete
strangers: #3). </p>

<p>We get to the grounds and she chooses this moment to ask for money for the
ticket. I point out she invited me because she had a ticket going to waste; she
could have sold it to someone at the ground if she'd just wanted to get the
cover price back. We haggle and settle for a few bucks off the cover price and
I'd buy her a beer. CGC says OK, but tries to sell it to some random bystanders
anyway. </p>

<p>We get into the game and find our seats. Although she said she was a fan of
the AFL she doesn't know the rules. This doesn't bother her but it bothers me -
I like to know what I'm watching. I start talking to the people next to me and
get them to explain the rules. Then the game starts. CGC's true nutbar quality
starts to shine. </p>

<p>&quot;Go the Crows!&quot; she bellows. Completely at random, throughout the
game. People around her were giving her that &quot;Is this person dangerous or
merely weird?&quot; look. When people at a football match are looking at you
for making too much noise... oh my (#4). At one point she started shouting for
a team that wasn't even playing. I pointed this out to CGC. &quot;Well, they
must play sometime,&quot; she replied (#5). Then she starts cheering for animal
rights (#6... I'm not going to keep track any more, we're beyond warning signs
now). I'm all for them but I don't see where they enter into a sports match.
</p>

<p>But that wasn't the worst part. At least during those moments she was
watching the game. See, CGC has decided that I'm a hottie, and she wants a
piece. Oh, how she wants a piece. She keeps playing with my hair and telling me
&quot;You look cute.&quot; At one point she even climbs onto my lap. No thank
you! Eventually her pestilent advances get far too much and I fabricate a
girlfriend for myself.</p>

<p>&quot;You're very cute.&quot;<br />
&quot;Yeah, my girlfriend thinks so too.&quot;<br />
&quot;Aww, You have a girlfriend?&quot;<br />
&quot;Yeah, I do.&quot;<br />
&quot;Are you... committed?&quot;<br />
&quot;Oh, very much so.&quot; </p>

<p>This does not deter her, and I must fend off advances for the entire match.
I figure &quot;In for a penny in for a pound,&quot; and start fabricating an
entire backstory for myself. I'm a 26 year old Scorpio from Birmingham with a
job, and so on. I made damn sure she didn't get my surname.</p>

<p>CGC wanders off intermittently, presumably to harrass other members of the
crowd, and I breathe a sigh of relief and apologise to the people around me.
&quot;She's not with you?&quot; &quot;God no. I'm an unwilling bystander.&quot;
It's a cold night and I'm chilly. I have a jumper, but it's not doing a vast
amount of good. She tries to borrow it occasionally and I explain that no,
sorry, it's mine and I'm cold. &quot;Not very gentlemanly,&quot; she says.
&quot;Well, I'm no gentleman, and you're the one who went to change and came
back in tiny lycra.&quot; </p>

<p>Eventually the match ends. Port Adelaide got crushed - the game had some
entertaining moments but they were very much outclassed. The Adelaide fans are
ecstatic; the Port Adelaide fans downcast. We leave the stadium and go to queue
up for the bus back to the town centre. CGC starts talking to random people in
the queue again; she talks to a morose-looking man with a painted face and head
to toe in blue about how much she enjoyed the game and what a good match it
was. Similar foot-in-mouth incidents go on for the whole queue but for the most
part everything goes fine. Nobody punches her and most people are taking her
inane comments in good humour. She panics about not getting a bus and I explain
that it's a football match - people will have thought of this. This bus is full
but there will be another along in 3 minutes that will be empty, and so on
until the stadium is deserted. </p>

<p>We get towards the head of the queue and it's obvious we're going to get
onto the next bus. It draws up and people start getting on. It's about 80% full
and there are 3 people in front of us. Despite having queued quite patiently up
until this point CGC walks past them all, up to the end of the bus without
sticking her ticket in the machine, and sits down. A situation is brewing. In
the UK if you did this a couple of bag ladies would tut; Australians are not
reserved. Why would she ever do this, anyway? She has a valid ticket! She would
have got on! The entire bus is now pissed off at her. I wait like a good little
Brit and get on, validate my ticket, and explain to the bus driver that she's
kind of with me and I'll sort it out. </p>

<p>I go up to the back of the bus where an angry Aussie is in her face. I
explain that she does have a valid ticket, and she should go and validate it.
Yes, you're on the bus, but there are a lot of people on the bus who hate you
and think you're not paying, so for God's sake go and put your ticket in the
machine. No buts, go and do it now. She acquiesces and does so; the hostility
reduces a little. </p>

<p>She starts to walk back up the bus towards me. In front of her is a
heavy-set, middle-aged woman. She's another Port Adelaide fan. Not only is she
in blue, but she's got some of those chunky radio headphones on and a big furry
<a href="http://www.windycitynovelties.com/EPaysoft/cart/product.asp?ITEM_ID=6890">jester
hat</a>. CGC thinks it would be a good idea to steal the hat - she reaches out
and grabs the hat, but gets the headphones too. The woman's just got on the bus
so has no idea that CGC is a live one, and she was grabbed from behind so she's
got no idea what's going on. The hostility on the bus is back. </p>

<p>&quot;What the bloody hell do you think you're doing!&quot; she bellows at
her. CGC looks clueless - what, you're angry? Why? I roll my eyes and jump in
again to defuse things, telling myself I only have 30 minutes more of this at
most. I tell her to give the hat back, and she does. I apologise for her
behaviour but the lady is much smarter than she looks - she refuses to spread
her anger around. &quot;It's not you I'm bothered about, it's her!&quot; She
tells CGC that she shouldn't be allowed out, and I tell Mrs PA that I agree.
</p>

<p>The rest of the bus ride back is uneventful apart from the entire bus
staring at her. She's still going on about my girlfriend, and trying to coax me
off with her. There's one more incident that sticks in my mind, when she makes
a sudden inocuous move and I flinch bigtime. I was that paranoid about what she
could do. I lie: two more incidents. She starts eating her bus ticket. God
knows why, as she needs it to get home. I try to dissuade her, but it's not my
problem so I don't intervene when she carries on. </p>

<p>We get off the bus at the central station and I take the picture I linked to
above. I took it for &quot;Yes officer, that's the woman,&quot; purposes, as
well as to prove to people that she really existed. She tries once more to talk
me into coming home with her and to hug me, I rebuff her, and dash off into the
station before she can gather her wits to follow me.</p>
<p class="originallypublished">Originally published on <a href="http://www.kuro5hin.org/">Kuro5hin</a>.</p>]]></description><guid isPermaLink="true">http://alexpounds.com/blog/2006/07/14/i-went-to-an-aussie-rules-match-once</guid><pubDate>Fri, 14 Jul 2006 16:00:00 -0700</pubDate></item><item><title>Camomile tea</title><link>http://alexpounds.com/blog/2006/07/09/camomile-tea</link><description><![CDATA[<p>I have never liked your standard tea. I don't even know what it should be
called; I am not a tea aficionado. My mother drinks it a lot - as a middle-aged
British housewife she drank it a lot as I was growing up. I found it a very
bland drink and that offended me. </p>

<p>When I was around 14 I discovered the wonders of coffee. That was an adult, a
metropolitan drink! The caffeine hit and the social cachet appealed to my
adolescent mind and with typical pretentiousness I would bring a flask of it to
school with me. These days I no longer drink it.</p>

<p>No, these days I like my tea. Not your PG tips and your Tetley's - these are
still a bore. Consider it my own rebellion against the British side of myself. I
like the herbal teas and the fruit teas. My word, they're wonderful. This
summer I went travelling around Australia and ended up staying for two weeks
with a young lady and her father. They got fresh camomile and brewed it up in a
clear teapot, straining the flowers out when a cup is poured. I loved it.
There's no teabag that comes close to it that I have found. Fortunately,
mediocre camomile is still pretty good. </p>

<p>There are other teas I like. My love affair with fruit teas goes back a couple
of years to when I was heavily involved with the student union. The University
catering service would leave their individually wrapped fruit teabags lying
around in meeting rooms after their meetings and I would have meetings
afterwards. Well there was no point letting it go to waste, was there? A broad
range of fruit teas were there for the taking. The other day I happened across
a similar abandoned meeting refreshments table, and my box of fruit tea is now
nicely augmented. I particularly recommend anything with a citrus fruit, though
they're all good. </p>

<p>A new favourite of mine is jasmine tea. I had a cup of this in a pub recently
(I know, I know. What kind of prat drinks tea in a pub? Pleased to meet you)
and it was amazing. I went to my local Chinese grocery store and bought a cheap
box. It's not up to the standard of the pub stuff, so more experimentation is
needed and possible cross-examination of barmaids. Its deficiencies in taste
are made up for somewhat through the aesthetic of this particular brand - that
peculiar exoticism of something predominantly foreign. What's on the packet in
English is translated with typical Chinese aplomb. It's declared as a product
of the Fujian Tea Import &amp; Export Co., Ltd. and each individual bag
describes itself as <strong>Aromatic Flavour Clear Infusion Homely Refresher Ideal
Gift. </strong></p>

<p>At present I am not buying any new tea. I have boxes and boxes of the stuff -
well over a hundred teabags in my cupboard right now. I'm moving out in a
little under a month, and am trying to get through at least 3 cups a day (I am
failing) as it feels faintly ridiculous to move teabags with me. My cache was
not helped thanks to an overly-helpful supermarket. I had ordered 40 organic
camomile teabags, as they had a far better taste than the non-organic kind. Of
course they were out of stock and I got 40 non-organic ones. So now I've got at
least 2 months of mediocre camomile to drink before I can get back to the nice
stuff. Drat.</p>
<p class="originallypublished">Originally published on <a href="http://www.kuro5hin.org/">Kuro5hin</a>.</p>]]></description><guid isPermaLink="true">http://alexpounds.com/blog/2006/07/09/camomile-tea</guid><pubDate>Sun, 09 Jul 2006 16:00:00 -0700</pubDate></item><item><title>Australia!</title><link>http://alexpounds.com/blog/2005/03/28/australia</link><description><![CDATA[<p>If you have not spoken to me over the past month - and with 6 billion people
on the planet, that will be most of you - you will be unaware that I have
decided to go to Australia. This is a bold move for a computer scientist, but
before you start picturing me as a cross between Indiana Jones and Paul Hogan
let me explain that this is a decision of opportunity. My mother and brother are
heading off to Oz this summer, and offered to pay the airfare for me to go too.
Being somewhat hesitant to spend 18 hours in a small metal box with these
members of my immediate family, the sweetener of doing what I wanted out there
was proffered. After asking several people what they thought I should do, and
getting several responses along the lines of &quot;Don't be a twat - embrace
this opportunity,&quot; I duly accepted my mother's kind offer.</p>

<p>Thus I shall soon be exploring the land down under. Like most non-Aussies, I
had very little idea what's actually there. I could tell you the names of some
Australian cities and that the capital is Canberra (reputed to be immensely
boring). As for tourist attractions, careful thought gave me four: the Sydney
Opera House, Sydney Harbour Bridge, Ayer's Rock, and surfing. Beyond that, I was
ignorant.</p>

<p>A little research soon showed me that Australia is a dangerous place. In
fact, I am not convinced I'll make it out alive. The uninitiated here might
presume that I'm talking about sweltering heat and psychopaths murdering
backpackers, but I think it would be missing the point to focus on these. It
would be like James Bond worrying about tetanus when the buzzsaw is about to
bisect him. Given its habit of rising and setting on a regular basis, the sun
can be anticipated and worked around. Likewise, everywhere has its lunatics and
as long as you avoid places where they congregate - France, for example - you're
going to be safe. No, it turns out that every plant and animal on that continent
is out to get you.</p>

<p>You have the obvious examples, of course. The dangers of sharks and
crocodiles are well-known, thanks to Hollywood and confectionery. Most people
have a passing aquaintance with the kangaroo, which has a habit of bounding
across roads and getting hit by cars much to the detriment of all concerned. You
also have the wombat, a kind of armoured teddy bear with similar habits but the
infuriating propensity to walk away unscathed from such collisions while your car
gently smoulders and your insurance premiums skyrocket. There are snakes and
spiders, too - given that the arachnid's diet is small insects, providing them
with enough venom to drop a rhino seems a little OTT. Let me regale you with a
couple of tales about lesser-known risks:</p>

<p>First up, we have a critter known as the box jellyfish. These live around the
northern coastlines of Australia, and are transparent - as are their 130-foot
long tentacles. If you get stung by one of these critters and are lucky, you
will have a red mark where you were stung for the rest of your life. If you're
unlucky, you die or go insane. One chap who got stung was screaming even while
sedated and unconcious. It's safe to say that these bastards hurt.<br />
Next we have the Gympie-Gympie tree. This has big, heart-shaped leaves with lots
of tiny strands on them similar to fibreglass. If you brush against one of these
leaves, they break off and get under your skin where they excrete a rather toxic
substance. Standard hospital policy is to sedate victims for <em>four days</em>
to get them over the worst of it, and it takes 6 months for the fibres to work
their way out of the body. You can feel them for those 6 months too.</p>

<p>Please remember that this is a country where people voluntarily settle.
People decide that a life of checking the toilet for dunny spiders before
evacuating their bowels and shaking out shoes is for them. There are risks in
Australia that no-one even knows about - it's such a vast, unexplored country
that no-one really knows what's in there. It is liberally spattered with small,
clandestine ways to cause you immense pain and probable death. I am likely to
spend my trip with an unhealthy dose of paranoia and it's possible I will spend
all 7 weeks wimpering in the airport waiting for a flight home.</p>

<hr />

<p>There is, however, a surprising amount to do in Australia. From what I've
read, it does seem a fascinating country. For a start, lots and lots of things
about it are unexplained. No-one really knows where the Aborigines came from.
They are 60,000 years old (3 times as old as other homo sapiens). Australia has
always been an island, and has no indigenous apes from which the Aborigines
could evolve. The implication is clear - 60,000 years ago there was a seafaring
civilisation while the rest of us plebs were trying to figure out how to bang
rocks together. There are 12 foot earthworms, trees 18 metres in diameter, and
random evolutionary oddities like the platypus. And no-one has the foggiest
idea just why somewhere as hostile as Australia would be teeming with such
things. It's as if it were God's scrapbook.</p>

<p>Aside from the fact that I'm going to die out there, I am looking forward to
experiencing Australian life. I hear it's a very friendly country, and I plan
to spend some five weeks backpacking around. The Australian attitude to
Aborigines is somewhat odd, it seems - from what I've read they are basically
ignored.  Animals that would cause me to wet myself in fear are a fact of life
over there.  There are huge distances between places as well as a massive
cultural diversity between different cities and states, and ever since the
White Australia policy went away in the 70s the ethnic diversity has exploded
too. As a teetotal vegan I expect to be regarded with some confusion - drinking
seems integral to the antipodean culture, as well as a fondness for grilled
meat. I'm hoping that the Aussies will see me as a mysterious foreign stranger,
as opposed to yet another pasty-white Brit backpacker. Whether I am a sex
symbol or a sex object (when I ask people for sex, they object) to the .au
hotties remains to be seen.</p>

<p>In short, it should be rather interesting.</p>]]></description><guid isPermaLink="true">http://alexpounds.com/blog/2005/03/28/australia</guid><pubDate>Mon, 28 Mar 2005 15:00:00 -0800</pubDate></item></channel></rss>
