Archive: 2006

  • Worst. YouTube Rip. Ever.

    Dear BBC, if you’re going to rip content off YouTube, at least do it properly.

    More …

  • Fixing ffmpeg on Ubuntu Edgy

    Ubuntu 7.04 (Feisty) users might be interested in a newer version.

    More …

  • Shop and search

    Here’s a modern dilemma: should I suffer a random shop employee to stop and search me, just because a beeping sensor has erroneously accused me of theft?

    More …

  • Ming/Ruby on OS X

    I’ve been experimenting with dynamically generating Flash SWF files this afternoon, using Ming and the Ming/Ruby library.

    More …

  • Google’s new AJAX API cracked

    Following on from my last post, I just had a quick look at the data being transferred by Google’s AJAX search API. It’s really simple:

    More …

  • Google helps you crack its new API

    After hearing from colleagues that Google is discontinuing its SOAP API in favour of an AJAX version, I decided to find out more; I ended up at the Google AJAX Search API page.

    More …

  • Spectral networking?

    Something about this news report amused me:

    More …

  • Five meeeleeeon dollars!

    I’m glad that I can finally shout about it: we’ve (Reevoo) received $5m in funding. (That’s £2.5m, but it sounds even better in US dollars!)

    More …

  • I hate TV Licensing

    I hate the TV Licence.

    More …

  • Under construction for Web 2.0

    I was inspired by the story about Gap Inc. taking their websites offline for a month at a cost of $0.5m/day to renovate them (badly) in what they fondly imagine is a ‘Web 2.0’ manner.

    More …

  • Misery in the bagging area

    I woke up early this morning. Strange but true. Since I had a couple of grocery-type items to buy, and there’s not much else to do at eight o’clock on a Saturday morning, I cycled to Tesco to get them. I anticipated, correctly, that it would be quiet: few people drag themselves out of bed at that time on a weekend. To be honest, I usually have immense difficulty in even waking up that early.

    More …

  • Rerouting Rails Part III

    Previously: Part I, Part II

    More …

  • It’s genetic, innit?

    Here’s a slightly belated story for World AIDS Day.

    More …

  • This is why I block ads

    I turned off AdBlock last night to reacquaint myself with the unfiltered internet—just to see what it really looks like with the goggles off.

    More …

  • Theft, hypocrisy, and online advertising

    知彼、知己,百戰不殆;不知彼而知己,一勝一負;
    不知彼、不知己,年戰必殆。 —— 孫子

    More …

  • Rerouting Rails Part II

    I wrote about my initial experiments with reimplementing Rails’s routing yesterday; this post continues the story.

    More …

  • Rerouting Rails

    One of the things I talked about recently was the routing in Ruby on Rails. Simply put, it’s horrible. I mean, it’s clever, but it’s a long way from being either clear or elegant. Rather like the Dark Side, metaprogramming is seductive—but it’s rarely the right solution to an algorithmic problem. There’s a lot of code generation in the routing code, and it’s very hard to follow. Not impossible, but hard.

    More …

  • People who didn’t buy this also bought these

    I got a marketing email from Amazon the other day:

    More …

  • Ten things I hate about Rails

    I went to Munich the weekend before last for my third Euruko (European Ruby Conference). It’s something of an unconference in that the schedule is decided on the day and anyone who wants to speak can do so. A lot of people were using what can most politely be described as ‘just-in-time’ processes to prepare the accompanying materials for their talks—myself included!

    More …

  • Klingon in Ruby

    This is probably the geekiest thing you’ll see all day.

    More …

  • Slow learners

    The US electorate may be slow learners, but they’ve proved that they aren’t completely stupid. I’m delighted to see American voters punishing the incumbents for their venality and incompetence. Welcome to the reality-based community, guys!

    More …

  • My name in print

    I just received my complimentary copy of the newly-published second edition of The Ruby Way by Hal Fulton today.

    More …

  • IE7 goes gold, still sucks

    I thought I’d better see what the new version of Internet Explorer did to my site layout, so I loaded up an evaluation version of Windows Server 2003 in a trial version of Parallels Desktop for Mac and installed IE7.

    More …

  • How many seconds?

    How many seconds are there in a minute? If you said 60, you’re wrong. Some minutes have 61, although the so-called leap second only comes around every few years, and then only once a year at most.

    More …

  • Sony: we’re protecting customers from our unsafe products

    OK, that’s not literally what they said.

    More …

  • Was für ein comment ist that?

    I love the mixed-up language in this comment from the source code of the acts_as_ferret search plugin for Ruby on Rails:

    More …

  • Headscarf ban

    With the controversy over religious accoutrements, be they Muslim1 niqabs or Christian crucifixes, one story caught my eye. Banning headscarfs might be unsurprising in a country like France, but what about a predominantly Muslim nation such as Tunisia?

    More …

  • I walked on water

    After seeing references to Michael Cross’s ‘Bridge’ installation linked all over the web, and discovering that it was just round the corner from my flat, I had to go and see it—and try it out myself!

    More …

  • Reader annoyed in city confusion

    The BBC’s England news feed drives me mad. Why? Have a look at these recent headlines:

    More …

  • Ruby heresy

    Someone on the ruby-talk mailing list asked why you can't add strings and numbers without conversion as in Perl and PHP. Now, behaving like PHP is rarely a good thing, but Ruby can be made to do it in this case:

    More …

  • Technika DAB radio

    If you want a cheap DAB radio, you could do worse than this Technika DAB-106 from Tesco. (Technika appears to be Tesco’s own brand for Far East-sourced electronics.)

    More …

  • A glimpse of daylight

    Good news! Microsoft is going to flip the kill switch on versions of the OS that aren’t—or, more importantly don’t appear to be—properly licensed. Given how well WGA doesn’t work, I’m sure that this will lead to a lot of inconvenienced users.

    More …

  • Who’s number one?

    It warms the cockles of my heart to see the browser statistics for visitors to this website:

    More …

  • Ghetto Tyvek

    I remembered reading about how you can make a sort of Tyvek-like fabric by ironing together polyethylene shopping bags, and decided on a whim to try it out this evening.

    More …

  • The Amazing Mr Jalloh

    My junk mail usually consists of flyers for pizza delivery or take-away curry houses, so the following made an interesting change.

    More …

  • EuroOSCON 2006

    I think I’ve had enough time to digest last week’s EuroOSCON (the O’Reilly European Open Source Convention) in my mind. I’m not going to attempt to write a coherent story: instead, I’m just going to put down some thoughts from my notes and as they occur to me.

    More …

  • Children of Men

    One of the many perks of my new flat is having a cinema five minutes’ walk away. Tonight, I strolled down there at five past nine for the nine o’clock showing. Being ten minutes late still gave me plenty of time before the actual picture but enabled me to avoid the adverts for Gillette’s latest 98-blade face-scraper or whatever. Advertising subsidises the cinema’s running costs and I don’t have to watch it. Everyone’s happy!

    More …

  • RailsConf Europe 2006

    Along with my fellow Reevoo developers, I spent Thursday and Friday at RailsConf Europe, conveniently held here in London at the TUC Conference Centre (which was swankier than I expected, albeit in a slightly Soviet way). Looking back through my program, I realise how few of the sessions on offer I actually attended. About a quarter of them, in fact: having four simultaneous tracks made sure of that, of course.

    More …

  • The enemy within

    Five years ago today, communists burned down the Reichstag.

    More …

  • Sort Ruby tests

    I was merging the functions of a couple of Rails controllers the other day, and started by combining the tests. For a couple of reasons, I found myself wishing for a way to sort Ruby Test::Unit test methods. First, I wanted to know if there were any test methods with duplicate names. Second, more importantly, I wanted to be able to work methodically through the failing tests—and those are run in alphabetical order.

    More …

  • Sun adopts JRuby

    I’m excited by the news that Sun has hired the JRuby developers.

    More …

  • Merry Christmas, everybody!

    Tesco seem to think it’s Christmas time, and who am I to argue with their judgement? My local branch now has half an aisle dedicated to seasonal fare like Christmas puddings and mince pies. They should put up a sign: Hurry! Only 92 shopping days left until Christmas!

    More …

  • Telling SSH your account name

    Here’s a handy SSH hint for when your remote account name is different to the local one. It isn’t an earth-shattering discovery: it’s something that I had done before, forgotten, and was just reminded of.

    More …

  • Severance

    I went to see Severance at the cinema tonight.

    More …

  • My Apple is a lemon

    A lot of people complain that Apple computers are expensive, but I’m not really sure that it’s true. Certainly, they are more expensive than the crappy £450 laptops sold in Tesco, but that’s not a particularly informative comparison. Compared to Thinkpads or Dell’s business ranges, the price of Apple hardware is pretty competitive.

    More …

  • The rise of the moronocracy

    We don’t need totalitarian governments anymore. The ignorant masses are now paranoid and stupid enough to do it themselves.

    More …

  • New flat and new bike

    I’ve had a busy couple of weeks. I moved house the weekend before last. It took me three quarters of an hour to move everything, but I still haven’t sorted everything out. The bedroom, kitchen, and bathroom are all right, though, so it’s habitable; the living room awaits the purchase of a tall bookcase to put all the books currently covering the floor.

    More …

  • A real man’s cocktail

    Quite by accident, I came across a page of beer cocktail recipes, including the amazing colonial American drink flip, made with beer, gin, rum, and heated with a red-hot poker:

    More …

  • A good idea at the time

    It seemed like a good idea at the time. Catch the Eurostar to Brussels on Friday evening from Waterloo (an easy ten-minute walk from my office), eat dinner on the way, and arrive in time for a few drinks. On the way back, I’d catch the train at seven on Monday morning, and get into Waterloo by half past eight, in plenty of time to start work.

    More …

  • Iterative development in irb

    There are times when irb’s line-based interface is too constrained for experimentation with an algorithm or other piece of Ruby code. When that happens, I usually switch to a proper editor, edit the file, and run it. It works pretty well.

    More …

  • More progress on rb2js

    千里之行,始於足下 ―― 道德經

    More …

  • Gravity strikes!

    This morning, I saw that a wall down the street had succumbed to its inevitable destiny. I’m no builder, but I’m pretty sure that you aren’t supposed to make a wall like that.

    More …

  • Mumbai duck

    Everybody has a right to pronounce foreign names as he chooses.—Winston Churchill

    More …

  • Thoughts on Ruby to JavaScript conversion

    My quick hack the other day received a lot of attention, as the graph of visitors shows. I must emphasise that it is just a quick hack, however. It does work to the extent that it can turn a subset of Ruby into working JavaScript, but there’s more to Ruby than just the syntax: non-trivial code is going to fall into the gaps between Ruby and JavaScript semantics rather quickly. JavaScript isn’t as dissimilar from Ruby as some languages, but it’s different enough.

    More …

  • Convert Ruby to JavaScript

    This is old! You should also check out RubyJS for a fuller implementation of the same idea.

    More …

  • Coincidence is a fine thing

    I wrote earlier about my 666 coincidence at school. (To summarise, I correctly predicted my next throw of three dice as being 6-6-6.) It seems freakish, but it’s not that unlikely when you consider the odds (a generous 216 to 1). Furthermore, there’s Littlewood’s law to back it up: if a human being experiences an event every second, they experience about one million events in a thirty-five-day period. Therefore, each person can expect a ‘miraculous’ one-in-a-million event about once a month.

    More …

  • In praise of granny bikes

    For some reason, mountain bikes have become commoditised and ubiquitous in the UK. It doesn’t really make sense, because they aren’t especially well suited to any task except off-road cycling—and that’s something that, I am sure, only a minority of owners actually do. Most of the time, they are ridden on the road, where their knobbly tyres make pedalling much harder, while the lack of mudguards and chain protection sartorially endanger the rider. And who would ever need 21 gears?! Two or three is surely more than enough considering the versatility of human legs.

    More …

  • Fixing invalid UTF-8 in Ruby, revisited

    When working with UTF-8-encoded text from an untrusted source like a web form, it’s a good idea to fix any invalid byte sequences at the first stage, to avoid breaking later processing steps that depend on valid input.

    More …

  • I love the World Cup

    Not for the sport, mind you. There are many things I’d rather do than spend two hours watching men kicking a ball. As a spectacle it bores me, and I don’t have the depth of feeling to participate in the tribal side of supporting.

    More …

  • Six six six

    Today’s date reminds me of a true story. Many years ago—I think I must have been thirteen at the time—we spent a maths class at school on statistics. We were organised into pairs, and each pair had three dice. We too it in turns to throw the dice and note the results.

    More …

  • Broken algorithm, or broken language?

    There’s an article on the official Google Research blog asserting that ‘nearly all binary searches … are broken’. What’s really interesting about it is that it’s not the algorithm that is broken, per se.

    More …

  • Fixing a major TextMate annoyance

    The Reevoo office is all-Mac, with the exception of one bargain-basement Windows XP box used for billing and debugging our website in Internet Explorer (to which, as regular readers will know, I bear an intense and righteous anger, but that’s not what I want to talk about today). We developers use TextMate as an editor. It’s a decent product with some well-thought-out features that really increase productivity, but it’s also hopelessly immature in many ways. In general, although I miss vim key mappings, I’m happy using TextMate for daily work.

    More …

  • Ruby on Rails month.ago considered harmful

    Thirty days hath September,
    April, June and November.
    All the rest have thirty-one,
    Excepting February alone,
    Which hath twenty-eight days clear
    And twenty-nine in each leap year.

    More …

  • Matsushima

    松島や
    ああ松島や
    松島や

    More …

  • Puzzling graffiti

    This unusual piece of graffiti has been on a wall in Amerika-mura, downtown Osaka, for years, but it’s the first time I’ve got around to photographing it:

    More …

  • Another new country

    I go away for a few days, and Europe sprouts yet another new country!

    More …

  • DRb and NSDistributedNotificationCenter in RubyCocoa

    I’m writing an OS X GUI test runner for Ruby. It’s coming along nicely, and I’ll have something to show fairly soon. In the meantime, I’m going to share some things I discovered in the process of writing it.

    More …

  • Bringing people together

    Up the road from my office, there’s a café. The sign on the front says ‘Arlington’ and, in smaller letters underneath, ‘bringing people together’.

    More …

  • Doggy paddle

    The weather in the south of England generally comes in two kinds: grey, and sunny. Contrary to received wisdom, it doesn’t actually rain that much; in fact, it rains so little that a water shortage is a frequent problem.

    More …

  • Comment spam

    I got my first piece of comment spam today. Predictably, it was for dodgy medications.

    More …

  • Malevolent technology

    I was woken by an brief but intrusive buzzing at two this morning. Before I could work out what it was, however, it stopped.

    More …

  • Intel’s second most useless invention

    It’s not quite as pointless as the WiFi surfboard, but not by much: the Intel Fender Web Guitar.

    More …

  • Chasing moving targets

    At work, I’ve spent a reasonable chunk of the past two weeks implementing an hReview parser. To briefly explain, hReview, along with other microformats, is a way to mark up a standard web page invisibly in such a way that the contents can be read and aggregated by a computer.

    More …

  • Webalizer hates Googlebot Mobile

    For reasons that are pretty much historical, I use Webalizer for analysing my web site access logs. (I’m in the market for something better: any suggestions would be welcome.) Since earlier this month, however, my statistics have been broken: Webalizer died with a SEGFAULT every time it tried to parse the access log. The culprit wasn’t too difficult to find, but it was an interesting exercise that probably benefits from being passed on.

    More …

  • Gotmail: Hotmail how you want it

    I haven’t used Hotmail for email since about 1999, but, inexplicably, people still send emails to my hotmail.com address. I occasionally check the account, usually to find that they have expired it due to inactivity. It’s hard to remember to check it, just to wade through the poker and dating spam that Hotmail’s weak spam filter lets through. Besides, the interface is dreadful and confusing. I’d like to get the useful emails in a timely fashion, but I’d rather not have to go near Hotmail to do it.

    More …

  • Big in China?

    One of my friends found my name mentioned in an article in Forbes China about in-train internet access. Unfortunately, my Chinese reading ability is very limited, but I’m told that it’s a well-written article.

    More …

  • Review: The Bug digital radio

    In order to test out the new review aggregation facilities of Reevoo, I’ve decided to write my own review. It’s also going to test the parser a bit: it’s long, and I've modified the markup a little.

    More …

  • Blue-eyed foreigners

    I can’t help but be amused by the odd outbursts of some Japanese politicians regarding the possiblity of allowing women to accede to the throne (which seems increasingly necessary in the continuing absence of any male heirs).

    More …

  • The elephant grass in the living room

    In US President Bush’s State of the Union Address this week, he identified the US’s dependency on oil—especially the kind imported from badly-governed parts of the world—as a problem.

    More …

  • Watch where you’re driving! Are you blind or something?

    I love Barry of Portsmouth’s review of a TomTom navigation device. Scroll down a bit to Go directly to Barry’s review, in which he says:

    More …

  • Following the Rails

    Like me, Leah Neukirchen has recently been making their first advances into Rails development. Also like me, they’re a Rubyist from way back, unlike a lot of people who have come to Ruby via Rails.

    More …

  • That’s not chicken!

    I love this menu for a South London pizza delivery place:

    More …

  • I’m back!

    With the exception of a couple of sets of photos (which I can easily replace), I’ve been able to extract everything essential from the image of the crashed disk.

    More …