skip to main bit
a man slumped on his desk, from 'The Sleep of Reason Produces
      Monsters'

Oblomovka

Currently:

2008-09-14

making paperwork filing as interesting as “Nude on the Moon” (or Tron, at least)

Spent today wandering the used bookshops of Valencia in a daze, recovering from Annalee‘s bad movie night. I’m not sure I’m ever going to entirely mend from an evening that included Nude on the Moon and Dead Heat, the definitive living/zombie wacky cop partnership starring Joe Piscopo.

To recover, I spend the evening scanning in my backlog of boring paperwork. I have an HP all-in-one printer that I got for its automatic document feeder and decent Linux support. It’s got Wifi built in, and if you have the hplip drivers and sane utilities running on your server, you can type something like:

at the command line, and have it magically come to life, scan a pile of documents, and then send them over to your linux box. I hand tag the files, but also run them through Google’s open source Tesseract OCR software, which often comes up with enough text to let me search for keywords. I assume that local OCRing will get better, if not with free software, then with me running it through some commercial OCR offering when I have the chance. The most important tag is the date of the paperwork — once you’ve scanned and tagged the paperage, you can just file it by date, and then dig it back out again when you need the original. Or just junk it over time.

I’m not entirely won over by the usefulness of scanning, but it’s nice to have offsite backups of my paper life, and it lets me actually go over my correspondence without wanting to slide off the chair with boredom. Whee! Look at me! I’m digitizing, just like in Tron!

2008-09-13

some ublick; browsing with vim

Okay, here’s my penance for missing a day’s blogging: I wrote a couple of ubiquity commands. They’re not very clever, and it’s more scratching my itch than yours, but they do a couple of things that are useful in my own obsessive areas. The first, state-code will tell you the two-letter US zipcode abbreviation for a US state name (ie Georgia == GA, CA == California). This lets me fake understanding the electoral-college-speak that now replaced ordinary conversations in my favourite discussion areas online. (“So, O’s best gambit if FL and OH are lost with this bounce is to secure the Kerry states, and secure NV and CO”).

Slightly less topical, yet also less parochial, is country-code, which will switch you between English country names (“Germany”, “Serbia”) and the official ISO 3166-1-alpha-2 two-letter abbreviation (“DE”, “RS”). I use two-letter country names to categorize global digital rights news in my delicious feed. God knows what filthy use you put it to, but when you do, you can use this command to help you.

Both country-code and state-code live over here, on my ubiquity page, or you can grab the source from state-country-code.js. They’re embarrassingly easy code examples to follow, so hopefully they’ll inspire you to futz around with building your own ubiquity commands, which really is fun.

Also fun is Vimperator, which I think I linked to back when it was just funny — a Vim-like interface to Firefox. Now I’m actually finding it kind of useful, which scares me almost as much as it should scare you. Its keybindings clash a little with Ubiquity sometimes, otherwise I would now be living in a total command-line-Amish lifestyle online. Also dangerous by the same author, Muttator, bringing mutt/vim like keybindings to Thunderbird with the hubristic motto “All mail clients suck. Mutt just sucks less. This one just sucks less than Mutt.”

2008-09-11

some notes on the flying bed

For the last four years or so, I’ve been telling my daughter stories at night and, in an attempt to keep her fine skill at spotting inaccuracies at bay, struggling to keep the narrative universe consistent. The basic premise is usually the same:

One upon a time, there was a little girl called Ada. And whenever Ada wanted to have an adventure, or see something she’d never seen before, or do something she’d always wanted to do, all she had to do was to climb into her bed, close her eyes, hold her hands really tight, and make a wish. And suddenly — I don’t know how — her bed would rise into the air beneath her. And suddenly — I don’t know how — the windows to her room would slowly open, and the bed would fly out, and whatever she wanted to see, or whatever she wanted to do, or whatever adventure she wanted to have, the bed would take her to it.*

We had a couple of long serials — one in which Ada and friends investigated a secret polar world inside a fridge, and another one with an tree with an elevator in it, that could take you to different worlds — but me and Ada have agreed we prefer the short, Star Trekky, story arcs rather than the long drawnout multiple bedtime Babylon 5 scenarios.

This is good, because generally Ada’s been picking up a magical device every night, and after a few weeks we basically have an entire thaumaturgical armoury at our disposal, which makes for tricky plotting. I’m already learning to limit the powers of each device to stop it being brought up as a potential solution.

