Archive for 2008

I can haz new fayvrit website?

Published at 12:31, Tue 13 May 2008

I’ve been a fan of I Can Has Cheezburger? for a while, and I tend to find that the pictures I like most are the ones with cats doing, you know, cat things — sod the captions.

So, now that I’ve found Cute Overload, well, this seems likely to be my new favourite website.

How about a few samples? Oh, go on then.

More…

Tries and Text::Match::FastAlternatives

Published at 17:01, Tue 6 May 2008

I’ve just released version 1.00 of my Text::Match::FastAlternatives Perl module. Since I’m apparently declaring it stable, I thought it was worth writing up a description of what it does, and how it does it.

Suppose you have a large list of strings, and a set of keys, and you need to determine, for each of the strings, whether any of the keys occur in it. For example, the list of strings might be a list of user-agent headers sent to a web server, and the keys a set of strings that are good indicators of robots accessing your site; you want to calculate some server statistics, but disregard any robotic traffic.

How do you go about doing that?

More…

DRM always hurts in the end

Published at 14:05, Tue 6 May 2008

Once upon a time, Microsoft set up MSN Music, a store for selling limited rights to listen to DRM-encumbered music. It turns out that Microsoft are retroactively cancelling customers’ ability to, you know, actually listen to the music they’ve already forked out money for.

More…

Speeding up SSH logins

Published at 18:48, Mon 28 Apr 2008

SSH is great; it’s highly secure, and actually easier to use than insecure alternatives like rsh or Telnet. In fact, it’s so easy to integrate SSH with everything else you do that it’s commonplace to rely on it for all sorts of things. But oddly, that very ubiquity tends to reveal an unexpected problem when you try to use SSH for, say, accessing a revision-control system: merely connecting to the remote end and performing the handshaking necessary to set up the encrypted channel takes an appreciable amount of time.

So herewith instructions on how to eliminate that overhead.

More…

Tracked-but-uncommitted files with Git

Published at 22:36, Sun 27 Apr 2008

Something I find awkward about Git is that it doesn’t seem to deal with the concept of a tracked but uncommitted file — that is, the situation you’d get into with CVS after running cvs add on a new file, but before committing that file to the central repository.

More…

Musings on revision-control metadata

Published at 14:48, Sun 30 Mar 2008

One of the axes along which revision-control systems differ from each other is where they choose to store their working-tree metadata.

More…

Hamentashen

Published at 22:42, Thu 20 Mar 2008

Today is the Jewish festival of Purim. One of the customs associated with Purim is the eating of hamentashen — triangular pastries with a sweet filling. (The word is probably Yiddish for “Haman’s pockets”, where Haman is the bad guy in the events commemorated by the festival; in Hebrew they’re called אוזני המן oznei haman, or “Haman’s ears”.)

More…

How not to behave when you’re on the run

Published at 15:16, Sun 16 Mar 2008

I’ve been watching some Prison Break lately. I don’t suppose I’m giving all that much away if I mention that season 2 follows the lives of some convicts after a, y’know, prison break.

One of the convicts in question is Our Hero, Michael Scofield, who we’re meant to believe is a genius. But I saw something the other day that gave me serious cause for concern on that issue.

More…

Metronet and PlusNet customer service

Published at 20:25, Wed 12 Mar 2008

This is a cautionary customer-service tale about the UK ISP Metronet; that company’s owned by PlusNet, who I therefore assume are bad in precisely the same ways.

More…

Flon’s Law and Ruby

Published at 13:35, Mon 3 Mar 2008

Today I read an article by Zed Shaw about the strengths and weaknesses of Ruby, part of a series of similar articles about several dynamic languages, each written by an appropriate expert.

Most of it was just as you’d expect: a description of the Ruby landscape, and the places it works well. But buried here are there are one or two comments that just make no sense whatsoever.

More…

MeWare

Published at 17:11, Sun 2 Mar 2008

Eric Sink has an interesting piece about MeWare, ThemWare, and UsWare. The basic idea is that one way of categorising software is by who uses it:

  • MeWare: only the developer
  • UsWare: the developer, among others
  • ThemWare: people other than the developer

I think most programmers can see what Eric’s getting at there. If you’ve ever worked on, say, a piece of software used exclusively by people in a different department of the company you work for, you know how hard it can be to ensure that the software actually meets those people’s needs.

However, I took issue with one particular thing Eric says.

More…

Album art in Rhythmbox

Published at 16:15, Sun 2 Mar 2008

I’ve been using Rhythmbox for a while now. (Well, I had a brief sojourn in the land of Amarok, but I now seem to have left it for good.) Rhythmbox is actually pretty good; better in some usability ways than iTunes, for example. But it’s far from perfect.

More…

Testing code that uses databases

Published at 14:47, Wed 27 Feb 2008

I’m hardly the first person to observe that it’s hard to test code that needs a database. Production usage almost certainly needs a database server, but then the tests need some way of getting a suitable database handle.

More…

More typographical dorkery

Published at 21:30, Wed 20 Feb 2008

Perhaps this is a little too much Unicode for one day, but, well, that’s life.

John Gruber links to an amusing proposed typographical term, also available as a t-shirt. In plain text, it looks like this:

More…

Unicode fun

Published at 11:06, Wed 20 Feb 2008

The Unicode character U+029A ʚ is named LATIN SMALL LETTER CLOSED OPEN E.

Both CLOSED and OPEN? That’s a neat trick.

More…

Freecycle and reputation

Published at 17:59, Fri 15 Feb 2008

Freecycle is a pretty good idea. Lots of people have stuff they no longer need; lots of people need stuff they don’t currently have. If those people could get together in local geographical communities, so that the first group can give stuff away to the second group, then more stuff will get reused rather than being filed away in landfill for a few centuries.

But the implementation of Freecycle is, shall we say, somewhat suboptimal.

More…

Software tools and cross products

Published at 12:42, Thu 14 Feb 2008

A colleague approached me today regarding a unit test he was writing. He was constructing a series of test cases from a data structure; his code at the time used a multi-line string of which each line had several fields which together described a test to run.

More…

A brief history of time_t

Published at 12:37, Mon 4 Feb 2008

In the context of a discussion about the Y2.038K problem, Craig Berry surmised that the 32-bit Unix time_t type originated on 16-bit machines. That’s entirely true; for those with too much time on their hands, here’s a short history of Unix time handling.

More…

This is not an RSS feed

Published at 09:51, Tue 8 Jan 2008

Various things we do at work involve taking RSS feeds from elsewhere. Some incompetent people emit feeds that are broken in one way or another.

More…

Keyboard shortcuts

Published at 01:32, Tue 8 Jan 2008

There’s been some discussion lately about the utility or otherwise of keyboard shortcuts, after Tim Bray linked to several pieces by Tog on the topic. Tim disagreed with Tog’s analysis, leaving explanations as an exercise for the reader, and Kevin Scaldeferri, one of his commenters, took up the challenge:

More…

Unbreaking GNU Screen

Published at 23:41, Sun 6 Jan 2008

GNU Screen is an extremely useful piece of software, but one that requires an annoying amount of hackery to make it useful. Herewith a description of why you want to use it, and what you have to do to make it work better.

More…