Wednesday, December 29, 2004

Feedburner

A colleague has recently switched his rss feed over to Feedburner. I will be very curious to see how this experiment pans out.

Tuesday, December 28, 2004

RSS 0.91 was born on this day in 1997

Danny Ayers notes that today is the birthday of RSS 0.91.

I remember Microsoft's CDF format and the promise of push technology. I think that "push" fizzled out because dynamic languages, like Python and Ruby, hadn't quite arrived.

With Python's urllib, I can easily play around with XML over in HTTP, whereas doing the same thing in C++ is almost painful.

Your ability to absorb a new idea is directly related to how quickly you can play around with that technology. Expensive, difficult to implement, technologies will never get the mind share that you can get from something which is truly simple.

RSS 0.91 is that simple.

Thursday, December 23, 2004

Infrastructure projects

In the TOC message group, Ron Jeffries made this amusing observation:
"We probably all know of infrastructure projects that have developed huge staffs, gone on for years, delivering nothing and ultimately coming to nothing. Those of us who don't know about these projects should report the color of the sky on their planet, for the benefit of those of us on planet Earth. "The taxi business"

I have to concur. Whenever a project does not target a specific user, but delivers a more nebulous infrastructure, it is highly unlikely that anything will get delivered.

Tool vendors get away with building infrastructure, because at the end of the day, they won't eat if they don't build something that they can sell. Internal infrastructure projects have no such limitation.

Thursday, December 09, 2004

Dynamic Languages and C++

As I read Tim Bray's blog last night, I wondered if plain old C++ had a particularly compelling story to tell in the dynamic language space.

It seems like .NET and Java have a leg up on C++. Yeah -- I know you can write Python extension in C/C++, but you have to do extra work. It seems like with Java and .NET, you get this stuff "for free".

BTW, don't you think that Sun had an ulterior motive in inviting these dyanmic language gurus to their campus? To build up some street cred perhaps?

Monday, December 06, 2004

Tips for using del.icio.us

I have become a big fan of the social bookmarking site del.icio.us, as you might have guessed, so I thought I might share some tips that I had.

In Getting Things Done, David Allen talks about processing your inbox, which may be either a literal or metaphorical inbox, by periodically purging it. Every item in your inbox gets filed as either a to-do item, reference material, or gets sent to the trash.

Whenever I encounter a link that I find even slightly interesting, I file it under the tag "toread". If I think a link might be worthy of a blog entry, I tag it as "toblog".

Sunday, December 05, 2004

Precious Thoughts

I have a moleskine notebook, and yet I hardly ever write anything in it. It is a beautiful little book, that has this incredible feel of permanence when you hold it in your hand. Every time I open it, I imagine that I am writing something that my grandchildren might one day read.

So, of course, I hardly ever write anything in it.

It is not that I don't value my own thoughts, but that I find it exceptionally difficult to think while simulatenously criticizing what I am thinking. I can only manage to write anything by first spewing out everything in my head, and then going back and editing the resulting mess.

Programming is a lot like writing. It is hard to get everything perfect the first time around, so you hack things out the best that you can, and then make a second pass, fixing the mistakes you made the first time. You only get into trouble when the decisions you made in that first pass are difficult to change, like the notes in my moleskin.

So here is yet another way to define the term "loosely coupled":

Your code is loosely coupled, when you have contrived to house all of your difficult decisions in their own components, so that you may change those decisions without having to touch any other component.