Posts for January 2009

2009-01-01: 2008 reading in review

This year was a rather poor year for reading quantity, unfortunately. For the year, I only finished 68 books, the lowest yearly total (by quite a lot) since I started writing reviews and 12 fewer than I was vaguely aiming for. I also made little progress towards finishing another group of award winners, although I did read all of the Hugo nominees again before the voting (and, in a delightful surprise, my favorite book actually won).

The low reading count was for a variety of reasons, some good and some bad. On the good side, things eating into reading time included playing more video games, watching the Summer Olympics, three great visits with close friends, and getting engrossed in photography. Those are all good reallocations of my leisure time, and I don't regret them.

On the bad side, last year was an extremely stressful year, and my reading volume was low some months because I was working over 50 hours a week or for some other reason feeling too tired and too stressed to concentrate on reading or take time for it. That's something that I hope to fix next year. Given that much of my stress, as always, is feelings of obligations, I'm not setting a reading target. I hope to continue increasing the time I spend playing video games, which will cut into reading. The goal instead is lower stress and more focus on making time to do what I feel like doing, including reading.

This year, I read only one book I rated 10 out of 10: The Yiddish Policemen's Union by Michael Chabon, which won both the Hugo and Nebula awards. This is an alternative history novel rather than a typical SF or fantasy story, which makes it all the more surprising that it won both awards. It's an excellent book with a wonderful sense of personality. I recommend it to both SF fans and fans of mainstream novels.

The non-fiction highlight of the year was my discovery of George Orwell's writing outside of the novels that people read in school. I read three volumes of his collected non-fiction works, the non-fiction Homage to Catalonia and The Road to Wigan Pier, and the novel Animal Farm, all of which were excellent. I'm planning on reading the remaining volume of his collected non-fiction and all the rest of his novels.

