Older blog entries for kjwoo (starting at number 1)

Observations on functional decomposition and specification

If you choose to pursue this avenue of planning software development, make sure you do it on a huge project. I've just given up trying it on a small one -- it feels like it's turning the small project into a huge project. I could have coded and released the darn thing in the time it's taken me to specify half of it accurately.

That being said, I will be going back to my old ways with the Inukshuk CLI Utilities -- and those who are interested will see results much more quickly.

Inukshuk CLI Utilities

Doing a little here and a little there on the planning docs for Inukshuk. Exploring functional decomposition as an alternative to my usual "just start coding" approach. It's interesting, but also feels redundant. At any rate, it's something I want to incorporate when next I teach folks how to program -- especially for beginning programmers, I think it's important to have an idea what you're going to code before you go off and do it.

I have Tuesday and Wednesday off, so with some luck I will get the planning docs for the bookmark storage program finished, and actually get to some coding, beyond the getopt() stuff I've worked out so far.

getopt() and friends

From the live and learn category: getopt() is your friend. For many years I couldn't see that -- I insisted on parsing command-line arguments myself. I figured it wouldn't hurt to give getopt() a try for the Inukshuk utils, because as it is I'm exploring a different way of writing code and a different programming language (Python). It's quite handy, and I'm sure I'll be using it much more.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!