Saturday, December 22, 2007

O for Oxygen, 0 for Zero

[reading: Bjørn Lomborg, "Cool It: The Skeptical Environmentalist's Guide to Global Warming"; recently Charles Stross, "The Jennifer Morgue"]

Shocking. The reporting of science in the media has always been pretty rubbish, but the BBC News website can't even spell CO2 correctly.

I'd let them off not doing the subscript correctly, even though it's not exactly difficult to do <sub>2</sub> or &#x2082; for '₂' (U+2082).

But not being able to spell "O" correctly is just impressively awful. And it's endemic.

Thursday, November 01, 2007

iPod Classic Verdict (continued)

Now that I've upgraded my laptop, I've shifted the iPod back into Mac mode which means I can try out a couple more features.


The calendar only seems to have a month view (which is too small; there's just a little flag to indicate the presence of an entry) and a day view (which is absurdly abbreviated—it only shows the entry titles, not any details, so if there's only a couple of appointments the screen is mostly blank). The day view also doesn't show the day of the week; this wouldn't be so much of a problem, except the whole app is very sluggish—so it's easy to over-scroll while waiting for it to respond, and then be displaying the wrong day.

Of course, I may be missing all sorts of better features, but as there's no manual (even online) how would I know?


The contacts list is a bit more responsive that the calendar, but not by much. It also loses all of the categorization that the Mac OS X AddressBook application has, which makes things a bit more awkward.

I guess with both Calendar and Contacts it's just about functional if you're desperate to get at the relevant information and away from your main machine, but that's as far as it goes.

Disk mode

Now that I'm in Mac mode, this Just Works.

Monday, October 22, 2007

Debugger Translation

After having to use three different debuggers in two days, I got around to producing a debugger translation table for future reference.

Thursday, October 18, 2007


[reading: Barbara Hambly, "Renfield"]

Note to self: when replacing an inner tube because of a puncture, check whether the outer tyre still has whatever caused the puncture in the first place embedded.

(Other note to self: don't buy replacement inner tubes for pram tyres from Mothercare—they're five times more expensive than the ones from a bicycle shop (or eBay), plus they take weeks to arrive.)

Saturday, October 13, 2007

End of Another Era

[reading: George R. R. Martin, "Armageddon Rag"; recently Christine Denniston, "The Meaning of Tango"]

End of another era: I finally got around to selling my darkroom gear. A shame in some ways—particularly with several hundred pounds worth of gear going for £30—but at least it's going to someone who will put it to use. (I offered the enlarger to a not-for-profit photography centre but they admitted that they already had four spare enlargers.)

Previously, previously.

Friday, October 05, 2007

iPod Classic Verdict (so far)

[reading: Terry Pratchett, "Making Money"]

By dint of transferring many gigabytes of MP3 files from my Powerbook to my PC, I managed to get my new iPod working. Well, sort of.

Compared to my old 30GB second-generation iPod the extra new features of the latest model are:

  • Photo display
  • Video playing
  • Lyrics display
  • Cover flow
  • Much bigger disk
Let's take these one by one.

Photo Display

This mostly works, but doesn't seem to allow for much in the way of navigation or organization. Point iTunes at a directory and it will import all of the image files below that folder, but only the first level of subfolders gets reflected in the iPod organization. Given that I've got lots of photographs which are carefully arranged into a hierarchical set of folders, this destroys most of the organization.

There's a few other oddities. Firstly, when I select a particular picture on the iPod, sometimes I get a black screen; I have to press select again to actually see the picture. Secondly, the iPod display helpfully shows a date as you're navigating around the pictures, but this seems to be the date that the photo was transferred to the iPod, not the file date or the EXIF date. Finally, it's worth knowing that the iTunes import process creates an "iPod Photo Cache" directory under the place it imported from; for my data, this was about 15% of the size of the originals (and so is an issue if disk space is short).

So the net of all of this is that I won't be putting my photos onto the iPod (even after I get it talking to the Mac).

Video Playing

Drag an .MPG file into iTunes. Nothing happens. Drag a .WMV file into iTunes. Nothing happens. Drag a .MOV file into iTunes. Aha, it accepts it and will play it inside iTunes. Try to sync the movie to the iPod. No luck, just an error message saying the video is incompatible with the iPod. Hunt around in the manual to find out what's needed. Pause to hunt around for the manual, because the iPod didn't come with one. Eventually find out how to get iTunes to convert the video (right-click, Convert Selection for iPod). Wait a long time for it to convert. Look at the Movies tab in iTunes and realize there are now two identically named movie files, and there's no indication of which one is the original and which is the iPod-converted one. Run iPod sync and finally get a video running on the iPod.

Eventually, search the web and discover Videora.