Another tradition that makes for tricky plotting is that before we start, Ada gives out a laundry-list of items that should appear within the story, which sometimes makes for Whose Fairytale Is It Anyway feel. Last night for instance, my director stated that the story should:

  1. Be about her dinosaur toy coming alive
  2. Should involve Dyson (our cat), but only in a side-role.
  3. Should have a glowing magic sword.
  4. Should have exactly one unicorn.

Together we worked on a story that involved the magic bed in a rare solo flight going off to get the magic sword, which brought the dinosaur to life, but with unfortunate consequences. The more the dinosaur ate, the bigger it got, until it got too big for her bedroom, and we had to fly off, with it holding onto the flying bed with a single paw, to find the owner of the magic sword, and undo the magic. One magic forest and unicorn later, and we discovered that this magic sword was always available to be lent out to children who wanted to give their toys the gift of life. But the unicorn (who was the keeper of the sword) explained that it knew the downsides to being alive, having once been a tiny toy unicorn itself. The world was full of toys who had come to life and got to big or too bored in their own toyboxes. And that’s why this forest had been made, so there would be a place for all the magically alive toys to live happily, where their old owners could visit them and say hello whenever they wanted.

I’m writing this down, because I think the Forest of Living Toys is going to make a comeback, along with the Volcano Monster, and the Endless Tree, and the Planet of the Lolcats, and the Feather of Every Color, and the Warm Mittens of Truth, and I need to keep it somewhere…

Plot factory shamelessly stolen from Enid Blyton’s Wishing Chair series, cheers.

2008-09-10

missed a day! arbitrage!

Both in blogging, and pretty much in real life. One of the things they don’t tell you about being the continental United States is that everyone on the east side of them likes to punish everyone on the west side of them by starting teleconferencing calls at six in the morning. Meanwhile, I was also running to a Geneva morning deadline the night before. Then I went into work. Then I went to a kindergarten parents-meet-your-new-parent-friends thing. And then I went home, and closed my eyes for a few minutes. Fourteen hours later, I wake up, and it’s time for a GMT teleconferencing call with the ORG advisory board. Honestly, I feel like Sputnik.

Anyway, I missed a day, so I will try and reward you with an extra item some time this week.

Right now, I’m puzzling over my “future blog title ideas” notes. My favourite one just says:

“I Can’t Stand It I Know You Planned It — I’m Telling Y’all It’s Arbitrage”

I think this comes from me mulling about how poorly-distributed information continues to be. I recently spent a (for me) large amount of money on a dental crown done by a (fantastic) San Francisco dentist, even though I have a fair hunch that I’m a good candidate for dental tourism.

I was recently smart enough to avoid the used-car-salesman miasma of mattress shops (do not ask me why mattresses are crazy mark-up commission shyster heaven in the US: I imagine there’s some inspirational bed-bilionaire in the twenties who wrote something called “Bed bucks! How to take $$$ from other people’s mattresses!” that led to it all). But I didn’t go really low; at some point I ended up thinking “well, a bed should cost slightly higher than I think possible, otherwise why would everyone else spend this kind of money?”

Is it a false economy to be simply not be bothered to care enough to do arbitrage? The perfect model for this carefully-planned laziness is my friend Gilbert, whose sofa I am currently blogging from. Gilbert’s Heuristic of Product Purchasing states “always buy the second-most expensive version of the item you want”. Obviously, only mugs buy the most expensive item. But I think you can agree there’s something a bit wrong about the really cheap stuff?

Then, on the other hand, I will always spend at least three man-years searching for the cheapest airflight from SFO-LHR. And, I should say, probably blow the money saved on the Heathrow Express instead of riding the underground with all the other cheap-ass plebs when I get home.

I think many economists would view me as being fantastically irrational. But I like to poke them in the eye and say “revealed preferences”. And my revealed preference is that I put a lot of value on my sense of tedium. Hunting down bargains needs to be more fun before I’m going to ever be a streamlined monster of economic dynamism.

2008-09-08

world’s worst libertarian

So I spent some of this evening phone-banking for Obama.

