Edward

@edwardstanfield

Building a cupboard

In response to Ayende’s code review of Resin, part II.

RavenDB, a fine cupboard. http://www.indigofurniture.co.uk

I had a piece of board lying around and one day I decided to make a cupboard. I sketched one out roughly and then told Oren Eini I’m building furniture, need a tutor and asked, will you be that?

I didn’t used to know him. I just figured, wtf.

Sure he said, took the drawing out of my hands, hastily examined it, then gave me a short list of things to think about:

Your cupboard is surely a cupboard, but it has no legs. I would add legs. Your drawer opening mechanics will erode eventually. I would use other materials. Your closing mechanics, well, there are none, right? You’re not quite done here, it seems. And here, take this sanding paper. It’s for later.

A little over a year went by. I worked on my project and shamelessly pinged Oren every 3–4 months with a short message about where I was at, which decisions I had taken and I always got back a list of things to work on next. Our communication was twitter-like.

“Hey Oren, I can do range search.”

“Cool. But what happens when there are many writers? How do you manage updates?”

“Fuck. Alright, catch you next quarter.”

Resin Release Candidate 1. Hey Oren, is this a cupboard yet? (image from http://maplevillesproducts.com)

The critique I heard

  1. Untrustworthy timestamps
  2. Code-readability could be improved
  3. Invalid use of file system to aquire virtual locks.
  4. Creating an expression tree from a lambda statement is a non-zero cost operation and the use of those are excessive throughout the codebase

See you in the comments section.

More by Edward

Topics of interest

More Related Stories