Posts for July 2009

2009-07-01: Long weekend

Skunk cabbage

Not one of the most exciting pictures I've taken, but I like the mirrored effect of the water as a background for a couple of skunk cabbage plants. I'm not sure why it feels like the right picture for today, but it does.

Due to spending all of Saturday switching work desktops, as well as being quite productive the first three days this week, I get to take tomorrow off and have a four-day weekend. Tomorrow is a relaxation day, and then I'll think about what projects I might want to tackle.

I unfortunately didn't get the WebAuth release out that I was hoping for, in part because I worked on some other cleanup this morning, but I've made a lot of progress. I spent a couple of hours today starting to write the Automake Makefile.am for it as the first step of converting the build system to match my other packages and significantly rearranging the source. That's the last big thing that I want to finish before the next release. It will also significantly reduce the mental barriers I have against doing more extensive work on the package.

I'm slipping behind at the moment on writing book reviews again, but I haven't felt like doing it the last few days. It's relatively rare, I'm finding, for me to be in the right mindset and mood to do this after I get back from exercising in the evening. That's a shame, since schedule-wise it's the perfect time, devoid of distractions and after the day's work is done. But I suspect that it's too low-energy to work reliably enough, and I need to get into the habit of writing reviews at the start of the day instead. I may push a little at getting caught up this weekend.

The one thing I did forget when swapping computers was my crontab, but I think I've reproduced it from memory and just ran a few things (like FAQ posting and RSS to e-mail) that had been skipped for a few days. I could boot up the old computer and check to see if I remembered everything, but I probably won't bother. I think I'm going to just quietly stop posting the news.admin.net-abuse.* pointers, for instance, rather than figure out what the postfaq command I was running was. I've been feeling weird about posting FAQ pointers in groups that I don't read anyway, and I doubt anyone cares.

2009-07-03: Transition day

Periscope

The flowers of a bush anemone, with one unopened bud poking up. This picture doesn't quite capture how weird these flowers can sometimes look. I have another picture (which requires a bit of work) that I may post later on.

Today was a transition day into a nice, long weekend. I did some grocery shopping, did a bit of reading, and wrote a review so that I'm catching up a bit on that. Calm, relaxed, not particularly notable.

Quick plug: Stephen Laniel's blog is my new favorite book review source. He reviews a lot of non-fiction of the sort I like reading, and I've been looking for a good general source for non-fiction recommendations.

2009-07-04: Term::ANSIColor 2.01

This release adds another new function (not exported by default) that removes any color escape sequences in the given string or strings and returns the result. The initial implementation was from Paul Miller. This is something that people have been asking for; I'm surprised I didn't think of it earlier.

Term::ANSIColor also now untaints $AUTOLOAD before generating the constant subs due a bug report and patch from Tim Bellinghausen. I'm not sure how he triggered this problem (I was unsuccessful myself), but it's clearly correct.

You can get the latest version from the Term::ANSIColor distribution page.

2009-07-09: backport 1.20

This update to my script for backporting Debian packages suppresses the normal initial checks in dpkg-buildpackage for build dependencies and the initial run of debian/rules clean before moving the package into the chroot for building. Previously, the build dependencies required to run the clean target had to be installed outside the chroot, which was sometimes annoying. Since backport just unpacked the source package and made automated changes, it's guaranteed to be clean and there's no need to run the clean target.

You can get the current version from my miscellaneous scripts page.

2009-07-09: Lintian 2.2.13

This is mainly a random bug fix release (and alas mostly new bugs rather than digging into the backlog). The main fix of interest is to info files. Now that install-info uses triggers, install-info should no longer be run from maintainer scripts and info files are required to contain the categorization information used by install-info. This meant significant simplification and a few new checks in that part of Lintian.

This release also includes work by Raphael Geissert to allow Lintian to check multiple archive areas. I plan on upgrading lintian.d.o in the near future and enabling checks for contrib and non-free as well as main. This may need some additional debugging before it works smoothly as Raphael ran into some problems during testing and proposed a fix I wasn't sure about.

2009-07-11: weekly 1.5

This is another script that is fairly trivial but that I've been using for years. It takes a text file of accomplishments and another of future plans, combines them in a template, and sends out a weekly status report, performing a few sanity checks to not send out a partial report and remind me to finish it. I use this in combination with a couple of shell aliases to edit the accomplishment list and future plans to keep my manager and co-workers informed about what I'm doing.

Incidentally, if you're not doing something like this, I highly recommend it. It takes a bit of effort to get into the habit of writing down what you've finished, but it's worth it. Even if no one has asked you to produce a report, just start doing it and send it to your boss. Even if they never mention it, you'll find it smooths the communication and they'll be reading it.

You can get the current version from my scripts page. Since it's a fairly simple script to which I don't expect to make major changes, I'll probably not announce new releases unless they're significant.

