What everyone seemed to get wrong about the Bitcoin crash

July 4th, 2011

It was certainly a dramatic story. On 19th June, a matter of weeks after the anonymous crypto-currency Bitcoin began to make waves in the wider world, it experienced a crash that made the 2010 Flash Crash look like a blip. Bitcoin critics, even the normally measured Tyler Cowen, couldn’t resist a bit of self-congratulation. When things seemed to have settled down a few weeks later, the commentators started to ask whether Bitcoin was recovering from the crash.

The thing is, there never was a currency crash. There was a security breach at Mt Gox, one of the largest Bitcoin trading houses, which had dire consequences for their customers. But the journalists who wanted to analyse the impact on the Bitcoin market didn’t get any further than tracking the prices at Mt Gox, the very exchange that had just been cracked, and in the process mistook a bank run for a sovereign default. Limiting their view to this, it looked like the Bitcoin economy was in ruins. Looking beyond the Mt Gox exchange even briefly would have shown the rest of the economy was largely unaffected. Retailers continued retailing, exchanges continued exchanging, and coins that weren’t in your Mt Gox account were as safe as they ever were. If you considered Bitcoin to be a reasonable medium of exchange on the 18th of June, there was no reason to change your mind (though double-checking your encryption and backups wouldn’t be a bad idea).

There seems to be one sensible message to take away from the Mt Gox crash: the cyber-criminals have arrived. If Bitcoin ever was lucky enough to fly below the criminal radar, it certainly no longer is. Optimists will probably say that this moment was inevitable, and may even validate how seriously it’s being taken.

Bitcoin has very real, very interesting economic and usability difficulties that probably mean it will never be a viable currency. Suggesting that the recent security flaws in a single exchange undermine it is just lazy journalism.

Why I was wrong about Ruby on Rails

June 20th, 2011

“[Rails] gained a lot of its focus and appeal because I didn’t try to please people who didn’t share
my problems.” — David Heinemeier Hansson

I always used to maintain that Ruby on Rails was a blight on the world of software development that wasn’t just making individual sites worse, it was making developers worse. Yet here I am a few years on, having chosen to develop my new web application in Ruby on Rails. What gives?

Some of my criticisms still hold up. Rails still encourages beginners to think of every single data-storage requirement as a nail waiting for the hammer of active record. It’s still too easy to write code that doesn’t scale. Above all, while the tutorials are blissfully easy it can still be a hard slog learning what’s going on under the hood, so that you can do more than just cut and paste tutorial code. I believe Rails has improved on each one of these points, but not yet enough for my liking.

Yet I was wrong about Rails, and part of the reason I was wrong goes back to a truth I’ve always held to be under-appreciated: when you choose a technology, you inevitably choose a community at the same time. The Rails community may border on the smug from time to time, but it also seems to have an above-average number of developers who are smart and get things done. Developers who aren’t just happy to do things the same old flawed way, but want to find a better way, and make it work for people. Above all, they deliver solutions that work now, not promising-but-currently-flawed solutions. This was typified by my serendipitous discovery of Timecop, a library that makes testing of time-sensitive code about as easy and effective as it could possibly be. Any language could solve that problem, but in Rails I have a solution right now, with no fuss (yes, I’m sure this particular example is solved in lots of other web frameworks too).

None of this is about the language per se. Rails isn’t better than Zend Framework because Ruby is better than PHP (it is, but the differences come up surprisingly rarely). Rails is better than Zend Framework because Rails has a complete suite of solutions for DB schema management, functional testing, unit testing etc., while Zend Framework plays catch-up. As far as I’ve seen, PHP has nothing to touch Heroku for ease of deployment.

Web development certainly has different challenges from all other development environments. I used to worry that statelessness was a major problem, and I felt that continuation-based frameworks like Seaside and UnCommon Web held the most promise for resolving this. I was wrong, to the extent that while state is consistently a problem there’s a “good enough” solution in the form of MVC, while streamlined automated functional testing of web apps (which Rails does admirably with a test suite based on CSS selectors) brings massive benefit right here and now, rather than in a utopian future.

A polar bear walks into a bar…

June 19th, 2011

…and says to the barman, “I’ll have a gin ……. and tonic please.” The barman asks, “Why the big pause?” “I’m afraid I have a minor speech impediment”, retorts the polar bear, “and I feel it’s a bit insensitive of you to draw attention to it.”

In my case, the big pause in posts has gone on for two months now. In fact, I’ve been busy with another project, which ironically is a time management tool. I don’t intend to let this blog lapse entirely, but right at the moment I’d rather do one side-project well than two badly.

If you’re interested, please head on over to TaskMaster and let me know what you think, either here or at the feedback forum. It’s at an early stage, and is at least a week or two away from being ready for ordinary users (there’s very little documentation at the moment, so it’s probably not obvious how to use it). I’ll update here and on the TaskMaster blog when there’s some significant progress.