Hardware cool

Looks like Sony are finally going to launch a new e-ink based book reader onto the western market. The “Sony Reader” is a successor to the japanese-only Librie (which I pined for a year ago). I don’t understand why there hasn’t been more products based on the e-ink technology yet. It obviously works fine, and the rest of the hardware is pretty vanilla stuff. What’s the holdup?

Now is then when then is now

Zeitgeist, through the medium of tools and bookmarks:

The tools I couldn’t live without in 2005: mythtv / web developer toolbar / live headers / nxml-mode / aliasadd / sed/grep/sort/uniq / unison / freemind

Neat stuff I found this year: iftop / dnstop / dbtoy / wmctrl / metalog / clamav

Thank you delicious and bloglines for that magic “where did those 3 hours go?” effect.

Quote of the year: “I’m very excited. I’m just hiding it well.”

And, courtesy of firefox’s “sort by add date” in bookmark manager:

January: DIY high-altitude glider
February: Edinburgh in 1844
March: Continuations for the web
April: Looping over filenames-with-spaces in bash
May: The world is not round
June: South Pole blog
July: Student’s T distribution
August: The Hammock wiki
September: Francis Crick profile
October: High-speed video of pool shots
November: Bad cookies in firefox
December: Programmers need to learn statistic, or I will kill them all

A link to LINQ found via links

Microsoft TV have an interesting program about their LINQ project. It’s somewhat similar to parts of Phil Wadler’s LINKS project (from whom I found the link in the first place). The aim is to shrink the gap between general purpose programming languages and data query languages. It’s well worth a watch. They’re got these crazy things new things called lambdas, which they use to perform map and filter operations over collections (gasp). But the nice thing is that the query code you’d use to find an element in a linked list can also be used to query rows in a SQL database. There’s some neat stuff happening behind the scenes. They also make use of a new (well, new for C# anyway) kind of variable declaration: var x = "foo". This declares x to be a statically-typed variable, whose type is established by the compiler using type inference. Sound familiar yet? Finally, they’ve also introduce a ruby-style ability to open up an existing class definition and add new methods to the class. This allows them to add new methods like ‘where’ and ‘orderby’ to existing collection classes, without requring the original source.

Staying on the web theme, I got a lot our of reading Brad Fitzpatrick’s description of how the LiveJournal site is laid out behind the scenes.

Amazon / UndoDB / concurrency

Amazon.com’s Scottish developer center is expanding and hiring lots more developers and team leads. It’s located next to the Forth Road Bridge, near Edinburgh, and close to all the major traffic links. It is a very cool place to work, and the office has a great atmosphere. You’d be working on the software which underpins one of the world’s largest e-commerce sites. The massive scale of things makes the job exciting – massive traffic levels, extremely high reliability requirements, and demanding real-time requirements. If it all gets too much, chill out in the games room and shoot a few games of pool. If you think you are up to the challenges, please look through the recruitment site and mention “Andrew Birkett’s website” as your referral. 🙂

Speaking of companies who are doing cool things, check out Undo Software. They have built a time-travelling extension for the gcc debugger under linux. Pretty cool stuff, similar to the ocaml time-travelling debugger. If you are a C/C++ programmer who is a bit jealous of all the cool toys you get for other languages check it out.

One Renegade Cell

I’ve just finished One Renegade Cell. It is probably the best pop-sci book I have read. The book provides an overview of how our understanding of cancer has developed over the last few decades. It reminded me of the “Double Helix” book by Crick and Watson, in that “science” is portrayed in a very honest manner – filled with dead-ends, misunderstandings, chance discoveries, persistence, hard work and dumb luck. I found it quite easy to read, since each new concept is introduced only when needed, and explained in context.

Also, the book contains some classic lines, such as “the colon provides an embarassment of riches” and “our understanding of metastasis is still fragmentary”.

As a computer scientist, I couldn’t help thinking of the problem in terms of reverse-engineering binary programs. I’m evidentally not the first to think in these terms. Reverse-engineering a well-written program is difficult enough, but understanding cancer is more akin to reverse-engineering some multi-threaded spaghetti code.

The book drills down from a high-level epidemological view of cancer, right down to the level of bases and proteins. The book finishes off down at this low level, and this left me feeling that I had seen the static structure (DNA and enzymes) and dynamic structure (proteins synthesis and chemical message pathways) of human cells. Well, not just some anonymous ideal “human”, but my cells too. But now I’m intrigued as to what makes “me” different from a bundle of cellular clockwork, dumbly following the laws of chemistry/physics. There’s no need for consciousness in the clockwork world of cell biology.

I often look at flies flying around in their weird “go straight then change direction after a random time” manner and wonder if they are just essentially chemical finite-state machines. And perhaps, someone might look at me and imagine that I too am just a chemical finite-state machine! And I might not have an easy job convincing them that I’m not. But even thought there’s plenty of basic chemistry going on inside me, that’s not the whole story because there is a “me” here looking out.

Ah, so I think I’ve talked myself into buying a second book from the “Science Masters” series – How Brains Think!

In other news, Susan and I got married earlier this month. Woo! 🙂