2009-07-13: check-dist 1.3

I've been converting all of my software packages to Automake, which by and large is a significant improvement over hand-rolling makefiles. However, Automake does have the requirement that all files to be included in the distribution be listed explicitly in Makefile.am, and I've found it far too easy to miss bits of documentation or parts of the test suite that aren't always run.

I therefore wrote this script to do a sanity check. It's a simple script that takes a tarball and a source tree and checks that the tarball contains everything that's in the source tree, excluding some files to ignore that are configured at the top of the script.

You can get the latest version from my scripts page. I probably won't announce new releases unless they're significant.

2009-07-14: WebAuth 3.6.1

Since the first release of WebAuth version 3, we've forced a click-through confirmation page whenever a user first visits a site that requires authentication. This was partly for consistency with the login behavior, where a confirmation page was required for versions of HTTP prior to 1.1, but I think it's a useful security feature to have transitions between unauthenticated and authenticated space flagged.

Unfortunately from my perspective, others do not agree. It also does make things hard for portal sites that want to display lots of other sites in <iframe> or an equivalent. The word has therefore come down to get rid of that confirmation page.

Suppression in some circumstances was already supported due to work contributed by MIT, but this release also suppresses the confirmation page after the login form entry if the browser supports it and supports displaying the confirmation page only if tickets are potentially delegated to the remote site. We'll keep using the latter, since we want users to know when that happens. There are also some other accumulated fixes, mostly affecting the WebLogin server.

As of this release, WebAuth is also maintained in Git.

I was hoping to do a general coding style cleanup and bring WebAuth in line with my other packages with this release, but I ran out of time to meet work deadlines. This is therefore only a partial modernization of the build system and coding style. The build has switched to Automake, but it isn't yet using rra-c-util or C TAP Harness. I hope to do another release fairly quickly with those additional improvements and more cleanup.

With this release, I finally got around to giving WebAuth a presence on my web pages with my standard software page and HTML versions of the documentation. The primary WebAuth site is still webauth.stanford.edu, which I also maintain, but having this page on my own web pages appeals to my sense of symmetry. It also has a few links and bits of information that aren't (yet) on the main site.

You can download the release from either my page or the official site.

2009-07-16: Ohloh

I've seen the Ohloh open source directory come up from time to time and looked around a bit in the past, but I had never done anything serious with it. But Jeffrey Altman put a lot of work into registering OpenAFS there and making the project page nice, and that was enough to spur me into registering and creating an account.

It's been fun tracking down and claiming my contributions to various projects and seeing what was already registered. I've also registered WebAuth, remctl, and kstart. I'm not sure where to draw the line on registering projects, but at least pam-afs-session, Term::ANSIColor, wallet, and podlators probably make sense. I have tons of smaller projects, and I'm not sure how many of those I should create pages for and make the Ohloh folks poll for activity.

I'm not sure yet if I'm going to do anything with the journalling features over there. The news RSS feed for each project makes me want to go implement the idea I had a while back for generating RSS feeds per project using the NEWS files, though. That would be fairly easy to do.

2009-07-17: Flow

Fuzzy pink

Have the first new picture in quite some time. If anyone knows what the unidentified fuzzy pink plant is, let me know. This is one of those shots that I like but wish I could retake now, more than a year later, when I know what I'm doing much better (and, among other things, would know enough to try it multiple times from different angles).

When reading Csikszentmihalyi's Flow, one of the things that I hadn't pondered is the disruptive feeling of being in a deep flow state. He talks about how it causes time to do odd things and produces a strong focus on the flow activity, and I was nodding along and thinking about how wonderful that is when it happens. However, the other side of that is the flow state leads one to stop paying attention to everything other than the flow activity. Indeed, that's the whole point.

Over the last week or two, I've been playing with my schedule in an attempt to adjust in advance to east coast time for an upcoming business trip. This turned out to be largely unsuccessful at the level of aggressiveness that I was planning, mostly because my life has a lot more structure than it used to when I was doing this kind of thing routinely. But moving my schedule around does knock me out of all my regular routines and decouples me from the temporal cues I use to move through my normal set of daily activities.

Some of the effects have been mildly negative; for instance, I've not done well with exercising daily and I've not done as much creative writing recently as I normally like to. Some, though, have just been odd and interesting. Not only have I done a lot of work on finishing up required WebAuth changes for Stanford, I've also put in a huge burst of activity on OpenAFS. Some of that is because we've just switched to new tools, which are bright and shiny and fun to work with, but I think some of it was that unmooring my schedule and dropping cues I use to transition from one activity to another left me open to entering a rather intense flow state and staying in it for a fairly long period.

