reposurgeon 1.7 is out. Fewer obvious changes this time; the big feature is that it knows how to read and use the CVS revision maps generated by the -R option of git-cvsimport. This means that it can patch CVS revision references into an action-stamp form that makes sense in a VCS-independent way.
Category Archives: Software
Son of the reposturgeon!
Somebody said “Release early, release often.” once…and, just a day after reposurgeon 1.5, reposurgeon 1.6 is out, with a bug fix and a tasty new feature.
Names and consequences
freshmeat.net abruptly changed its name to freecode.com a couple of days ago. As a consequence, the little program I wrote to submit release announcements to it is now renamed freecode-submit.
People who ship releases frequently enough to find freecode-submit essential might also want to look at shipper, which I wrote to automate other aspects of release shipping as well.
shipper is how, when I want to ship a release of one of my projects, I can normally just type “make release” and the right things will happen – webpage updates, freecode release notification, SourceForge release, and release-tagging in the project repository.
Revenge of the reposturgeon!
Reposurgeon 1.5 is out. This is a major release based on experience gained converting the roundup repository.
RFC: Action stamps
This is a request for comment on a convention for uniquely identifying user actions on the Internet. The motivating context was identifying commit changesets in version-control systems in a way independent of the specific VCS. It is anticipated that this format will have uses in recording many other similar sorts of transactions, including actions on web interfaces, where we want a simple cookie identifying “who did this and when”.
Repositories in Translation
I’ve been doing a lot of repository conversions recently, lifting ancient project histories from Subversion or even CVS into modern distributed version control systems. I’ve written about the technical problems with these conversions elsewhere but they also raise issues that are almost philosophical – and not unlike, actually, the challenges natural-language translators face moving a literary work between human languages.
A DVCS migration howto
This is a consequence of my recent adventures in repository conversion – a detailed discussion of how to do a high-quality lift of a CVS or Subversion repo to DVCS-land, how to make both git and hg users happy, and what sorts of good practices to teach to keep things tidy.
Bride of the reposturgeon!
Another big repository conversion – the Hercules project – brings with it some new bug fixes and features, so reposurgeon 1.3 has shipped.
Looking for reposurgeon test cases
I just released reposurgeon 1.2 and am continuing to develop the tool. In order to test some of the newer features, I’m looking for repository conversions to do. If you run an open-source project that is still using CVS or Subversion, or some odd non-distributed VCS, I may be willing to lift it to git for you (and from git to any other DVCS you might prefer is a pretty small step). Details of this offer follow; limited time only, first come, first served.
(Why have me do it? Well…especially for older projects with a complex revision history, it’s a messy and daunting job. The tools are somewhat flaky, the difference between a sloppy conversion and a good one is significant, and good conversions require experience and judgment.)
Ubuntu and GNOME jump the shark
I upgraded to Ubuntu 11.04 a week or so back in order to get a more recent version of SCons. 11.04 dropped me into the new “Unity” GNOME interface. There may be people in the world for whom Unity is a good idea, but none of them are me. The look is garish and ugly, and it takes twice as many clicks as it did before to get to an application through their supposedly “friendly” interface as it did in GNOME Classic. No, dammit, I do not want to text-search my applications to call one up!
But the real crash landing was when I found out that the Unity dock won’t let you manage two instances of the terminal emulator separately. Oh, you can click the terminal icon twice and get two instances, and even minimize them separately, but they’re tied to the same dock icon when minimized. If you click it to unminimize, both pop back up. That did it; clearly Unity is a toy, not intended for anybody doing serious work.
I was miserable until I found out how to fall back to GNOME Classic. But then a few days later I upgraded to 11.10 and my real troubles began.
You can tank me later
I have interesting friends. Two of them, who shall remain nameless because it is possible they have let slip to me information that is technically classified, recently told me the best GPSD deployment story since the robot submarine.
So, Friend A says “Hey, Eric, did you know GPSD is used in the on-board nav system of the Abrams tank?” Friend A is in a position to know, because Friend A has done troubleshooting of that nav system – once, over the phone with a tank actually in combat in Iraq. It seems GPSD is used as part of IFF (identification friend or foe) and without that module they are at unpleasant risk of heaving a shell at a friendly. (And no, I am assured the bug was not in GPSD itself.)
…but GPSD will survive!
Four days after I got the word that Berlios is dying, I have saved GPSD from being pulled under as it sinks. A couple of observations on the project migration follow.
GPSD 3.0 finally ships. It’s been a long epic.
Protocol transitions are hard.
Yeah, I know the experienced software developers reading that are thinking “Well, duh!“. Shut up already, I’m venting here. I’ve just spent the better part of two years – actually, if you include design time and false starts it could be closer to five years – designing a new application protocol for my gpsd service daemon, implementing it, getting it deployed, dealing with problems and course-correcting.
For those of you in the cheap seats, an “application protocol” is a kind of language that a program uses to communicate with other programs. Normally humans never see these, but there’s one big example that non-geeks have often seen bits of. HTML, the Web’s markup language, is an application protocol. Designing these is not easy. There are difficult issues and tradeoffs around flexibility, economy, expressiveness, and extensibility for uses we haven’t imagined yet.
When you have a whole bunch of programs written by different people communicating with a particular application protocol, changing that entire ecology to use a different one is not easy. A good analogy in the physical world is the difficulty of changing an entire country’s railroad gauge. The long-term benefits may be huge, but the short-term cost in capital and service disruption is daunting.
Issue analysis of the G+ realnames policy
Here’s hoping I’ve figured out how to extract a public permalink this time.
A modest proposal for Google+ handles.
Normally I post essay-length stuff here, but I’ve weighed in on a G+ policy dispute and thought this post should be there. Comments there too please.
Will software ever be engineering?
One of my commenters pointed me at an article by John Sonmez over at ElegantCode, Why Software Development Will Never be Engineering. The article makes one very shrewd, well-argued point, but then disappointingly fails to build on it. Read it and see if you spot the problem before I analyze.
World Without Web
Technological change has a tendency to look inevitable in retrospect – “It steam-engines when it’s steam-engine time.” Likely this is true in many cases, but I often think we underestimate the alarming degree of contingency lurking behind ‘inevitable’ developments. To illustrate this point, I’m going to sketch an all-too-plausible alternate history in which the World Wide Web never happened.
The “walled garden” becomes a prison for reality
A British tabloid revealed today that Apple has filed for a patent on a system for disabling the video camera on an iPhone or iPad when its user attempts to film a concert or other interdicted live event. This is a much more threatening development than most may realize.
Configuration files and switches considered harmful
Someone on the gpsd-users list asked:
I was just wondering why gpsd doesn’t have a configuration file in /etc/gpsd.conf, like most other Unix/Linux software?
Because configuration files are evil, and not to be countenanced unless they become an absolutely necessary evil. Which in gpsd’s case is not yet, and I sincerely hope not ever.
Broadening my Deepwater Horizons
I’ve gotten used to being cited in computer science and software engineering papers over the last decade, but here’s a new one. Today I read a draft in which I and the GPSD project get cited a bunch of times and it’s – er – not about open source. It’s about Marine AIS in disaster management. Broadening my deepwater horizons, as it were.