Author Archives: Tom Davies

How to increase your Ycombinator Karma without really trying

A New Blog

I’ve recently found myself not blogging because I didn’t wish to inflict the posts on Planet Atlassian. So now anything non-technical which I don’t think is of interest to subscribers to this blog (Hi to both of you!) appears here.

ICFP2008 Programming Contest

Along with some colleagues I entered the ICFP programming contest this year.

You can read some more about our experience at Matt’s blog.

I thought the problem — guiding a Mars rover to a goal amongst obstacles — was very well chosen. It was possible to navigate the example maps with very simple software, so everyone could [...]

Take Two

I’m much happier with the second version:

out3 a = let renderGroup g = let char = head g; [...]

Dustin’s Programming Problem Take One

My colleague Matt Ryall wrote about this simple algorithm for marking up a series of letters — which is complex enough to be interesting.

I wrote a version in CAL:

arr = ['a', 'b', 'c', 'c', 'd', 'e', 'e', 'e', 'e', 'e', 'f', 'e', 'f', 'e', 'f', 'a', [...]

Project Euler for non-mathematicians?

This site has potential to be quite interesting, depending on the quality of the instructions.

It may also self select an interesting group of people — I wonder what a version of Slashdot which only those people knew about would be like?

Crowd Authentication for Google’s AppEngine

The launch of Google’s AppEngine has given me the obligation to find out what it’s all about, and the opportunity to learn a bit more about one of our products, Crowd — and, of course, pick up some Python along the way.

I began by working through Google’s Guestbook example, and then replaced its use of [...]

A CAL webapp with persistent data using GWT, STM and BDB

aka, attack of the TLAs.

This webapp’s architecture is depicted below:

The browser runs a Javascript thick client compiled from Java by GWT. Some of the classes have CAL annotations. These don’t affect the client, but allow the server side of the GWT RPC protocol to call CAL functions. The CAL functions store persistent data using Software Transactional [...]

GWT as a CAL client

I’ve been interested in GWT as a way of building rich Internet applications since it appeared, and I’m very pleased to see it getting better and better.

So it’s natural that I’d want to try using it with CAL, a functional language quite similar to Haskell which runs on the JVM.

I used a similar approach to [...]

Fuel Additive Fun

Fuel additives seem to be the most popular science-based scam outside of alternative medicine.

I’m not sure whether the promoters primarily make their money from investors or customers, but it seems that there’s enough money in it to keep a steady stream of ‘inventions’ coming.

The press (or ‘mainstream media’ as us bloggers call it) loves the [...]