The disconcerting aspect of this is that I feel like I've dropped a nebulous set of "stuff" that I "should" be doing, so I have a strong sense of unease that something, somewhere, is falling on the floor because I've been "too" focused. This is increasingly bugging me, and making it hard to maintain flow. That's a very worthwhile revelation, since I suspect that sense that something, somewhere, requires my attention is the main thing that pulls me out of flow most of the time. (This is also something that a good time management system like Getting Things Done is supposed to address directly, but when I'm in this sort of flow state, I have a very hard time managing work, because I'm usually flowing from one task to another within a particular area and ignoring everything else on my task list. And reviewing the whole task list requires a wrenching context shift.)

I'm fairly sure that most of that nagging feeling is overstated. I have been not doing some things that I normally do. Some of those things are maintenance of personal relationships, and that would be a problem if I stayed in this pattern for a long period of time, but I'm not and they're not actually a problem at the moment. In other words, some of the warning signals are correct but significantly overstated.

Balancing flow states is clearly something that I'm not very good at yet. I would like to find a way to capture this feeling of intense productivity and accomplishment without the nagging unease and feelings of guilt about dropping other work. In a couple of weeks, I'll go back to a normal schedule, which will change the dynamic again, probably making it easier to do maintenance activities and harder to stay in concentrated flow. I think I want to tweak that a bit, but I'm not yet sure how.

2009-07-18: release 1.41

This is the first public release of the tool that I use to generate releases of my software. Most of what it's responsible for is exporting software from a revision control system (it understands Git, bzr, Subversion, and CVS), building a distribution tarball in an appropriate way for the build system, signing and copying that release into a distribution area, archiving old releases, and updating a spin .versions file. It can also handle releases of individual scripts and discover the version number of the script by parsing it.

There is code in here for combining a release tarball with a debian directory stored only in the revision control system, but I don't use this code any more since I've switched to git-buildpackage and a Git repository layout that combines the upstream maintenance and Debian package maintenance in the same repository.

You can get the latest version from my scripts page. It's rather idiosyncratic for how I do things and would probably require modifications for anyone else to use.

2009-07-18: pam-krb5 3.14

I'd accumulated several fixes in Git to my Kerberos v5 PAM module, some of which had already been separately applied to the Debian libpam-krb5 package, and before fiddling with the build system and trying to bring the package closer to my other packages, it seemed like about time to put out a new release.

This release has a variety of relatively small bug fixes. The main fixes are to return PAM_IGNORED instead of PAM_PERM_DENIED from password changes if the user is ignored, since otherwise stacking the module in the password stack doesn't work as expected. There's also a fix for a crash (NULL-pointer dereference) if the PAM module can't initialize its ticket cache.

As of this release, the module also treats the empty password as an immediate authentication failure rather than passing it to the Kerberos libraries. The Kerberos libraries may treat an empty password the same as a NULL password and prompt internally for the password, which can allow the user to authenticate using a password not known to the PAM stack. This is very surprising to PAM modules that rely on caching passwords from successful authentications and may trick them into thinking that an empty password is valid.

There are also some portability fixes for Heimdal and FreeBSD.

You can get the latest version from the pam-krb5 distribution page.

2009-07-18: That's better

Forest silhouette

Rathtrevor beach in Parksville, British Columbia (north of Nanaimo). I was particularly happy with this picture, although really at that time of the evening on a nice beach, one only has to lift the camera and push the button to get great pictures.

I got my head together last night a bit, after fixing some of the test suite problems with kstart, and today I'm feeling much more in control of things. It helped to be able to get an exit row seat on the flight tomorrow when I checked in. I need to do another quick round of double-checking packing, but I'm basically set to go tomorrow and hopefully the early-morning wakeup won't be too difficult.

Some of today was spent importing old projects into Git to get over the first hump in the way of cleaning them up. That includes the Calvin chatserver code that my friends and I have been using for 14 years now (written by Jonathan Lennox) and which I want to get out as open source, and News::Gateway. I have no idea when I'll do anything with the latter, given how much is in front of it and will likely remain so, but at least it's out of the Subversion repository on the system that's going away. That was also the last thing on that system to move, too.

Otherwise, the day was spent listening to Warren Zevon and doing whatever I felt like doing, which is a lovely way to spend a Saturday. Tomorrow, the day will be spent mostly reading a Jacqueline Carey novel, which is almost as good.

2009-07-21: pam-krb5 3.15

The 3.14 release had a bit of a brown-paper-bag bug. If pam-krb5 were configured with use_first_pass or use_authtok and there was no stored password in the PAM stack, it deferenced a null pointer. This release fixes only that bug and updates the supporting build files to current versions from Automake 1.10.

Thanks to Jonathan Guthrie for the bug report.

You can get the latest version from the pam-krb5 distribution page.

Last spun 2014-07-02 from thread modified 2013-01-04