September 28, 2005

The Cathedral and the Bazaar

This is a response to Eric Raymond's essay, The Cathedral and the Bazaar.

I have been an open source fan for a long time. Probably since I was a "Mac Evangelist" (Guy Kawasaki's email list in the late 90s), I, without paying too much attention to the fact that Apple's technology was highly proprietary, came to be repulsed by Microsoft's proprietary software and disregard for (web) standards.

Of course, I really just came for the free software. But also, ever since I started getting online in the mid-90s I was interested in coding and kept coming into glancing contact with open source communities and being interested (and confused) by what they were doing. When I lived in Boston in 2003 I even worked for a non-profit technology/activist group that was promoting open-source software solutions for non-profits. We put out a CD full of open source software. The office that I worked in was a floor above the offices for the Free Software Foundation (GNU).

So for me, Raymond was really preaching to the choir. His words reminded me a lot of another interestig hacker type, Paul Graham, who wrote Hackers and Painters, a collectin of essays on code-writing, creativity, marketing, open-source, and so on. Graham also said that, when he was working on his web startup, it was very important that he be able to release new features nearly every day, both to stay ahead of the competition, and to keep his users coming back for more.

And this idea of speed as becoming paramount, especially in the digital domain, reminds me of what Ze Frank spoke to my Applications class about on Tuesday. Frank was also saying how important it is to kind of always be innovating and coming up with something new.

Posted September 28, 2005 02:49 PM. Categories: Week 3 | Permalink

September 22, 2005

Reusable Code, Encapsulable Complexity, and CSS

This week we started talking about building reusable code blocks: functions, classes, etc. One of the primary advantages of doing so is that you can make one change to one line of code, and have that change deployed everywhere throughout your program. For instance, if you have a Ball class that creates a green ball, and you have 30 instances of that green ball in your program, you can change the color of all the balls just by changing one line of code in the class definition.

It had never occurred to me until yesterday afternoon how, in this respect, stylesheets are able to do exactly the same thing. I can change the background color of every single page of my site by changing just one line of the CSS file.

I don't know if CSS was developed specifically for this one-to-many power, or if it was developed to be able to semantically divide the web form from content, but it struck me as an astonishing parallel between two things that really aren't very similar.

Maybe it's part of human nature that we inherently seek to optimize. Maybe our brains do this thing all the time where they store "masters" for different kinds of information and the brain is able to change its definition of the master once and every other memory we have that is related to that master is changed.

Yes, that actually sounds like it is a good description of the way we think. If I told you the sun is actually a disc, not a sphere, and that it was about 4 inches across and alwyas about 2 feet out of reach, you could change your definition of sun (if you believed me), and every memory you had of tanning on a beach would be affected, without having to go through all of those beach memories.

At least, I think that's what's going on.

Posted September 22, 2005 01:14 PM. Categories: Week 3 | Permalink