To be fair, this is just a reflection in the small of the larger problem of video files. There are several different file formats (aka containers), but that's only the start of the problem—having different container file formats is like having different incompatible types of envelope. Inside the envelope, the contents can then be in many many different incompatible 'languages'—the codecs.

So if you've got a QuickTime format video file (, then Window Media Player certainly won't play it, but QuickTime may not play it either, depending on what codecs are installed. The only island of sanity in all of this is VLC, which has a good stab at playing almost everything. (Plus it's free-as-in-beer and free-as-in-speech.)

So I'm not convinced that using the iPod to watch videos on the move is worth the (considerable) effort involved.

Lyrics Display

I added lyrics to a song in iTunes, then synced and tried to view them on the iPod. "Lyrics detected, but unable to retrieve."

So it appears to be pointless to attempt to use the iPod to show lyrics.

Cover Flow

Shiny idea in theory; in practice it often can't keep up with even a slow scroll and just displays a placeholder for the album cover.

So I don't think I'll be using Cover Flow at all; I'll stick to plain text listings.

Much Bigger Disk

The first disappointment with buying a 160GB iPod is when you initially turn it on and it tells you that it has 150GB free. Hmm, where did the extra 10 GB go?

That's a comparatively minor disappointment compared to the discovery that turning on disk mode for an iPod in Windows does not mean that the iPod actually acts as a USB hard disk. That's right: if your iPod is set up in Windows mode, you can't read the disk on a Mac.

So the big disk's usefulness is severely limited. I can get all my MP3 files on it (unlike the old 30GB version), but I'm then left with 100GB that's of little use.

Other Impressions

When I bought my first iPod, I was impressed from the get-go. The box it came in was a feat of design; it came with a remote control, two different sort of cables, a docking station and a case.

Different kettle of herring this time around: bare bones for everything, from the packaging to the manual (er, there isn't one) to the cabling (FireWire is no longer supported or included, no docking station).


If you primarily want to play MP3s, the new iPod is fine. But don't be seduced by the suggestion that it does anything else.

Thursday, September 27, 2007


Today's disconcerting experience at work: discovering a hole in my memory.

I've spent a bunch of time over the last day or two trying to get up to speed on a subtle and complex area of networking protocols. The relevant RFCs are cryptic at best; the text covering a variety of complicated deployments is compressed to a mere couple of pages.

Eventually it occurred to me that there might be some internal company documents about the area, and I went a-hunting. A few searches later I'd found a much more helpful 30 page internal document, with detailed explanation, examples, multiple colours, diagrams, the whole works—very useful and much clearer than the standards documents.

So it was a bit of a surprise when I got to the back of the document and found the revision history page: I wrote the whole thing. It was only four years ago and I don't remember anything about it.

Tuesday, September 25, 2007


[reading: Michael Spivak, "Calculus"]

Bugger. It turns out that the Apple rep who told me on the phone that the new iPod Classic would work with Mac OS X 10.3.9 was lying.


I don't really want to have to buy Mac OS X 10.4. I particularly don't want to have to buy 10.4 a mere month before 10.5 comes out. It's especially annoying as I spent a while cleaning up my music library and getting album art for everything in anticipation of the Arrival of the New Toy.

So I guess I've got an expensive paperweight for the next month or two (until 10.5 comes out).

Wednesday, September 19, 2007

Monday, August 27, 2007

This Old House

[reading: Neal Asher, "The Engineer Reconditioned"]

This is slightly disconcerting to look at; the price is also rather a shock.

Monday, August 20, 2007


[reading: Matthew Woodring Stover, "Blade of Tyshalle"; recently John Scalzi, "The Ghost Brigades"]

Well, I'm back.

In twenty years (and ten days) I've travelled approximately 5 metres.

(Also, there's a vac student four desks away who wasn't even born when I first started…)

Friday, August 10, 2007

It Was Twenty Years Ago Today

"You hear that Mr. Anderson? That is the sound of inevitability."


So it's finally time to go back to full-time paid work, which will mean even less Copious Free Time than recently. Having decided against a move to Zurich, I'll shortly be heading back to the nice place where I've worked for a large fraction of my career.

As before, a checkpoint (827 days).

Sunday, August 05, 2007


[reading: Avner Ash & Robert Gross, "Fearless Symmetry: Exposing the Hidden Patterns of Numbers"]

So it seems babies are isomorphic to vampires:

Thursday, August 02, 2007

Use the Source, Luke

[reading: Susanna Clarke, "The Ladies of Grace Adieu"]

Bit of tidying up today—I added the source code for various of my trivial bits of code to the website

plus I added a link to my thesis (Homoclinic Bifurcations in Partial Differential Equations (PDF)) and put my beginner's guide to linkers under the GFDL. Not that I expect anyone to have much use for any of it, but it's there for the Magick of Google to find, just in case.

Friday, July 27, 2007


[reading: Alan Cooper, Robert Reimann & David Cronin, "About Face: The Essentials of Interaction Design"]

So I'm slowly overcoming my Luddite tendencies and moving into the Century of the Fruitbat: I've just put up my first eBay auction. If it works out OK, I'll probably do some more—I don't think I'm ever likely to use my darkroom stuff again.

Saturday, July 07, 2007

Cool Birth Date

[reading: George R.R. Martin, "Dreamsongs: A RRetrospective"; recently Matthew Woodring Stover, "Heroes Die", Warren Ellis & Ben Templesmith, "Fell: Feral City", Christopher Brookmyre, "A Tale Etched in Blood and Hard Black Pencil"]

Daniel Henry (formerly known as 'sproglet') made an appearance at 11:24am.

Daniel Henry

3.58kg (7lb 14oz in old money), all doing well.

Friday, June 29, 2007


[reading: Christopher Brookmyre, "The Sacred Art of Stealing"]

I've finally found the answer to a question I've wondered about for six months now: which is a more accurate estimator of EDD, LMP or ultrasound scan (BPD).

Of course, the answer doesn't matter that much—things happen when they happen. But I was a bit bemused that none of the medical folk I asked knew the answer, and more bemused that most of them didn't even understand the question.

Looks like the answer is: BPD.

Wednesday, June 27, 2007


[reading: R. Stephen Berry, Stuart A. Rice & John Ross, "Physical Chemistry"; recently Christopher Brookmyre, "A Big Boy Did It And Ran Away", Tanya Huff, "Smoke and Ashes", Frankie Manning & Cynthia Millman, "Frankie Manning: Ambassador of Lindy Hop", Christopher Brookmyre, "Boiling a Frog"]

Here's a quick reminder of the fallibility of the net. Given the current situation, I was thinking about the voiceover on that Guinness advert with the surfer:

He waits; that's what he does.
And I tell you what: tick followed tock followed tick followed tock followed tick…
Ahab says, 'I don't care who you are, here's to your dream.'
'Here's to you, Ahab'.
And the fat drummer hit the beat with all his heart.
Here's to waiting.

I noticed that the h2g2 entry for the advert (which is the top search result for 'tick follows tock') claims that "the voiceover comprises of passages from Moby Dick by Herman Melville".

This is simply wrong. What's more, it's trivial to confirm that it's simply wrong: the full text of the book is available* online, and not a single line from the advert is in the book.

(To be fair, there are less prominent pages that are more accurate: "Many incorrectly attribute the text to 'Moby Dick' because of the 'Here's to you, Ahab' line", "Moby Dick-esque with a bit of Dylan Thomas".)

* Given that Melville died in 1891, even the most rabid copyright extensions haven't clawed that far back. Yet.

Monday, June 11, 2007


So here's today's random question, apropos of, er, nothing. What's the performance of the following incredibly-poor algorithm for randomly permuting a list of numbers?

def bogo_permute(in_list):
    N = len(in_list)
    out_list = []
    # Keep track of whether we have dealt with each element of the input list
    seen = [False] * N
    for iteration in range(N):
        while True:
            which = randrange(N)
            if not seen[which]:
                seen[which] = True
    return out_list

There are N selections needed for the output list. The first time through, the randomly selected entry from the input list will definitely not have been processed already, so it can be transferred across to the output list. The second time through, there's a chance that the random selection process will select the same entry again; for later iterations, this chance of selecting something that has already been selected will get higher and higher. So, on average, how many of these repeated picks are needed?

Given a coin that comes up heads with probability p (and so tails with probability q=1-p), what's the average number of coin tosses needed before the first heads comes up?

As an example, imagine that the first head turns up on the fourth toss. This means that the sequence of tosses is TTTH. The probability of this sequence of coin tosses is then q3p = (1-p)3p. This is easy to generalize:

Number of TossesSequenceProbability

We want the average number of tosses needed to get a head, also known as the expected value. This is a sum of the each possible value multiplied by the probability of that value occurring. In other words, the average number of tosses needed is:

(1*(probability of heads on first toss) + 2*(probability of first heads on second toss) + 3*(probability of heads on third toss) + …)

Put into maths, this means that the average number is an infinite sum: Σm=1 m (qm-1p). From a trusty binomial expansion, the Σm=1 m qm-1 part pops out as (1-q)-2, and since q=1-p this means that the whole thing simplifies down to just 1/p.

(This seems reasonable: for a fair coin, it takes an average of 2 throws to get a head; for a coin that only comes up heads one time in a hundred, it takes an average of a hundred throws.)

So back to the original problem. For the i-th selection (with i running from 1 to N), the chance of picking an array entry that is still there is p=(N+1-i)/N, and so the average number of picks needed is N/(N+1-i). The first selection needs N/N = 1 attempt, the second selection needs N/(N-1) attempts, the third selection needs N/(N-2) attempts, …, the last selection needs N/1 = N attempts (on average).

Taken together, this means that the average number of random picks for the whole process is Σi=1N N/(N+1-i). Rearranging (with j=N+1-i) this is the same as N Σj=1N1/j, which includes a partial sum of the harmonic series, known as a harmonic number HN. In the large N limit, the harmonic numbers tend to HN ≈ ln(N) + γ (where γ is a constant), and so the asymptotic behaviour of the algorithm is O(N ln(N)).

So it's bad, but not quite as bad as I'd expected (I'd guessed it would be O(N2)).

Sunday, June 10, 2007

Please Hammer Don't Hurt 'Em

[reading: China Miéville, "Un Lun Dun"; recently Atul Gawande, "Complications: a Surgeon's Notes on an Imperfect Science", William Carlos Williams, "Collected Poems I", Christopher Brookmyre, "Not the End of the World"]

Some unexpected good news this week: our water hammer has disappeared.

It's been a problem ever since we moved in, and apart from the annoying noise I've always been worried that eventually it would shake loose one of the pipe joints and we'd get a leak.

I'd been looking at a variety of expensive solutions for the problem, and I've already spent a day on the cheaper approach of pulling up the floorboards in order to clamp all of the pipes.

The water board to the rescue. They've been replacing the mains all round the area, and this week they came back to join up the new mains to all of the houses. It took a day or two to notice what was missing: the annoying 'thunk' whenever a tap shuts off has gone!

Friday, June 01, 2007


[reading: Christopher Brookmyre, "Country of the Blind"]

Sad news: we heard today that Reg got put down a couple of weeks ago. We hadn't seen (or heard) him for a few weeks, so we'd suspected the worst. He'd been looking pretty ill for a while, and he was around 18 or 19, so it wasn't really a surprise.

Thursday, May 31, 2007

Is the Pope…?

[reading: Nancy Kress, "Beggars in Spain"]

Can someone explain to me why a Catholic cardinal attacking abortion is news? After all, it's only been the Catholic position for two thousand years or so…

Friday, May 25, 2007

The Dead Pool

[reading: Tracy Hogg, "Secrets of the Baby Whisperer"; recently Kurt Vonnegut, "Slaughterhouse Five", Christopher Brookmyre, "All Fun And Games Until Somebody Loses An Eye", Greg Bear, "Vitals"]

Looking at the list of dead (or dying) computer skills, I'm starting to feel old. Of the 10 on the list, I've got experience in:

  • Non-IP networks: Yep, about 2.5 years of SNA programming (although the last time I messed in SNA was fortunately back in 1996).
  • C programming: Er, over 10 years of this, although a large fraction of the recent stuff has been more of a C/C++ hybrid (which slightly misses their point—the article specifically targets pure C programmers).
  • OS/2: Ah, the half operating system. As Bill Gates presciently put it (in the foreword to a book that I read at the time), "I believe OS/2 is destined to be the most important operating system, and possibly program, of all time". I had probably a year or so working on it (a printer driver and a comms system) back in 1989/1990.
  • Cobol: Actually, no. But if they'd mentioned Fortran instead, I'd have to admit to a couple of years of it. Most recently in 2005 (don't ask).

[A:42265 B:3736 C:346 D:9187 E:92981 Total:148515]

Friday, May 04, 2007


[Edit, Feb 2008: fixed typo—changed extra_content to extra_context]

Today's neat Django trick: getting the create_update generic views for a model to display entries from a subsidiary model in-line—like the admin interface does when you add edit_inline=models.TABULAR.

The (oldforms) Form object that gets generated by the create_update view already has most of the required gubbins inside it; we just need a few extra steps to get at it:

  1. In, set an extra_context argument for the view to be a dictionary that contains inline_related_objects:
     {'inline_related_objects': model._meta.get_followed_related_objects(None) } 
  2. In the template, include a loop to pull in all of the related objects:
     {% for related_object in inline_related_objects %}{% edit_inline related_object %}{% endfor %} 
    within the <form> tag.
  3. Since the edit_inline template tag is not a built-in Django tag, the template also needs to load up the admin_modify extension:
     {% load admin_modify %} 
  4. Make local copies of the relevant admin templates (such as admin/edit_inline_tabular.html and widget/foreign.html) and tweak appropriately.

Of course, I didn't figure this out until after I'd spent a couple of hours dismantling the admin interface code with a view to stealing the relevant bits. Roll on the Django book.

Wednesday, May 02, 2007

ER Considered Harmful

[reading: Enkin et al, "A Guide to Effective Care in Pregnancy and Childbirth"; recently Charles Stross, "Accelerando", Charles Stross, "Glasshouse", Douglas Hofstadter, "I Am a Strange Loop"]

Hmm. Maybe watching this episode of ER wasn't such a good idea just at the moment.

Watching old ER episodes, it's interesting to see various actors who I recognize from things they've done since. This episode had Bradley Whitford, who's much more familiar now from West Wing; continuing the theme, only 2 episodes earlier Janel Moloney (Donna) showed up—although I mostly recognized her from her voice. Likewise, the voice of Richard Brooks is very distinctive, even though he only shows up in one episode of ER and a single episode of Firefly (as Jubal Early). [Edit: also Richard Schiff, almost unrecognizable without the beard but again with a distinctive voice.]

[A:42265 B:3446 C:346 D:9187 E:92248 Total:147492]

Tuesday, April 24, 2007

Geek Spam

[reading: George R.R. Martin, "A Feast for Crows"]

Today's peculiar spam:

Symbol: ABC.D
Company: xxxxx xxxx xxxxxx
5-day Target: 0.95
Current Price: 0.33 (UP 70%)
WKN: xxxxx
ISIN: USxxxxxxxxxx
Market: Frankfurt

The TRACE statements got me to the problem and it has to do with threading. Rectangles typically are described by upper-left and lower-right corners.
I am positive that in the vast majority of cases we are hammering nails with microscopes.
You can control the compilation driver.
Normally since there is only one sound card in your system only one front panel at a time can be used for SSTV transmission or reception. The two sisters at once called on Mrs Bolton, in a newish house in a row, quite select for Tevershall.
Her thirst was gone, her aches.
Notice that a NDIS packet filter value of zero disables packet reception.
The component for which you want to find a site.
Specifies whether the type should be marshaled using the Automation Marshaler or a custom proxy and stub.
It's just impossible to include full list of them on this page.
Examples of real-world spotlights include desklamps, headlights, and flashlights. So he's been in London all this time seeing his lawyer.

Unsurprisingly, this slipped past my spam filter (particularly as the text on the left is in a GIF image). However, my question is this: for the recipients whose spam filters this is designed to get around, how many of them are likely to respond to a pump-and-dump spam email?

In other news, I'm off for my first Slacker's Lunch in ages—almost a year to the day. The plan is to go bowling, so we may stay relatively sober.

[A:42265 B:3278 C:346 D:9187 E:92248 Total:147324]

Saturday, April 14, 2007

The Joy of UNIX

UNIX credo: you can do anything from a single command line (as long as the line is allowed to be arbitrarily long).

Case in point: generating a white noise audio file

sox -t sl -r 44100 -c 2 /dev/zero \
-r 44100 -c 2 -w whitenoise.wav synth 10:00 whitenoise vol 0.6 fade q 10 10:00 10

Friday, April 13, 2007

Internet 1 Banks 0

[reading: Neil Gaiman, "Fragile Things"; recently Gina Ford, "The New Contented Little Baby Book"]

Maybe this Internet thingy will catch on after all.

I wanted to change my savings account to something that paid more interest, but it seems you can't just fill out a form. Instead the branch staff told me I'd have to wait until I could get an appointment next week and spend 45 minutes discussing it with a financial advisor.

So I went home and rang up to close the old account anyhow. This took more time than setting up a new savings account with an online bank—I know this because I did it during the 12 minutes I was waiting on hold.

<rant subject="banks">

I picked my existing savings account because it had their highest rate, so I was surprised that its rate had dropped low enough that I was losing money in real terms. On asking, I was told it was because it was an "old" account, and that they only have their best rates for the newer products. The rates are even worse for the older accounts that can't be opened any more.

So you can't just pick an account and assume that natural competition between the banks will keep the rates fairly close to the best of the market—you have to check every couple of years to see if your account has been superseded.

Presumably this also means that there are plenty of customers who never notice this and just trust that they're getting a fair deal. To me, that seems effectively the same as a door-to-door conman, scamming little old ladies, except it's being done wholesale rather than retail.

And another thing, while we're on the subject of dubious business practices from banks. When I looked at the comparison sites for cash ISAs, the Barclays 'Tax Beater' cash ISA stands out with a rate (6.5%) that's distinctly better than any of the competition.

However, the devil is in the details. Looking at the small print, this rate only applies for the first 12 months; the true equivalent long-term rate is 5.5%—which would put them rather further down the comparison tables.

This is a common trick, relying on customer inertia as above. But there's more: extra small print that says they don't allow any existing cash ISA funds to be transferred in—which means the higher rate will only ever apply to £3000 (at most) for one year.

So the headline rate of 6.5% that gets them to the top of the tables (and that they trumpet on their advertising) only costs them £30 per customer—which is pretty reasonable, as customer acquisition costs go. Nice scam.


[A:42265 B:3278 C:346 D:9187 E:91866 Total:146942]

Monday, April 09, 2007

Thursday, April 05, 2007

Wednesday, April 04, 2007


[reading: Charles Stross, "The Hidden Family"]

"If you've ever written a book, it's not really finished but abandoned."Lemony Snicket

The second proof copy of the printed version of my witterings about software engineering arrived, and (unlike the previous proof copy) I couldn't immediately spot any egregious errors (although I'm sure there are many still lurking).

So I've finally made it visible to the world: "High-Quality Software Engineering", available as:

In theory, the Lulu distribution process means that the printed version will eventually trickle through to an Amazon listing, which would be good.

As an aside, it's been interesting to find out more about the where the money goes with book prices. It seems normal that the book seller (e.g. Amazon) gets 50% of the cover price. The other 50% covers the production cost and then what's left goes to the publisher and eventually the author. This means that the author of a reasonably popular book can make more on Amazon referrals than on royalties!

Saturday, March 31, 2007


[reading: Edward Tufte, "Beautiful Evidence"]

Apparently my luck is improving, judging from the emails I've been getting. In fact, I'm so lucky that I win competitions that I never even entered. The luck extends to getting advance warnings about problems with online bank accounts that I don't have.

After my previous worry about spam, things seemed to quieten down again (to ~1/week), but the levels have started to rise again more recently. Wonder why it seems to come in waves?

[A:42245 B:3278 C:346 D:9187 E:91495 Total:146551]

Monday, March 19, 2007

Typos Uncloaked

Normally, when you try to proof-read your own text, there's some sort of stealth field that hides all of the errors—it's very hard to spot your own mistakes. However, I've discovered that there's something different about a properly printed copy of your own stuff: suddenly mistakes just seem to leap out.

In forty-odd thousand words that I've already checked several times, I've spotted:

  • 9 erroneous wordings
  • 10 instances of errant punctuation
  • 5 layout errors
  • 4 formatting/display tweaks
  • 1 bug
  • 2 inconsistent spellings
  • 10 infelicitous wordings.

And of course this is unlikely to be everything.

[A:42245 B:3278 C:346 D:9187 E:74756 Total:129812]

Saturday, March 17, 2007

Thanks, Ken

[reading: "The Sagas of the Icelanders"]

I've just had my council tax bill for the year, and once again the part of the council tax bill that goes to the Greater London Authority (GLA) has risen faster than inflation. This triggered me to do a little rummaging in my files, to look back at the GLA part of my council tax bills.

Year Annual Cumulative
2000/2001     100.00100.00100.00
2001/2002 22.7%0.9%2.3% 122.69100.90102.30
2002/2003 15.2%1.5%1.3% 141.39102.41103.63
2003/2004 29.1%1.5%3.1% 182.47103.95106.84
2004/2005 7.5%1.1%2.6% 196.24105.09109.62
2005/2006 5.5%1.9%3.2% 207.04107.09113.13
2006/2007 13.3%1.8%2.4% 234.68109.02115.84
2007/2008 5.3%2.7%4.2% 247.10111.96120.71

March 2007 CPI/RPI figures not yet available; January 2007 figures used instead.

So in seven years Ken has managed to more than double his part of the London tax burden (in real terms). Still, at least he's now committed not to increase the liability of London taxpayers for the 2013 Olympics* any more.

*Not a typo.

Friday, March 16, 2007

Magic Number

And the number is: 978-1-84753-300-5.

Wednesday, March 14, 2007


[reading: Wesley Chun, "Core Python Programming"]

Is your life so exciting
you have to tell everyone you meet.
Try and make it so enticing;
wear your soul out to your feet.

An amusing exchange at fencing this evening, along the lines of:

Annoying new chap: "Presiding epee is more difficult than presiding foil."

Me: "Nonsense—foil has right-of-way to worry about and épée doesn't have any rules."

ANC: "No, presiding epee is more difficult than foil. Or maybe it just seems that way because I'm an international foil referee."

Impressive—he managed to work in that piece of information in his first five minutes at the club.

[Edit: And he's repeated the manoeuvre in the first five minutes of every subsequent conversation I (or anyone else) have had with him…]

(And yes, I'm assuming that he's the sort of person who wouldn't know where the accents go.)

[A:42244 B:3278 C:346 D:9187 E:74299 Total:129354]

Tuesday, March 13, 2007

Proof of the Pudding

[reading: Robert B. Cialdini, "Influence: The Psychology of Persuasion"; recently: Simon Selmon, "Swing Dancing", Norma Miller, "Swingin' At The Savoy"]

Aha! The first printed copy of my scribblings on software engineering has just arrived (somewhat later than expected, given that I put the order in nearly two weeks ago). Fortunately, the print quality seems just fine with this one (unlike my experiment with photographic content).

Of course, on the very first page that I checked any of the text, I immediately spotted a typo.

(Still, this is supposed to be a proof copy and so finding such things is the main raison d'être—one fewer in the final version.)

Thursday, March 01, 2007

You know when you've been Djangoed

[reading: Manly Banister, "The Craft of Bookbinding"]

Well, that was surprisingly straightforward—I got my first live Django site up and running inside a morning. There were a bunch of configuration tweaks, and I had to fix a couple of problems in the code that hadn't shown up under the test server, but then it was up and running. The hosting provider (WebFaction) was pretty impressive: fast, cheap and well documented. If I'd realized it was this easy I'd have gotten the live site up weeks ago.

So as that didn't take as long as expected, this afternoon I've written my first noddy AJAX code as an encore.

Sunday, February 25, 2007

The Spine is Evil

[reading: Skippy Blair, "Disco to Tango and Back"; recently: Simon Lovell, "How To Cheat At Everything"]

Drat; forgot to add extra space on the inside margins of my current typesetting project, so I had to go back through all of the chapters and re-set everything. Like the man said, the spine is evil.

Thursday, February 15, 2007


[reading: Scott Lynch, "The Lies of Locke Lamora"]





Also, a frustrating visit to the Pompidou centre. This involved:

  • queueing at level 0 to have our bags checked and get in
  • a couple of minutes trying to figure out where to get tickets
  • buying a combined "museum + exhibitions" ticket
  • going up to level 1 to get into the museum, only to be told my bag was too big
  • back to level 0 to deposit my bag at the cloakroom
  • back to level 1 to get into the museum
  • up the escalator to level 5 for the first half of the permanent collection
  • looking at modern art, also known as 'doodling' or 'rubbish'
  • discovering the second half (level 4) of the permanent collection was closed
  • looking for signs to the temporary exhibitions, but not finding any
  • going back down the escalator to level 1
  • …to discover a sign indicating that temporary exhibitions were on level 6
  • reascending the escalator to level 6
  • …to discover that both temporary exhibition halls were shut
  • redescending to level 1
  • going back down to level 0 to retrieve my bag
  • leaving.
All to be reminded that I don't really like modern art.

Wednesday, February 14, 2007


[reading: Karl Schroeder, "Lady of Mazes"]

Unexpected bonus from the French tendency towards strikes: the ticket collectors at the Louvre were on strike, so entry was free.

Tuesday, February 13, 2007

Monday, February 12, 2007

La Defense

[reading: Charles Sheffield, "Between the Strokes of Night"]



We also went to the Musée D'Orsay, but it was shut on account of being a Monday. So we walked on to the Musée Rodin…which was also shut on account of being a Monday. The Eiffel Tower was still there on a Monday though.

Sunday, February 11, 2007

Le Métro

I'd forgotten how wonderful the Paris Métro is—cheap, clean, quiet and efficient. The pricing is particularly nice: a single cash ticket for a central journey is €1.40 (around £1), compared to £4 in London.

Of course, it's heavily subsidised: for every euro I spend, the French taxpayer coughs up another two euros. Which practically makes it my patriotic duty to take the Métro everywhere.

Wednesday, February 07, 2007

Scanned Scan 2: The Return

[reading: Ben Willmore, "Adobe Photoshop CS2 Technique"]


[A:41925 B:3278 C:346 D:9187 E:74245 Total:128981]

Saturday, February 03, 2007

Blah blah blah

[reading: Kingsley Amis, "Lucky Jim", Adobe Creative Team, "Adobe InDesign CS2: Classroom in a Book"; recently: Adobe Creative Team, "Adobe Illustrator CS2: Classroom in a Book", Alan Moore, "Promethea Books 1 2 3 4 5"]

I came across a really useful observation in Steve Krug's "Don't Make Me Think*" the other day:

Happy talk must die. If you're not sure whether something is happy talk, there's one sure-fire test: If you listen very closely while you're reading it, you can actually hear a tiny voice in the back of your head saying, 'Blah blah blah blah blah….'

What's more worrying is when you get that same tiny voice repeating "blah blah blah" when you're writing.

*Excellent book, BTW; up there with Joel's UI book for accuracy, humour and pithiness.

[A:41925 B:3278 C:346 D:9187 E:74051 Total:128787]

Saturday, January 27, 2007


[reading: Ty Fischer, "Color Blind"]

For one of the projects I've been playing with recently, I've been thinking it would be good to get a printed version done. The biggest print-on-demand site seems to be Lulu, so a couple of weeks ago I ordered one of their books at random to see what the printing quality was like. My project is going to involve a bunch of black and white photographs, so I picked the cheapest B&W photo book I could find in their listings.

The book arrived this morning, and the quality is very disappointing. The photographs look a bit like newspaper pictures did 20 years ago, with not-dissimilar paper quality. It's definitely down to the halftoning of the printing too—the original photographs online look fine. It seems other folk have similar concerns; rumour has it that their colour printing gives better results, but it's three times the price and seems unnecessary given that everything I'll want to print is monochrome.

So does anyone know of a print-on-demand place that gives decent results with monochrome images?

[A:41925 B:3278 C:346 D:9187 E:71686 Total:126422]

Friday, January 26, 2007


[reading: Douglas van Duyne et al, "The Design of Sites (2nd edn)"; recently: Steve Krug, "Don't Make Me Think"]

It's been a while since I last tried to book tickets for live music, and I'd forgotten how extraordinarily annoying the added extras are. I was thinking about going to a Tom McCrae gig, and the tickets are listed as £15.

Of course, it's naïve to think you can actually buy a ticket for that price—there's the £1.50 "booking fee" to pay too. (What exactly does that pay for? The tricky business of keeping track of what tickets are left? Given that it's a standing-only venue, that involves … counting up to 500.)

OK, so the £15 tickets are really £16.50 tickets. I'm annoyed but I can just about cope with that, until I get to the checkout and discover the additional £2 "transaction fee". (Presumably this is to pay for the back-end credit card processing, but I've looked into how much this sort of thing costs, and 5.7% (assuming people normally buy 2 tickets) is ridiculously high.)

So listing the tickets as £15 is a flat lie; they're actually £17.50 tickets.

(In the past, I've tried physically turning up at the venue to buy the tickets with cash in an attempt to avoid the fees, but it didn't make any difference—they still added on all the extras. They don't call themselves "Mean Fiddler" for nothing.)

[A:41925 B:3278 C:346 D:9187 E:71632 Total:126368]

Tuesday, January 23, 2007

Continuing the theme

[reading: David MacDonald, "The Encyclopedia of Mammals"]

I got rid of an old camera today (by donating it to the nice folk where I did a studio lighting course), which reflects a grudging acceptance of the new era—my primary camera gear is now entirely digital. In some ways I'll miss the physical experience of the darkroom, but on the other hand the efficiency gains are just too enormous to ignore—a ten-second tweak in the Photoshop Levels dialog equates to twenty minutes of producing test strip prints.

I still have a medium format camera that I use occasionally, but even with that I'm unlikely to do any darkroom work—a scan of a 6x6 negative gives a monster-megapixel image I can play with in Photoshop.

[A:41925 B:3278 C:346 D:9187 E:69754 Total:124490]

Monday, January 22, 2007


[reading: Peter Hopkirk, "The Great Game"]

I heard today that someone I know might be getting a new job, working as a part-time photographer for a web retailer. For some reason I'm slightly envious….

[A:41925 B:3278 C:346 D:9187 E:69180 Total:123916]

Wednesday, January 17, 2007

Error in Server Configuration

[reading: Tanya Huff, "Blood Bank"; recently: China Miéville, "Looking for Jake and Other Stories", Neal Asher, "The Parasite"]

Worrying—Thunderbird is currently reporting "Sending of password did not succeed. Mail server responded: error in server configuration". Not sure what this means about my current email connectivity.

[Edit: seems to be back to normal now.]

[A:41925 B:3278 C:346 D:9187 E:67154 Total:121890]

Saturday, January 13, 2007


[reading: Phil Wilson, "The Definitive Guide to Windows Installer"]

Hmm. Not having the most competent of days—I managed to buy a computer game that I already owned and also to leave behind something I'd bought at the supermarket, both within the space of a couple of hours.

[A:41892 B:3278 C:346 D:9187 E:64585 Total:119288]

Sunday, January 07, 2007

Bright Idea

What a surprise. It turns out that IKEA use different lightbulb fittings than everywhere else in the UK.

It does induce a potential business idea though: surely it would be possible to make adaptors that fit into IKEA lamps and take UK-standard bayonet fitting light bulbs? You could set up a van in the IKEA carpark selling them to customers leaving the shop; a sales pitch along the lines of "Buy one of these or else you'll have to come back here again" ought to work nicely.

(It's not an entirely dissimilar business plan to the estate-car taxi services that operate outside IKEA, mopping up the customers who discover the limitations of the IKEA "delivery" service.)

Saturday, January 06, 2007


[reading: Kurt Cagle, "SVG Programming: The Graphical Web"]

I've started investigating SVG, and it's beginning to look like I chose the wrong book to read. In the source code download, the second file from the book is corrupted; the author's website has gone so there's no chance of finding fixed versions, and the Apress site for the book doesn't have any errata listed (despite the fact that the book has been out for five years and I've spotted 3 typos in the first 40 pages).

Still, at least it was cheap.

Thursday, January 04, 2007

End of Another Era

[reading: Justina Robson, "Natural History"; recently Anne Deans, "Your Pregnancy Bible"]

For one reason or another, I've sold my motorcycle.

Ducati_Monster_M600_small Ducati_Monster_M600_3_small

It's a bit of a wrench: I've had a bike since December 1992, but now I'm reduced to the vagaries of London Transport. Which may not be the best of timings (well, mebbe not).


[A:41892 B:3278 C:346 D:9187 E:64522 Total:119225]