Also in the notable non-fiction category were Nassim Nicholas Taleb's The Black Swan and Fooled by Randomness, non-fiction books about randomness and markets that anticipated the economic crash in the latter part of the year. Notable novels were Barry Hughart's wonderfully witty Bridge of Birds and Jo Walton's Half a Crown, an excellent conclusion to her Small Change series. I also thoroughly enjoyed reading through the rest of Steven Brust's Vlad Taltos series and all of the Khaavren Romances (the last of which I'm halfway through as I write this).

There is also a version of this post with additional statistics that are probably only of interest to me.

2009-01-01: Reaching


A day of reaching for distant things, in several different ways.

It's the beginning of a new year, and the number of other people using it as a time for reflection always sparks a bit of that for me as well. I don't like making resolutions: the additional sense of obligation just adds stress and makes it less likely I'll successfully follow through. But I do like working on mindsets, imagining what the year might be like, and starting as I plan to continue.

To that end, I've been pondering a lot today, focusing on doing one thing at a time and not overloading myself, being quite introspective about what I want and how I feel, and being a little productive without making a huge effort. I finished a book today and now only have two books queued for writing a review, and will probably have only one by the end of the evening. And I'm about to take some time and think through what my goals and obligations are, how much time they'll take, and how I want to structure that time.

I hope everyone reading this has had an enjoyable holiday and a great New Year's Day, and if you tend towards introspection today as well, that the introspection has been productive.

(I also put up a second Nanaimo picture in my gallery.)

2009-01-02: control-archive 1.1.0

I finally moved Usenet control message processing and archiving to a new system, and it's now running on this code rather than the version from before importing it into Git. This turned out to be much more of a headache than I expected, with lots of little roadblocks along the way. I was going to do it this morning and then go on to do other things, but it took all day.

But, finally, done now, and one fewer thing hanging over my head.

This is the bug-fix release fixing the things I ran into along the way, including some basic variable declaration errors in some of the scripts. I also made update-control bulkload more tolerant of descriptions containing tabs (since some of the older descriptions in the current list had them, even though they're no longer accepted) and added an install target to the Makefile.

You can get the latest release from the control-archive distribution page.

2009-01-02: Path forward

Path at Jack Point

If January 1st is the day to decide how the next year is going to be, January 2nd is the first day where one gets to put that into practice.

For me, that meant tackling the long-delayed move of various Usenet services I still maintain to a new system: Big Eight control message queuing, control message archiving, news.announce.newgroups's archive, and moderation alias updates. I had most of the software finished and just needed to do the shuffling and moving of things around.

I was expecting it to only take me a few hours, but there was one frustration after another. First, I couldn't get some of the old posts that hadn't been archived properly for news.announce.newgroups to verify properly. The PGPMoose signatures were good; they just weren't verified by the software after being moved. It took me a few hours and a lot of cursing to track this down to a permissions problem (GnuPG wants very badly to be able to write to its home directory). At least I also tracked down a bug in the archive script that caused it to fail for Archive-Name headers with trailing whitespace.

Then, when moving the control message archive over, I ran into my favorite rsync bug, the one where it deadlocks after pushing a few files when you're pushing a large tree. Tried upgrading to the version of rsync with no luck. I finally just tar'd up the directory and copied that over, something that I should have done much earlier rather than fighting with the stranded rsync processes.

Then there was always one more script, one more bit that had to move....

I think it's finally all set now. Control message processing may be delayed a bit while DNS updates, but I think everything will work, and I'll check the logs over the next few days and be sure.

I was going to do a bunch of other stuff today, but that's all I ended up doing. However, it was collectively about six things off my to-do list, so I'll take that. I've been putting it off for a while due to a subconscious feeling that it was going to be annoying, which turned out to be correct.

Now, I think I'm going off to read for a while to take a break from the computer, and then see if there's anything else I want to do today.

(I also posted another picture to my gallery that wasn't quite good enough to highlight.

2009-01-03: nan-archive 1.15

This is the first public release of the script that maintains the archive of news.announce.newgroups on It takes a feed of articles from a news server (normally tinyleaf from INN CURRENT), checks PGPMoose signatures, and stores the articles as determined by an Archive-Name header field. It would require modification to use for another purpose, but it may be of interest as a starting point for people who want to maintain a newsgroup archive.

I probably won't announce new versions unless there are significant changes, since most people probably won't be interested. You can download the latest version from my miscellaneous scripts page.

2009-01-03: spin 1.74

Today was apparently the first time I released a script whose CVS repository is remote, since I uncovered a bug in spin. spin was properly changing to the directory of the file before running cvs log for cvs2xhtml, but it was still passing the fully qualified path to the file to cvs. This works for local repositories, but with a remote server cvs passes the full path to the remote server, which then fails. This release has the simple modification to pass only the file name to cvs.

You can get the latest version of spin from my web tools page.

2009-01-03: Lintian 2.1.4

Lintian 2.1.4 has just been uploaded to unstable.

I'm trying to stick to a weekly schedule for releases while the pace of development justifies it, so this upload is a week after the previous upload. (We're targetting only unstable at this point and don't plan on having any of these versions release with lenny. Lintian is the sort of package for which the freeze isn't as relevant as it is for typical end-user packages.) It fixes 13 bugs and, most importantly, cleans up all the bugs that were tagged patch in the BTS. There are lots of minor changes, including a lot of new tags for random problems. The one that will catch the most people is that dh_clean -k is now deprecated in favor of dh_prep (thanks, Adam D. Barratt!).

I got to spend a lot of time this week working with the new Lintian test suite and link it a great deal. I've converted some of the more targetted old test cases to the new framework and sent out a long message to the team list on things that I'd like to add to it. The complete test suite now takes a lot longer to run, since it's broken down into more separate test cases and each one is a package build, but we're making up for that by making it easier to run all test cases that apply to a specific tag.

There aren't many structural changes in this release, just a lot of bug cleanup and random fixes. I think at least one more bug-fix release is needed to get the pending bugs back to where I like to have them (under 100 total), and then I have a large backlog of structural improvements that I'd like to work on. It's unclear, of course, how much time I'll have to work on that.

I could happily make a full time job out of working on Lintian (well, for a few months, at least). I wish I could spend this much time working on it during the rest of the year, but I can still enjoy getting to dig into it during occasional vacations, and hopefully I'll be able to do a few things during work weeks.

Many of the patches that went into this release were based on work by Raphael Geissert. Thanks to him for all of his work on Lintian.

2009-01-03: Focus

Through trees

The challenge I always face in doing the things that I want to do at the pace that I want to do them is maintaining focus on the right things at the right time. It's very easy to just drift, or get drawn away by some irrelevant detail or some debate that I don't need to be having, and lose a lot of energy.

The flip side of that is having realistic expectations and giving my brain a chance to relax, which is what some of those distractions are actually doing. And that leads to a desire to pick the right sort of distractions: ones that lower my stress rather than increase it, that are calming and interesting and aid in transitioning from one task to another.

The other trick I'm working on learning is making decisions about how to spend my time and both remembering that I made them and accepting the consequences without rethinking them. For example, I didn't get very much done on the computer today because I made a conscious decision to read instead, and those four hours are a fairly substantial amount of the hours I have in a day with enough focus to accomplish things. But I feel a subconscious niggling of "not doing enough" until I think back on where the hours went and remind myself of that.

Changing entrenched thought patterns is hard and takes a lot of time.

2009-01-04: Last vacation day


Today is, alas, the last day of vacation.

I'm not particularly interested in going back to work, and I wish vacation had been longer, but I think I'm mostly prepared for it. I also have a clear idea of what I need to work on first, which is helpful. So here's to a hopeful and productive beginning to this year's work.

Today, I finished the last volume of Orwell's collected non-fiction, which means I spent most of the day reading again. It's truly exceptional work, and the last volume is the best. A review will be forthcoming in a few days.

Otherwise, today was not a day for accomplishing things. I was intending for it to be, but I decided to read instead. Hopefully I'll find time over the week to keep my momentum on Lintian work.

2009-01-05: First day of work

Climbing moss

I was worried that I'd really not feel like doing work today and would have a great deal of difficulty getting motivated, but it turned out not to be a problem. Taking my time, thinking things through, and making slow and steady progress is working well so far.

Most of today was spent working on open-vm-tools for Debian. I discovered that the patch I had in our local backport wasn't necessary; it was an artifact of having accidentally unpacked a newer version of the package over an older version. (If you use module-assistant, be sure to use the clean action!) So I backed that out.

The problems I was having with vmxnet not being properly initialized by the open-vm-tools init script turned out not to be related to the kernel version, so we don't need to upgrade all VMs to the etch-n-half kernel. Rather, the problem is that if one rebuilds the initramfs image while vmxnet is already installed on the system, it's included in the initramfs image. The kernel then loads it from there after the regular network driver, it sees that the regular network driver is already there, and it essentially disables itself. Later, when the open-vm-tools init script unloads the regular network driver and loads vmxnet, it's already loaded. It therefore doesn't reinitialize itself, and you end up with no network.

The solution is to have the init script remove vmxnet before removing the regular network driver, and then loading vmxnet after it's removed does the right thing.

I'm going to go report a bug now with the details.

2009-01-07: kadmin-remctl 2.3

I had intended for the examine command of kadmin-backend to let one see any Kerberos principal (at least that doesn't have a very strange name), but I'd messed up the code. I fixed it (after messing it up first in a different way) in this release, and now you can examine most principals even if that instance isn't otherwise managed. While I was there, I also improved the Kerberos v5 to Kerberos v4 principal conversion for examine, even though that code is frozen.

This release also has improved versions of my Autoconf macros for remctl, GSS-API, and Kerberos library detection, even though this package doesn't really need it. I wanted to do something else to improve the package since I was doing a release anyway.

You can get the latest version from the kadmin-remctl distribution page.

2009-01-09: Perspective

Mossy limb

I see that I started work again and disappeared from here. *heh*.

The first week back after a long vacation is always interesting, particularly at the start of a new year when I've been thinking through schedules and focus. A few realizations from this week:

It's been a great first week. I'm still playing with balance, but it's already much better than it was at the end of last year.

2009-01-11: Lintian 2.1.5

I actually uploaded this yesterday, sticking to a weekly release cycle for the time being, but I immediately dove back in to do a bit more work. *heh*. It's addictive.

This release is a bit more scattershot than the previous one, but I got to close a five-digit bug number, which is always fun. There are a few new checks for old bugs that had been lingering for a while and somewhat better checking of *.chnages files. I also improved the Lintian test suite to support both checks on changes files and checks on raw package builds. I haven't used the latter to throw some of the truly pathological conditions at Lintian yet, but that should be fun.

I should probably take a break from Lintian to work on some other things, but it's highly rewarding once I get focused on it. One of the great things about Lintian bugs is that most of them are nice, managable pieces of work that I can do in an hour or two and then feel a sense of accomplishment.

2009-01-11: First week

Hanging moss

This was an interesting weekend on the new focused front. I ended up working on Lintian nearly all weekend, which in retrospect was a great way to spend it. I thoroughly enjoyed the work and got a good feeling of accomplishment out of it.

While I was doing it, though, I was second-guessing what I wasn't doing, so that part still needs work. I probably also need to work on balancing between something I want to do and mixing in other fun things, since I think I get more out of doing something I enjoy if I don't mono-focus on it quite to that degree. Mixing in a bit of reading or video games when my rate of forward progress slows is probably a good idea.

The weekend work upgrade went well, although there's one thing I need to investigate tomorrow. I hate getting up early in the morning, though; I rarely can sleep the night before because I worry about missing the wake-up, and I rarely can go to sleep afterwards.

I added another picture of a path to my gallery.

2009-01-15: Back into the flow

Whitewater face

Today was the first day back into a more regular schedule (although it's not going to last for too long — I'm heading back out of town in a couple of weeks). I was a bit slow, which I expected since I went to pick up my mail at the start of the day and then was a bit tired from staying up too late last night reading. But still, not a bad day.

I have Xen basically installed, although I haven't created a guest yet. I'm getting a feel for it, and I can see how we could make it do all the things that we want to do, but I'm fairly sure that for our purposes it's going to lose to VMware. I'd have fun putting on top of Xen the management layer that we'd need to duplicate some of the functionality of VMware, but I think it's a waste of effort (particularly with KVM coming) and VMware is more there. It has its own annoyances (Xen is way easier to use from a UNIX context), but we already have the infrastructure to work around that.

The Xen user guide could use quite a bit of work. There seem to be many other capabilities and features of Xen that aren't mentioned in it at all.

The oddest part of Xen to me is the lack of obvious, well-documented support for just assigning a pile of disk to a new VM and then installing it via PXE. This is a considerably better model for us than Xen's native model. Xen apparently supports this, from references I've seen, but I've not been able to find the right way to configure it and it's not the "natural" way. I think this is a shame. The PXE model is incredibly powerful and works great with every major OS. But this mostly comes back to VMware being a better fit for what we want to do.

It's a shame, since I'd really rather use something that's free software, but that's not one of our evaluation criteria for this project.

2009-01-16: The second week

Stocking Creek waterfall

Have a picture of a waterfall to celebrate the start of a three-day weekend (at least for many people in the US).

At the end of the second week of the new year, I'm quite happy with how I'm managing to focus and allocate time. It's been a bit chaotic due to travelling and other strangeness, and will keep being so for a while longer. Despite that, I've had two of the more productive weeks that I've had in quite some time. I'm also doing better at switching from one thing to another and balacing my time among multiple projects.

And now, I get a three-day weekend to work on personal projects, play video games, maybe read a bit more, and write a few reviews. It's good timing for one; I'm feeling productive and can make good use of an extra day to work on non-work things.

2009-01-17: podlators 2.2.2

This is a bug fix release that corrects indentation of verbatim paragraphs in Pod::Text when the paragraphs contain lines that have only whitespace. The regex that indented those paragraphs was too liberal in matching whitespace and would indent the blank line before the paragraph rather than the paragraph itself. The fix was from Renee Baecker. I also expanded the test suite a little since I was doing a release.

You can get the latest version from the podlators distribution page.

2009-01-17: Slow and steady

Chemainus station

This is the rail station for Chemainus in British Columbia. Chemainus is on Vancouver Island a little south of Nanaimo.

I'm very happy with how today went. So far this year, despite a lot of surprises, I'm doing a good job making realistic plans and sticking with them. The house now has groceries to get me through the next week, I did the weekly Lintian release on time, and I spent the afternoon reacquainting myself with my video games. I even got a few other things done this evening.

Tomorrow will be focused on video games, with maybe a bit of other stuff in the evening. Monday, I'm probably going to take advantage of the holiday to focus on various on-line things other than work that I want to do.

2009-01-17: Lintian 2.1.6

I'm managing to do enough work on Lintian each week that it's still making sense to stick with a weekly release cycle. So a new Saturday, a new Lintian release.

This one was mostly a set of random bug fixes and a few new, easy tests, cleaning up some false positives and lowering the bug count. We're now firmly under 100 bugs, which always makes me happy. The new test suite is also taking further shape, although I didn't do quite as much work on it this week.

I expect the next release to be 2.2.0 and incorporate support for a --pedantic option, contributed by Raphael Geissert. This will be a new tag severity less even than wishlist. It's for style checks, checks that are highly likely to have false positives, things that might be cleaner but are unimportant, etc. People should only use --pendantic if they're willing to see tags that are inaccurate or don't fit their personal style and take them with a grain of salt. There are a bunch of long-standing bugs requesting checks of that sort that are often easy to implement, just not things we've implemented in the past because even at the info level they'd annoy too many people.

I'm hoping to do a few more infrastructure changes and library changes for the next release as well, but I'll see how much time I have.

2009-01-24: Lintian 2.2.0

We're still managing to keep to the weekly release cycle and put substantial changes into each version. This makes me happy. I'm hoping that we'll be able to keep slowly working the bug count down.

This release merges quite a bit of work done by Raphael Geissert, most notably the addition of pedantic tags. Lintian has quite a few open bugs for checks that are useful in only some contexts or that check coding style issues that not everyone agrees with or wants to be bothered with, and we've been holding off on implementing those since I'd like to encourage everyone to enable info-level tags and I didn't want to just put them all in there. Now we have a new level, --pedantic, which includes all the picky stuff and the stuff that may be completely wrong.

It's up to each maintainer whether to use --pedantic at all. The tags won't be in the default view (right now, they're not there at all). If you do use --pedantic, please don't worry too much about making your package pedantic-clean unless the tags really seem like a good idea. Also, as noted in the man page, adding overrides for pedantic tags is probably not worth the effort. You should look over the report and apply human judgement. I expect this mode to be useful for sponsors, who want to be alerted to possible issues but can decide for themselves which ones to mention.

This release will also add a new page on that shows tags sorted by severity and certainty. Not only will this be useful for people looking for problems in the archive, it will also help the Lintian maintainers with updating severities and certainties. (For example, looking at the test page, I think a lot of the important tags should probably be serious instead.)

I'm currently doing a full archive run from scratch with the new version to make sure that I plugged the memory leak problems that Lintian had before and to finish fixing #507849. Once that run finishes, I'll send a "bits from the Lintian maintainers" post to debian-devel-announce with information about the pedantic mode and the new tag page.

2009-01-25: Pod::Thread 0.12

This release was an attempt to fix the rendering of the INN actsync documentation under the -v option. Unfortunately, while it improves that slightly (keeping the initial 0 rather than changing it to a bullet), it still doesn't offer a mechanism to force use of a description list for the arguments to -v. It looks like I'm going to have to convert Pod::Thread to use Pod::Parser in order to get that.

The work wasn't a complete waste of time, though. I added a framework for a test suite, so later I'll be able to do more testing of this module, and in the process found a long-standing bug that sent saved whitespace to the wrong output file handle during rendering.

You can get the latest release from my web tools distribution page.

2009-01-29: Deep breaths

Salmon Creek in sun

It's been a very hectic past few days, but all in all not a bad few days either. I've not been posting much here because just too much has been going on, but things are now starting to settle down and hopefully soon I'll get to spend some time in one place, get back to a regular schedule, and go back to a more methodical approach to life.

Reading, and book reviews, have dropped off the radar for a while, partly due to too much going on but partly because I've started playing video games again. That's an acceptable tradeoff. I've wanted to get back to playing more games for a while now, and I am firmly telling myself to not obsess over how many reviews I write or how many books I read. (Still, hopefully I'll feel the review-writing urge soon before I forget too much about the last books I've read.)

One good thing about travelling is having a chance to take pictures. My mother and I walked along Salmon Creek in Oakridge, Oregon on Monday. The above picture was one of the hundred or so that I took.

Today was supposed to be a day of catching up, but I instead spent the day dealing with a reported security vulnerability. I'm happy with the results (although I have an embargoed security release to do still), but it wasn't progress towards the things that I was "supposed" to be doing. Tomorrow I have non-work things to do in the morning, but hopefully in the afternoon I'll find time to get caught up and organized.

2009-01-31: Lintian 2.2.1

Another Saturday, another Lintian release.

As has frequently been the case lately, much of the work was done by Raphael Geissert, who provided several more patch sets fixing new problems and old ones. I also finally got a chance to dig into the code that generates the long tag descriptions and ended up rewriting it entirely, which will remove some minor annoyances in the setup of Lintian on

I was expecting to have a chance to write a pile of pedantic checks, since several of the old bug reports are easy checks to write and were just waiting for the new tag status. I ended up working on other things and merging patches instead, though. Maybe the next release.

One amusing note: the compressed Lintian changelog is 112KB (365KB uncompressed). The tar.gz file for the entire Lintian release is 589KB. So the changelog for Lintian is nearly 20% of the entire distribution. Admittedly, we have a fairly verbose changelog style, but most Lintian work involves large numbers of small tweaks and small patches. I think most of the changelog size is unavoidable. I don't think this is a problem — Lintian is not the sort of thing that one runs in an embedded environment and within reason it doesn't matter how large the installed size is — but it is rather funny.

I stopped the last archive-wide run because gluck was being rebooted with a new kernel that didn't cause Perl to close huge numbers of file descriptors on popen, and then due to other things going on my life, didn't get a chance to restart the archive run until yesterday. It's on binary packages starting with "p" now, so hopefully sometime tomorrow there will be fresh Lintian results with 2.2.0 and I can post a bits from the Lintian maintainers message.

Last spun 2023-05-29 from thread modified 2023-05-14