One of the benefits of being a green carded permanent resident is that not only can you give money to shore up the evil excesses of big government, you can also volunteer to help out. I justify my support by claiming that I am merely good old fashioned free market competition to other, paid, telemarketeers, because that’s pretty much what phone-banking is. You have a script, you call somebody in a swing state, and ask them who they like and why. Well, actually, you mostly call dead-end numbers or are hung-up on (I don’t blame them: when I was in a swing state in the last election, it was amazing how besieged voters were: every radio ad a political play, every call a pollster or a robocall, every mail delivery weighed down by glossy lobbying brochures and postcards).

My favourite moment was calling Lucille in Nevada. After a cheery “Hello, lover — I’ll be with you in a moment”, I was put on hold for a few seconds, and then asked what I’d like. When I said that what I’d like would be speak to Lucille, I was patched through to an older lady, who explained she handled the girls here, and anything that I wanted had to go through her. After talking at cross purposes for a few more seconds, we both realised that Lucille did not want what I was offering, and vice versa. I marked it as “wrong number”. Whose mailing lists did they buy for Nevada, anyway?

Anyway, I highly recommend doing this kind of thing (the phone-banking, I mean): I think both campaigns now let you do it from home.

2008-09-07

in which i wish i was donald knuth

I spent an hour or so today trying to solve a problem that I just knew had been solved a million times before: I don’t have that knapsack of programming solutions that CS students, and other people who’ve actually read The Art of Computer Programming naturally have.

I’ve been writing a parser that would suck in Latvian legal texts (don’t ask) in Word format. I realised about half-way through that I’d have to take my parsed outline, and wire up all the various sections, subsections, and so forth into a sensible tree. Well, actually, I’d always known that I’d have to do that, but it was only this morning that I realisd that that I didn’t know how to do that, and it was going to be harder than I’d envisaged. I

My solution sucks (so badly that I can’t bring myself to show it you — oh all right then), but I was reasonably pleased that I managed to fence off my sucky solution into a separate object, only lightly connected to the code it was helping. Even its API is rubbish, but I know that at some point when it finally dawns on me how to do this in a smart way, I’ll be able to pull out this blob and slip in something a bit better.

The rest of my time has been spent hitting reload nervously on the current electoral polling (there’s a complex joke using the computer science meaning of polling, but I’m too tired to go there). Lots of people I know need to see this, I think.

2008-09-06

hi mum! and crypto

So my sainted mother is reading my blog, just in time to hear me talk about scary gangs: we’re fine, honest. And I didn’t mention the earthquake yesterday, because neither Ada nor I even noticed it!

There, very calming. I am also calmed by news of an eight-year old friend of mine, on hearing the plot of Crypto being explained to him, becoming OUTRAGED that the government would want to listen in on phone calls! Also, Ben Laurie (slightly older) thinking as ever about how to do security right, and coming to the age-old conclusion that it involves crypto everywhere. It’s often been said that we won the battle to make strong encryption freely available, but lost the battle for anyone using it. I started re-signing my email recently using GPG, and it’s actually relatively easy these days; I wonder what the tipping point will be for more widespread use of personal crypto. If any?

2008-09-05

war zoning out

Well, I wasn’t wrong about it being a bit noisy outside: six people have been shot in the current gang violence in the Mission this week. It’s latino gangs and Hell’s Angels, apparently. They should fly some mods and rockers over.

I wonder if in fifty years, there’ll be historical Surenos re-enactment societies? Maybe that’s what West Side Story was.

I’m punch-drunk from coding to a rather dumb self-imposed deadline. Still, thank you, Arthur Koziel, for this tip about creating administrative users when you start a database from scratch in Django. I’ve been doing a lot of that, reinventing my databases. One of the wonders of these modern, whipper-snapper frameworks is that you don’t just refactor your code — you refactor your database schema too. Thank god, too: SQL has always filled me with the heebie-jeebies, while I’ve been slowly finding myself become more OOPish as life goes on. I’m such a fan of refactoring, because I so badly need it: I’m a veery slow coder, and a scattergun debugger, which both combine to leave me with a tendency to hack solutions under time pressure. Just putting in enough support to do real refactoring at least lets me tidy up my code a little before anyone else sees it.

I’m really, really, enjoying Django, though. They were wise to keep it cooking for so long before 1.0: there’s so much there (like the test fixtures and contenttypes) which you find yourself reaching for before you even know they’re there. The documentation is great, but I’m also enjoying the general pedagological bent of its supporters and their wider group of companions. If you’re somebody who is thinking about playing with these frameworks, you could do worse than check out the videos on Show Me Do, the Bollywood of screencasting python tutorials.

