I downloaded and watched the first part of the first lecture in the Structure and Interpretation of Computer Programs series today. It was very basic intro stuff, but I did find a few things interesting.

One was that Hal Abelson isn't a bad lecturer, but I always assumed that he'd be downright excellent. He's pretty good, but not perfect -- it makes him seem much more human. :)

Another was that Abelson was saying "Lisp" where he meant "Scheme". Granted, the videos are from the '80s -- he may have rightly thought that Scheme would become the dominant flavour of Lisp. It's still interesting, and something I'm going to have to point out to anyone new to the Lisp world that I point to those videos.

The third amusing thing -- the clothes. Especially the collars. I had to laugh.

Trying to balance capability v. simplicity is difficult. ICLIU will be going on the side of simplicity -- after all, they are meant to be simple tools.

That being said, however simple, they will still need documentation -- does anyone know a good manpage editor? Or a good system for getting from LaTeX to nroff -man? Text docs are good (and coming into being), but nothing beats a good manpage with a utility.

Life has a certain ability to get in the way of good intentions. The new docs aren't up on SF yet, and the webpage is still an empty directory. Both of these have to be fixed sometime soon. Work will keep me busy until at least Sunday, so it won't be until after then.

I'm back to my old tricks, and feeling much better about it. Proper documentation for the urls util will be up by the end of the day, with coding starting sometime today.

Next on the list will be the timeclock utility, which will be named tc unless I can find good reason not to. The timeclock reporting utility will be tcr. Docs for those should be up in a week at the latest.

Modules vs. the easy way

The Python modules related to time and time calculation seem like naturals for tc and tcr, but the more I think about it, the more convinced I am to just keep track of things internally in standard Unix time format (seconds from the epoch).

Is there any reason why that's a bad idea? I would assume that Windows and Mac OS 9 have different epochs (in fact, I know they do), but I believe Python reports everything as per the Unix standard?

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.

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.