Older blog entries for AustinBlues (starting at number 1)

Wrote some macros to sit at the end of the virtual function tables and complain at compile-time (best) or run-time (okay) if not all entries are initialized. This is the biggest single source of bugs. The first half-dozen classes were clean and I began to wonder if I was closing the barn after all the horses were gone. However, they weren't all gone. Caught a couple of other errors too. Also updated most of the classes to use the new inheritence conventions and mechanisms. It took all day and probably saved 3-5 days of catching them by hand.

Maybe I should have spent more time up front on the inheritence and virtual function table mechanisms. Don't think I could have anticipated all the problems. Even hindsight isn't perfect.

I need to figure out how to get the regression tests into the distribution. Probably imitate some package like libxml that is already doing it. Also need to figure out how to make --with-z and --without-z really work, even if libxml doesn't. Wish there were more docs, examples, and tutorials for the GNU build tools, including the standard/usual M4 macros.

Next time I go looking for a job, I am going to interview the code too. I am getting too old to struggle years to find my way around 200KLOC of undocumented code. It takes too long to start becoming effective. Of course, getting on a new project is another possibility.

It is a nice contrast, I have a day job with no documentation and few comments, and a side project translating Java to C. The Java code has fairly complete JavaDoc comments, good additional comments, and some additional HTML docs. Finding my way around it is straightforward.

The day job code probably will take 2-3 years to really know my way around. Of course, if I split, that knowledge goes with me. This product is just hanging on and needs new features, bug fixes, and visible progress to stay alive. There will probably never be the time & money to really document it. I expect this is a description of a project that has already entered its death spiral.

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!