Hello, this is Jan Lehnardt and you're visiting my blog. Thanks for stopping by.
plok — It reads like a blog, but it sounds harder!
In the spirit of April 1st — only the other way around — I’d like to disperse a spoof I’ve been working on for quite a while now. Last autumn I began to tell people about a new, revolutionary database called “CouchDb”.
I explained CouchDb’s advanced design and state-of-the-art feature set, leaving everyone with the impression that a lot of technical problems that exist within traditional database systems have been taken care of. For example, CouchDb’s on- and offline replication feature is the basis for a super-easy to implement load balancing and high availability system. Two problems with one solution. And nobody objected.
Another feature I invented was that CouchDb would never overwrite data that was on disk. It would only append data to the database file. And if that wasn’t enough, CouchDb would write the database header data twice. If a crash would occur before the first header was flushed to disk (leaving it damaged), the second (older) header would be used, when CouchDb is restarted. The latest change would be lost, but there would be no need for a consistency check. CouchDb would be instantly on, because besides checking the first 4k of a database file (a single head seek for the hard drive), nothing would have to be done. If the first header made it to disk, but the second didn’t, the first would be used on restart and the second one would be copied over from the first. Due to that design, CouchDb has no real shutdown sequence. It is just turned off. *cough*
This design came, so I said, from the language and runtime environment in which CouchDb is written: A toolkit named “Erlang” that was supposed to be created at Ericsson. The language is functional and the runtime environment makes creating threads very easy and lightweight. You code up modules consisting of a set of functions (think object without instance variables) and they would be called running in different threads. Allowing massive concurrence (Note: Ericsson is a telephone company, they “need” that). I even registered erlang.org, put up a mock site (mostly copied from various sources) and even produced an erlang ebuild for Gentoo linux, knowing some folks would want to try things out instantly. And they did, so that worked well.
I went on to tell about the REST API (“HTTP proved itself scalable over the years”). And that for now XML would be used to pass queries and results back and forth, but that eventually JSON will be used to do that, making CouchDb much more useful for today’s world.
For search, I claimed Lucene to be integrated already and that seemed to make everybody happy. And the fact that you can plug in other text indexers if you like, was well received, too.
Then I published some “demos” I said I’d have built on CouchDb; a simple bug tracker and a threaded discussion board. I explained how easily tree structures can be created (for the discussion board) compared to SQL, to show that there’s an actual advantage of using CouchDb. I even showed some code (~300 LOC per project) but no-one noticed that in fact they were powered by MySQL — phew.
On top of that, I invented the original author of CouchDb, a dude named Damien Katz. He’s supposed to have quit his job working on Lotus Notes (yeah, sure…) and started working on CouchDb fulltime for two years now (of course…). All this while supporting his family (heh). And after all the hard work, he published the code under the GPL license. They might have thought that this sounds so unlikely that they could as well take me for granted.
I even gave a presentation at the PHP usergroup Dortmund a few weeks ago. Again, nobody was suspicious enough to question the whole thing. I wonder how long it would have taken that somebody found out. I mean:
I got a contract as a fiction author last week and I won’t have the time to maintain this farce anymore and this is such an appropriate date to blow everything up. So, good riddance, CouchDb.
And I did trust you. I am so disappointed now! The concept sounded so awesome! Perhaps someone could start implementing such a thing? ;-)
Now history: Jan, the guy putting insane effort into an april’s fool joke.
applause applause applause
I even blogged about the it and expressed my critic on it.
Now that’s worth a page on wikipedia!
VERY WELL DONE! YOU MUST HAVE NO REAL LIFE! (just kidding)
Anyway, the concept for having a very easy to use RESTful interface to an hierarchic XML database for documument storage and so on still sounds good to me. It’s also compelling to the idea of a semantic web.
I believe everything you said. Just one question. I bought a beer for some guy claiming to be Damien Katz at Lotusphere last year. Was it actually Tom Cruise or just a professional look-alike?
Hah. Well played.
The concept is still interesting, though. What’s so wrong with a document oriented system?
He fooled you. CouchDB really exists and is in the worx. We are working with a major telecommunications company as a POC and await positive results followed by a more formal announcement.
"I even registered erlang.org, put up a mock site (mostly copied from various sources) and even produced an erlang ebuild for Gentoo linux, knowing some folks would want to try things out instantly. And they did, so that worked well."
haha, I’ve been a proud owner of your apparently fake/stolen beta book listed on the front page of your fake erlang.org site :p
Seriously, erlang has been one of the most powerful programming languages I’ve come across. =)