Thursday, October 28, 2004

Geek Test

A friend passed on one of those online geek tests to me, which my wife proceeded to take for me. Frankly, I was not too shocked when my score turned out to be 42.99%.

Further confirmation of our geekiness came when we spent the evening standing in the dark in Prospect Park, waiting for the lunar eclipse.


Tuesday, October 26, 2004

GMail

Jon Udell just posted an article about GMail, where he says:

Because Gmail’s behavior is embedded in the UI engine, all subsequent interaction between the browser and the Gmail service is just an exchange of data. What Hwang calls the DataPack format is not XML, though; it’s JavaScript. When you make a request to the Gmail service, whether to refresh your inbox or to modify the list of labels you can attach to messages, the response is a minimal set of JavaScript function calls and associated data objects that the engine uses to update the display.

This is the very first thing that I noticed about GMail, and it continues to amaze me whenever I use it. I have to imagine that the GMail architecture is extremely scalable.

Tuesday, October 19, 2004

Wormholes

Bill Caputo talks about wormholes, which are passages that transport implementation details through your layered architecture.

Martin Fowler follows up, talking about Data Transfer Objects, which are "an object that carries data between processes in order to reduce the number of method calls."

So what's the big deal?

I think that a layered architecture is great, so long as it buys you actual decoupling. If a layered architecture only buys you more layers, it is time to rethink the architecture.

Monday, October 04, 2004

Cleverness considered harmful

Chris Sells posted this quote today:

"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it."
--Brian Kernighan


I tend to carry around a toolbox of not very clever, tried and true, techniques that I trot out for nearly every problem. This is probably a little reductionist, but it keeps me from getting into trouble. I used to get in trouble a lot.

When I find things are getting complicated, I know this is a sign that I don't really understand the problem. Sometimes, though, you need to write clever code to get to a place where you know enough to simplify it.

Still, this is a great acid test. If you find that you are stretching your mental limits just to write the code, then what chance do you have to maintain it?

Sunday, October 03, 2004

Moving my blog

I have had a similarly titled blog on bloglines for some time, but bloglines does not present a very easy way to edit this blog, so I am moving over to Blogger.

The topic of this blog is computer programming, but I will probably avoid talking too much about the various technical tips and tricks that are covered so throroughly elsewhere.

I am more interested in design techniques, project management, and the little things that make the day to day slog through coding fun, rather than a chore.