Okay, on that slightly hallucinatory note, I’ll grab some sleep.

2008-09-04

hacking for coins

Wow, the Mission is jumping tonight. Sirens, a car driving around in loops with an ultrasound sound system, and a man who shouts “hein” every 45 seconds.

I’m a bit under the gun today, so here as usual when I can’t think of anything to write, is something I thought of to write years ago. It’s another Linux User column — usually I’d just stick it with the others in the ugly column corner, but I suspect nobody finds them there, so you have the joy of it clogging up your RSS reader too. Enjoy!

Hacking for Coins

Originally published in Linux User and Developer sometime in 2003/2004. License here

One recurring question of Linux development and the open source development
model in general is that of remuneration. How does one get paid for the
generous work generally volunteered toward a free software project?

There are many models proposed for guaranteeing some financial support for
those wishing to work full-time. There’s patronage. This is where the Crown
Prince of Bavaria, say, gives Linus Torvalds a castle and a moat, and bids him
to write code for the pleasure of the court, or else be thrown in the dungeon
with those BSD mongrels. Linus goes on to create great works, often prefaced
with a large set of logon messages in praise of his honoured patron, only to
die later in poverty following some dismissive comments he includes in a
kernel driver about the CEO of OSDN’s mistresses’ pet lioness.

Critics of patronage point out to live on the whims of a distant,
self-involved elite is a demeaning life for Linux programmers, reminiscent as
it is of both medieval surfdom and being a mere Linux user, both of which
being horrid epochs that as a civilisation we imagine we have transcended.

Another possibility, at one stage I believe semi-seriously proposed by Richard
M Stallman, is a “software tax”: a government program to provide the basic
infrastructure of society by funding open source development out of public
funds. Indirectly, of course, this is what many of our university computer
science departments do now, along of course with their generous financial
support of the brewery, cigarette paper and Pot Noodle industries.

Unfortunately, a Ministry of Hacking has many obstacles to overcome. Many of
our American cousins would believe that the is nothing less than communism,
and would lead to gun control, socialised medicine, and publically-subsidised
firemen. In Britain, while a Code Dole would have some appeal, many government
offices require you to sign on at unfeasibly early hours of the afternoon,
which would make the whole process so unpleasant to many hackers that they
might simply not bother and die of poverty and neglect.

Both of these concepts assume that financial aid for open source coders need
come from outside. But geeks are not helpless, and full of ideas and
creativity. Might not we, in some way be able to temporarily disengage our
mighty brains from finding a better way to sort alphanumeric lists, and
imagine a way of general earning money for ourselves?

In the past, such a gargantuan and uncharacteristic act of concentration has
produced mixed results. Many software projects have temporarily attempted to
live off Google Adsense earnings. As it transpires, the number of adverts
targetted at people wanting to browse CVS repositories is not enormous, and
once all your readers have clicked on the “Visit Ebay, Where We have
Thousands of CVS Repositories For Sale!” advert, revenue pretty much dries up.

Thinking more laterally, many geeks have come up with ingenious, but perhaps
unrealistic projects. Downloaders can pay to have a CD of sources delivered by
a naked singing “Fat Bearded Guy A Gram”. Or costs can be defrayed until the
senior developer’s designs for a space elevator provide enough Helium-3 sales
to pay off the bank loan.

More prosaic is the crazy, mind-boggling possibility of “keeping the day job”.
Again, when Richard M. Stallman was once asked how might programmers earn a
living if all software was free, he replied with words to the effect that he
had always considered waiting tables to be fine and noble practice. Audiences
at the time jeered his words: but stayed to marvel as RMS demonstraterd
Meta-X-silver-service, an Emacs keyboard macro that mystically served a fine
Filet Mignon Garnished with Scallops, Asparagus Spears & Sauce Bearnaise
service to a random stranger, who then provided Mr Stallman with a
fine, fine tip.

Finally, there’s the Street Performer Protocol, the system devised by John
Kelsey and Bruce Schneier for funding creative projects in the absence of
traditional intellectual property rights. In this system, a work such as a
novel or piece of software is effectively “ransomed” – given to a publisher
with the understanding that it would be released to the wider public when, and
only when, they pay a certain amount.

