Proctor 1.0

I’ve moved Proctor development from sourceforge to my own server
and released version 1.0.

We have been using proctor successfully for several years now at work,
and it makes automating our nightly tests very easy. The build is
automatic, the software is installed automatically, and then proctor
runs the test suite. All 3000+ tests take several hours to run, mostly
because they aren’t all strictly “unit” tests.

code hosting tool

I am looking for a tool to build out a site to host my code projects.
None of these projects are large enough to warrant anything like the
features provided by SourceForge. I don’t think my requirements are very
strict, but I haven’t been able to find anything to do what I want (sort
of a sourceforge-lite):

  1. I must be able to host the projects under a domain I control myself.
    One domain for all projects is preferable since I don’t want to have
    to edit my apache config every time I think of a new project.
  2. I do not care to expose my svn repository to the world, since it
    contains plenty of stuff besides the projects that I do want to
    release. Releasing source as tarballs or apps as disk images is good
    enough for me.
  3. Each project needs a home page with a summary and links to releases
    and release notes.
  4. Adding new releases should be easy. I will upload the release file
    via ftp or scp, but I want to be able to add the reference to the
    release file without editing a bunch of HTML each time.
  5. A blog is a nice-to-have, but I already have this blog, so it isn’t a
  6. I don’t need an issue tracker, forum or mailing list manager. I may
    maintain an email address for support of all of the projects, or I
    might use a google group.

I thought about Zope for a few minutes, but just don’t want to go
back in that direction. I used to use Zope quite a bit. I haven’t in a
long while, and the zen has left me, I’m afraid. Somehow the relational
model is more persistent in my grey matter. Plus, I’m still not over my
plone upgrade fiasco from a few years ago, which is why I don’t have
much of a site up anymore. I finally gave up trying to make the site
work, pulled the content out to preserve it, and just threw up a
redirect to the photo gallery.

I looked at drupal. It has some nice features, but I don’t like the
default appearance and I’m not that interested in learning another
templating language so I can improve it. WordPress has most of the
features I want, though I would have to edit release pages myself.
Again, though, they have a whole template language that seems like more
than I want to deal with for extensions. Maybe if I was already
PHP-enabled these would seem like stronger contenders.

I was hoping to find something built using django (or at least
parts I could assemble myself), since I am already trying to extend my
skills in that direction. It looks like the django-way to do most
everything is to build your own, though, so I suppose that is what I’ll
end up doing. I should be able to lean heavily on the admin UI for most
of my editing, so I would just need templates for presenting the
results. That’s not too bad.

Desktop Manager

I love using Desktop Manager for Mac OS X because it lets me
separate my tools into separate workspaces. I have a separate desktop
for communication (email and IM), local development (editors and
terminals), remote development (vnc), and miscelaneous (temporary
windows or apps like iTunes). With a simple keystroke I can rotate
between the different desktops, even using dual monitors.

Unfortunately, it looks like the recent update to OS X broke the
ability to move a window between desktops. I can still minimize, change
desktops, and then expand the window. But moving the window without
switching desktops doesn’t seem to work. Oh, well, I didn’t use that
feature much anyway.

The last release of Desktop Manager was in 2005. Maybe it is time to
take another look at Virtue Desktops.


Wow, VirtueDesktops has come a long way since the last time I used
it. I’ve made the switch from the older Desktop Manager, and aside from
not having the desktop pager available in the menu bar I am having no
trouble adjusting. Moving windows between desktops works as advertised.


We have an Exchange-like mail server at work, but it doesn’t support
iCal subscriptions. Since I use a Mac, and don’t have any interest in
Outlook, that makes calendar access a pain.

After some poking around, I discovered that the server stores the
calendar information in IMAP folders, with each event in a separate ICS
file attached to a fake message. So I put together a small script read
the IMAP messages and merge the ICS files into a single output file. By
writing the output file to a folder on the web server, it is easy to set
up a subscription in iCal.

The result only works one way, of course, though it should be possible
to push fake messages into the IMAP server. I have not tried that,
because I just use the server’s web interface for adding new events to
the calendar.

The script depends on the icalendar package from, and
the Python standard library packages for IMAP and email parsing.

I have posted the script to my server: mailbox2ics. down?

I’ve never worked anywhere that could take a reasonable change window
like apparently can.

We’re in the midst of a scheduled upgrade which will take no more
than a couple of hours. Come back after 2 pm (Pacific) today and you
will see the you’ve come to know and love. For live
updates, please see our `blog`_.

Bravo to their operations team for doing the work during the day instead
of the middle of the night. Of course, they are still working on the
weekend, but this is a start.

feed auto-discovery

I added feed auto-discovery to today. It was pretty
easy using the module, except for one small
problem. Something about the timelimit() decorator in that module
causes problems with django or mod_python (probably
mod_python). When timelimit() is enabled, the finder either produces
no URLs at all or an exception about “unmarshalling code objects” in a
“restricted execution environment.” It works great in my development
environment, which does not use mod_python. To get it to work in
production, I disabled the timelimit() decorator. I hope that does not
come back to bite me in the future.