December 26, 2008

Briefly

Briefly this evening, I thought about spending some time playing around with Processing.

I'd take a few days, learn some new stuff, create animations that do nothing in particular but look cool, set it to some music. I have lots of ideas I want to explore, things that I think will look interesting and cool and maybe interactive. A toy someone can play with.

I'd get better, develop a following, buzz, excitement, yada yada. Eventually I'm like a Processing guru, making wicked cool animations at a whim. Sounds neat.

But when would I start this? Hmmmm. How about, do it fucking now? Ok, sounds good.

Go to the website, start looking at some code. It all looks interesting and approachable. Cool.

Hmmm, wait. Should I really be fooling around with this? I really need to do the replication testing for the new security features of CouchDB. For some reason I don't want to. But If I can fool around with Processing, then I clearly have the mental focus necessary to do the tests. The replication tests need to be done, then I can work on the Lucene integration and get closer to 1.0. So then I decide to fire up TextMate and have at it.

But before I do, I have this idea for a blog post. The CouchDB testing work will have to wait...

Link

December 25, 2008

Arrays, What's the point? Good Question

As I'm programming I haven't seen an instance where an array is better for storing information than another form thereof. I had indeed figured the added "features" in programming languages had improved upon this and by that replaced them. I see now that they aren't replaced but rather given new life, so to speak.

http://stackoverflow.com/questions/392397/arrays-whats-the-point

I saw this on Reddit, and the reaction wasn't kind. Most of the discussion centered around how it was such a dumb question, and what is it that has failed in our educational or professional communities that such basic knowledge isn't known. My initial reaction, unfortunately, wasn't much different.

But then as I thought a little more about it, I realized it really isn't such a dumb question. I found I really don't use arrays in Erlang, they aren't necessary. In C and C++, I used them all the time, you pretty much have to. But in Erlang, lists rule the day. Erlang has facilities for arrays, but the closest thing I use is small fixed-sized tuples. It's weird, but until just now I never really noticed how little I use arrays any more. The only place I can think of ever using them in Erlang is in the CouchDB btree code for doing binary key searches.

The truth is, unless you are doing low level programming, arrays (or even vectors) are rarely necessary or even optimal for most coding problems. The most notable feature of arrays are constant time access to any value given it's ordinal key. The problem is few programming problems call for a structure that gives them constant time access to ordinal mapped values. Most uses of arrays are just as a collection of values, and can be better satisfied with a list.

Link

My Development Methodology

Try real hard.

Expanding that out a little: Sweat the small stuff, sweat the big stuff, question everything, panic, don't panic, throw out everything, change focus, stay the course, tell everyone, tell no one. And above all, try real hard.

That usually seems to produce good results. YMMV.

Link

December 3, 2008

Interview at Rubyfringe

Here's a video interview I did at Rubyfringe. Enjoy.

http://www.infoq.com/interviews/CouchDB-Damien-Katz

Link

Major Award

I recently won Erlanger of the Year at the Erlang User Conference 2008 in Stockholm.

I couldn't go to accept the award in-person, but here's a picture of me accepting it from my daughter, in a small ceremony at home.

award.jpg

It's an honor and a surprise to win this award. I hardly feel deserving, Erlang has been a key part of the success of CouchDB and it's such an astonishingly good match I was lucky to have discovered it when I did. Thanks!

Link