The Street Performer Protocol was first suggested in 1999, but has had
surprisingly little take-up. In fact, was originally devised in early 1972,
but the authors refused to publish it until they were given a million dollars
and a plane to Rio de Janeiro. Negotiations with the public at large stalled
until, in the desperate act which gave the protocol its name, Schneier and
Kelsey travelled to the Edinburgh Fringe and took hostage over thirty clowns,
mimes and magicians who they found performing outside Waverley Station.

They later released a cryptographically-signed note declaring that unless a
prominent academic journal picked up their financing proposal, they would
utterly neglect to kill a street performer on the hour, every hour.

Within fifteen minutes, the people of Edinburgh had paid First Monday, an
online journal, close to five thousand dollars to publish the entire work.
Schneier and Kelsey were remunerated, a publisher provided with their
financial model, and Edinburgh was rid of pantaloon-wearing drama students
forever.

Such innovative and creative solutions are badly needed if we are to truly
create a world in which programmers can work on improving Linux full-time
while still being able afford to feed their children – children who will grow
up knowing a clown-free world. The Street Performer Protocol is available at:
http://www.firstmonday.org/issues/issue4_6/kelsey/ and my Paypal account is
danny@spesh.com. I’ll start with the jugglers in Cambridge’s town center.

2008-09-03

civil war by any other means

Scale: for me it feels like it’s all about scale in America. Trying to somehow scale up the human condition to cover huge, inhuman scales: scales of power, scales of income difference, scales of vast distance, scales of intention, scales of cultural variation. Wiccans and dominionists; black separatists and klanners; Folsom St Fair and Little Green Footballs. How could they all possibly live together?

People forget, when they’re painting the beginning of the United States as basically a bunch of rich white guys in cahoots, is that they were white guys who were two generations down from, as my friend Anno says, the English equivalent of the Taliban, stuck next to Catholics, pacifists, and other miscellany.

The triumph of the American political culture is that raises to religious a creed that declares that “We are all OBVIOUSLY created equal, by — well, a um, thingy — and we have INALIENABLE RIGHTS (the exact list of which we’ll get back to you on), and among the many inalienable rights we have, are um, LIVING, LIVING THE WAY WE WANT, and the PURSUIT of … WHATEVER IT IS THAT MAKES US HAPPY PURSUING.”

It’s deliciously vague, and somehow the country has managed to maintain a stable political infrastructure over vast ideological distances. I’ve read the pamphlets put out by Jefferson supporters against Washington and Adams in the run-up to the 1800 election. They’re incredibly vicious, and I’m sure the reverse was true. Seventy years later, it’s amazing that America managed to have only the one civil war, and then, like some sort of mortally wounded Terminator, manage to stitch itself together again well enough to lumber spritely through the rest of the industrial revolution, despite unparalleled casualties.

When my European friends talk to me about the horrific right-wing nature of America, I can only point to the fact that it’s also houses some of the most left-wing viewpoints in the world (is that true? It’s sort of true: I’ve certainly heard stronger left-wing opinions in San Francisco than I did in London).

How do you even manage to comprehend such divisiveness? Sometimes, I think it’s some core political genius. Sometimes, I think it’s just luck. Sometimes, in more pessimistic moments, I think it only works because there’s enough space between people that the genocide reflex just doesn’t kick in.

Watching Palin, and flicking between commentators across the political map, I had that sense of vertigo, of physical illness again, when I’m trying see her from all these disparate angles. Half the audience just felt it was a sophomoric, nasty, poorly presented rant. The other thought it was the best political speech they’d seen in their lives.

I realise I sound (like I often do here) as though I’m a believer in American exceptionalism. That’s not what I want to say here. I guess what I’m saying here is that I have absolutely no idea how this will play out in America, and I think I knew that the moment she appeared. The left seemed to have one idea of who she was, and the right another: but I think how this plays out may well be much scarier and weirder than either side thinks. And as someone who is planning to live here (where “here” is both the United States and the world that is currently so influenced by it), I find that profoundly disturbing.

I remember talking to Desiree about what it was like in Yugoslavia, before it exploded, and I remember the profound disconnect between neighbours in Britain when Margaret Thatcher stormed the complacent political scene there. I think of the Main Sequence of democracies: a few years of stability, and then some juddering coup or outrage bringing it crashing to the ground. Is that what happens now? Or is it always like this, in America: is it always like that, when you declare that anyone can say anything?