About 5 years ago, when I was working for one of the several nutty startups on my resume, this college student named Seth called me up and asked for a summer job. He seemed pretty clueful to me at the time (boy, was I right about that), so I figured he’d be a good addition to our little group.

A few days later ,this guy named James rang up and said something like, “Hi, I’m a friend of Seth – can I have a job too?”. He caught me at a very busy and stressful time, so we chatted for about 3 minutes before I agreed to hire him, partially because he seemed good and partially because I was too preoccupied to think too hard about it.

Round about this time, the CEO wandered down to our offices and said that he’d promised a website to some national association by the end of the week. Um. Ok. Try not to strangle him.

Simple website. Should be easy. We just need some way for non-technical types to post surveys online, collect data and summarize results. You’re a dead man.

But thank God for interns. James got that assignment. I remember saying to him that the software he was writing would probably outlast the company, so he should go ahead and put it up on

Fast forward to Jan. 2005: I think this is the second time that James’ survey software, phpESP, has been featured in eWeek since then. Congrats, James, on starting a useful project that has survived all these years.

Whirlycache benchmarks

I put up a benchmark graph showing how Whirlycache performs with 20 concurrent threads doing 50% read activity earlier today on the Whirlycache site. Here’s the graphic for your viewing pleasure. I also added a caveat about the usefulness of benchmarks right on the Whirlycache homepage, so please read that before you blast me here.

Whirlycache benchmark

I can summarize: when you have a lot of threads going against a particular cache implementation containing a lot of elements, Whirlycache will basically always come out on top. Obviously, it doesn’t have all of the features that some of the other caches have, so there’s a tradeoff that may be important to you.