London Law was mentioned on Slashdot late last year. Development had stalled after the 0.2.0 release back in February, as I was sinking my limited hobby programming hours into Wyrd. A couple of months ago I polished off a respectable 1.0 release of Wyrd, so I've recently been putting some time in on London Law again.
It's starting to look like 0.3.0 will be a nice jump over the previous release. The biggest development is some preliminary AI infrastructure--there's an AI base class that abstracts away the details of talking to the server, and I put together a toolset of algorithms for pathfinding, etc. The server administration tools have been improved significantly. The codebase was ported over to wxPython 2.6. Finally, I took an afternoon to gettext-ize the code--the translation template was uploaded to Ubuntu's Rosetta translation engine, which looks like a nice system. It simultaneously centralizes translation efforts and, being web-based, reduces the barrier to entry.
Next on the list is some UI improvements; I have a rather large list of those. wxWidgets 2.6 has full alpha blending support (finally!), which may come in useful.
I've been using various iterations of GNU Arch for a couple of years now. tla was among the first free distributed version control systems, and Tom Lord's design had a lot of things going for it: history-sensitive merging, cheap branching, proper handling of renames, append-only repositories, full operation over dumb transports like http and sftp, etc. There's no question, it's a powerful system.
Then again, the user interface is pretty rotten. Win32 support is weak. While tla can be configured to be pretty fast, the default configuration is rather slow. It's been plagued by on-again, off-again development. Did I mention the UI sucks?
About a year ago, tla development had stalled somewhat. Bugfixes were floating out in various people's archives, but not getting merged into mainline. When Tom did pop up on the list, he was talking about odd things like Pika Scheme and a specification for this weird Forth-like language called "xl" that would be integrated into Arch 2.0. A couple of other people stepped up to fill the tla 1.x maintainer role, but Tom was unhappy with the resulting code quality.
It was around this time that Canonical announced bazaar, a UI-focused fork of tla. Robert Collins began merging patches into bazaar at a rapid pace, and it quickly became both easier to use and faster than tla. Tom seems a bit torn on this topic--at times he has labeled bazaar an "unfriendly fork," but he has also looked on it as a sort of development line for tla. In recent months, all the serious Arch development has been in the bazaar line. Some have said that Canonical saved Arch from obsolescence, and I would have to agree with that assessment.
A few months back, Tom started talking about this fancy thing called "git" that Linus Torvalds designed to version control Linux. Everyone's been buzzing about this, of course, since Bitkeeper dropped their free support and all the kernel hackers had to find a new tool to use. git is designed to be crazy fast, and little more. Frankly, I'm not terribly impressed with it. But Tom seemed to think that Arch 2.0 needed to support "git technology" or be doomed to obscurity. So he started work on revc, aka Arch 2.0, which is based on git. (Guess what: it's plain old C code. No sign of either pika or xl.) There hasn't been much discussion of revc on the ML; my guess is that I am not alone in thinking this development direction was a mistake.
Then again, revc development never got very far. It's been an interesting week on the Arch mailing list--Tom Lord has resigned from maintaining Arch. After a couple of days of (stunned?) silence, people started discussing the future. Canonical will continue maintaining bazaar, but most of their development is going into bazaar-ng. bazaar-ng uses a lot of design principles from Arch, but it looks much easier to use. It's written in Python, so Win32 support is straightforward and development is going much more rapidly than it would in C. It appears to be quite fast (most operations are IO bound, so the penalty for using Python is negligible). At the moment the storage format is full-copies, but the developers are in the process of transitioning to a weave format that will be efficient for storage as well as annotation, and will assist in implementation of the recent Codeville merge algorithm. I expect that most of the Arch community will transition to bazaar-ng as it stabilizes.
Mercurial looks interesting as well. It was developed with Kernel hacking in mind, and seems to be somewhat better conceived than git. Also written in Python. If I understand correctly, it lacks proper rename support and cannot handle cherry-picking, so there are a couple of strikes against it.
Of course, Darcs has come a long way over the past year. The performance has reportedly improved somewhat, although I believe it's still better suited to smallish projects. Certainly an interesting experiment in version control, but ultimately I'm not convinced that Darcs places its emphasis on the most important aspects of the problem.
The point of all this is that the free VCS landscape is far better than it was when I first jumped onto tla. There are now a number of free distributed version control systems that look very capable. I expect that Arch refugees like myself will not have difficulty finding a good replacement in the near future.
And really, I'm rather happy that revc hasn't gotten off the ground. Stupid name, questionable design decision. Nonetheless, I wish Tom all the best in his future endeavors, and hope that he is able to find suitable employment soon.
In other news, last.fm just rolled out a major site update. Go check it out!
Well, the response is in. I am not pleased. I skimmed through much of the DOJ's response, and it was immediately apparent that the entire document does little but run defense against the opposing comments. It seems to me that a response in keeping with the spirit of the Tunney Act would actually listen to the comments rather than systematically dismiss them. I can only hope some of the more clueful and less ethically-challenged congressmen (Boucher? Feingold?) will raise a stink over the DOJ's obvious attempts to settle this case quickly rather than fairly.
And yes, I do have the right to bitch, because I did send in my comment. Sadly, my opinions on the necessity of disclosing MS Office file formats were dismissed as beyond the scope of the case. It seems to me that any potential solution to Microsoft's monopoly position should by definition be viewed as applicable.
Today the 'ol cable modem went down for a good hour and a half. I was not pleased. In fact, I was so not pleased that I began hacking. When I was done, I had a Python script that logs network downtime. At the end of every month, I shall enjoy demanding a corresponding credit on my bill. If I'm paying $45/mo, I better darn well get the 24/7 access that I'm paying for.
Update 02/20/02: It's been 10 days now, and the net connection has been rock solid. Strangely, I find myself a bit disappointed...
Every so often I like to spend time playing around with new software, to see what I might be missing. Today I got turned on to a couple of cool items.
There is a demo of Qtopia (formerly the Qt Palmtop Environment) available for x86. Qtopia is the primary environment that will run on the Sharp Zaurus, along with a Java VM. I thought the demo was pretty slick--the environment felt very professional and was consistent across apps. Handwriting recognition seems pretty good too. In my opinion, Qtopia seems like a better choice than X11 for a PDA, since there is little need for powerful window handling mechanisms on a quarter-VGA screen.
I also found the ROX filer today. This is a blazing fast GUI file manager. I have tended to stay away from file managers in the past, since I am pretty quick with the command line. I've played with Konqueror, Nautilus, etc., but have been disappointed with startup speed and the time required to render new windows. ROX, on the other hand, is fast enough that I may actually use it regularly.
A couple of nights ago I converted my Mandrake 8.0 box to a Debian (testing) box. I've been running Woody on another box for several months now and have been very pleased with the experience. Here's what I dig about Debian:
Here's what's not so great:
I also built a fresh kernel right away. I'm using 2.4.17 with the kernel-preempt patch. It does seem like preemption improves X responsiveness a bit. More importantly, the 2.4.17 VM beats the crap out of the early 2.4 VM that shipped with Mandrake 8. I used to hit some nasty swap storms, which seem to have disappeared now.
Anyway, life in Linux land is good once again.
The other night I was over at a friend's place, fulfilling my duty as a Linux geek. He had recently purchased a shiny new 1.7GHz P4, and wanted a Linux partition primarily so he could edit and compile LaTeX using emacs. I suggested he go with Mandrake 8.1, since I've used 8.0 personally and feel that it is a pretty good distro for newbies.
So the install goes great. Mandrake does a beautiful job on hardware autodetection, and the partition manager is pretty slick too. After the install, I start tweaking things. After modifying the ugly-by-default desktop, I proceed to snag those binary-only NVidia drivers that everyone raves about. I install the rpms, then restart X. X promptly crashes. I remove the rpms. X still promptly crashes. I reboot. X still crashes. I figure, "Okay, I'll reload the XFree86 rpms off of the CD." Linux does not comprehend the iso9660 filesystem.
Now I'm becoming irritated.
After some dicking around, I finally realize that lilo is loading up a kernel which does not have all the corresponding modules installed. The kernel that *was* being used, which *does* have all the appropriate modules, is no longer in
Finally I decide I am wasting time, and I take 20 minutes to reinstall the freaking OS. WITHOUT the binary NVidia drivers, which my friend would probably not use anyway, since he has a shiny copy of WinXP on another partition.
I am rather uncertain how I feel about Mandrake 8.1 at this point.
On the bright side, I inherited my friend's old 500MHz box. He was about to throw most of it in the dumpster. I was rather happy to swap that motherboard in place of the 200MHz machine I had sitting out in the living room.
When we write programs that "learn", it turns out we do and they don't.