Search Results: "spa"

11 August 2006

John Goerzen: Whose Distributed VCS Is The Most Distributed?

Lately I have been trying out a number of distributed version control systems (VCS or SCM).

One of my tests was a real problem: I wanted to track the Linux 2.6.16.x kernel tree, apply the Xen patches to it, and pull only specific patches (for the qla2xxx driver) from 2.6.17.x into this local branch. I wanted also to be able to upgrade to 2.6.17.x later (once Xen supports it) and have the version control system properly track which patches I already have.

But before going on, let's establish what it means to be an ideal distributed VCS:


There are also some things that we would generally want:



Evaluation

Let's look at some common VCSs against these criteria. I'll talk about Arch (tla, baz, etc), bzr (bazaar-ng), Darcs, Git, Mercurial (hg), and Subversion (svn) for reference.

1. The fundamental method of collaboration must be a branch
All of the tools pass this test except for svn.

2. Branching should be cheap
Everyone except svn generally does this reasonably well.

The tla interface for Arch had a pretty terrible interface for this, so it took awhile simply due to all the typing involved. That's better these days.

Darcs supports hardlinking of history to other local repositories and will do this automatically by default. Git also supports that, but defaults to not doing it, or you can store a path to look in for changesets that aren't in the current repo. I believe Mercurial also can use hardlinks, though I didn't personally verify that. bzr appears to have some features in this area, but not hardlinks, and the features were too complex (or poorly documented) to learn about quickly.

svn does not support branching across repositories, so doesn't really pass this test. Branches within a repository are not directly supported either, but are conventionally simulated by doing a low-cost copy into a specially-named area in the repository.

3. Merging between branches is intelligent
Arch was one of the early ones to work on this problem. It works reasonably well in most situations, but breaks in spectacular and unintelligble ways in some other situations.

When asked to merge one branch to another, Darcs will simply merge in any patches from the source branch onto the destination which the destination doesn't already have. This goes farther than any of the other systems, which generally store a "head" pointer for each branch that shows how far you've gone. (Arch is closer to darcs here, though ironically bzr is more like the other systems)

Merging between branches in svn is really poor, and has no support for recognizing changesets that have been applied both places, resulting in conflicts in many development models.

4. Inividial changesets should be mergeable without bringing across the whole history
Darcs is really the only one that can do this right. I was really surprised that nobody else could, since it is such a useful and vital feature for me.

Both bzr and git have a cherry-pick mode that simulates this, but really these commands just get a diff from the specific changeset requested, then apply the diff as with patch. So you really get a different changeset committed, which can really complicate your history later -- AND lead to potential conflicts in future merges. bzr works around some of the conflict problems because on a merge, it will silently ignore patches that attempt to perform an operation that has already occured. But that leads to even more confusing results, as the merge of the patch is recorded for a commit that didn't actually merge it. (That could even be a commit that doesn't modify the source.) Sounds like a nightmare for later.

Arch has some support for it, but in my experience, actually using this support tends to get it really confused when you do merges later.

Neither Mercurial nor svn have any support for this at all.

5. Branching preserves full history
git, darcs, and Mercurial get this right. Making a branch from one of these repos will give you full history, including individual diffs and commit logs for each changeset.

Arch and bzr preserve commit logs but not the individual changesets on a new branch. I was particularly surprised at this shortcoming with bzr, but sure enough, a standard bzr merge from a remote branch commited three original changesets into one and did not preserve the individual history on the one commit.

svn doesn't support cross-repo branching at all.

6. Merging preserves full history
Again, darcs, git, and Mercurial get this right (I haven't tested this in Mercurial, so I'm not 100% sure).

Arch and bzr have the same problem of preserving commit logs, but not individual changesets. A merge from one branch to another in Arch or bzr simply commits one big changeset on the target that represents all the changesets pulled in from the source. So you lose the distinctness of each individual changeset. This can result in the uncomfortable situation of being unable to re-create full history without access to dozens of repositories on the 'net.

Subversion has no support for merging across repositories, and its support for merging across simulated local branches isn't all that great, either.

7. It is possible to commit, branch, merge, and work with history offline
Everyone except Subversion does a good job of this.

8. The program is fast enough for general-purpose use
All tools here are probably fast enough for most people's projects. Subversion can be annoying at times because many more svn commands hit the network than those from others.

In my experience, Arch was the slowest. Though it was still fine for most work, it really bogged down with the Linux kernel. bzr was next, somewhere between arch and darcs. bzr commands "felt" sluggish, but I haven't used it enough to really see how it scales.

Darcs is the next. It used to be pretty slow, but has been improving rapidly since 1.0.0 was released. It now scales up to a kernel-sized project very well, and is quite usable and reasonably responsive for such a thing. The two main things that slow it down are very large files (10MB or above) and conflicts during a merge.

Mercurial and git appear to be fastest and pretty similar in performance.

All of these tools perform best with periodic manual (or scheduled cron jobs) intervention -- once a month to once a year, depending on your project's size. Arch users have typically created a new repo each year. Darcs users periodically tag things (if things are tagged as part of normal work, no extra work is needed here) and can create checkpoints to speed checkouts over the net. git and Mercurial also use a form of checkpoints. (not sure about bzr)

Subversion works so differently from the others that it's hard to compare. (For one, a checkout doesn't bring down any history.)

Conclusions
I was surprised by a few things.

First, that only one system actually got #4 (merging individual changesets) right. Second, that if you had to pick losers among VCSs, it seems to be Arch and bzr -- the lack of history in branching and merging is a really big issue, and they don't seem to have any compelling features that git, darcs, or Mercurial lack. #4 was a unique feature to Darcs a few years ago, but I figured it surely would have been cloned by all the other new VCS projects that have popped up since. It seems that people have realized it is important, and have added token workaround support for it, but not real working support.

On the other hand, it was interesting to see how VCS projects have copied from each other. Everyone (except tla) seems to use a command-line syntax similar to CVS. The influence of tla Arch is, of course, plainly visible in baz and bzr, but you can also see pieces of it in all the other projects. I was also interested to see the Darcs notion of patch dependencies was visible (albeit in a more limited fashion) in bzr, git, and Mercurial.

So, I will be staying with Darcs. It seems to really take the idea of distributed VCS and run with it. Nobody else seems to have quite gotten the merging thing right yet -- and if you are going to make it difficult to do anything but merge everything up to point x from someone's branch, I just don't see how your tool is as useful as Darcs. But I am glad to see ideas from different projects percolating across and getting reused -- this is certainly good for the community.

Updates / Corrections
I got an e-mail explaining how to get the individual patch diffs out of bzr. This will work only for "regular", non-cherry-picked merges, and requires some manual effort.

You'll need to run bzr log, and find the patch IDs (these are the long hex numbers on the "merged:" line) of the changeset you're interested in, plus the changeset immediately before it on the same branch (which may not be on the same patch and may not be obvious at all on busy projects.) Then, run bzr diff -r revid:old-revid-string..new-revid-string.

I think this procedure really stinks, though, since it requires people to manually find previous commits from the same branch in the log.

10 August 2006

Martin F. Krafft: Blackouts and encrypted filesystems

After some recent filesystem fun, I now have a laptop with encrypted partitions, using dm-crypt and LUKS, conveniently installed with partman-crypto. Pre-Scriptum: I have updated my previous post about XFS troubles in response to Ingo's statements. Just in case you care... The following post poses a question and a meta-question: As I was cycling home today, I thought about what would happen if my laptop lost power now in the middle of a write operation. Sure, ext3's journal would make sure the filesystem was consistent, but what about the actual data on the disk? Journaling works by writing a change to the journal, then writing it to disk, then deleting the enty from the journal. If the filesystem is mounted and it has entries in the journal, those are "played back", meaning they just get written to disk again, overwriting potentially incomplete data written as the power was lost. Yes, this is simplified, but it'll do for now. With encrypted filesystems, there's an important layer between the filesystem and the physical storage: the encryption algorithm. An encryption algorithm like AES works on blocks, by default 64 bytes in size. 64 bytes are not a whole lot, but given the nature of hard drives, it's not possible to write 64 bytes to the drive atomically [*]. Thus, conceivably, it could happen that your power cuts out after only 32 bytes have been written. I don't believe dm-crypt does journaling for the encrypted data it writes, so effectively, a power loss on systems with encrypted filesystems almost certainly means data loss? Please correct me if I'm wrong! And the meta-question would be: where would I go to discuss such issues? I've abused debian-security previously, the issue seems too general for the dm-crypt mailing list, there is cryptography t metzdowd.com but somehow this does not seem to be a crypto problem... so where would you take this? Let me know...
[*]

In a computer architecture course in college, the prof raised the interesting point that between the loss of power and the actual disappearance of all current in the circuits, several million operations are possible on modern machines. I have not yet heard of any computer or hardware device making use of those precious cycles.

Update: actually, several manufacturers are making use of the precious cycles. See for instance this post, which describes some stuff done by SGI. Hanspeter Kunz also adds that harddrives use this time to park their heads.

Martin F. Krafft: Through with XFS

I am through with XFS, once and for all. Well, at least for laptops. I still think it's a good filesystem when you can ensure that the power never goes, and your hardware is reliable, but it's just not adequate for laptops or even desktops. I ran into some serious problems a while ago, but managed to recover. Two nights ago, however, three XFS filesystems on my laptop decided to blow up and left my system thoroughly broken. I guess as the hibernate maintainer, I should really start doing my tests somewhere else than my main system... It all started out with a dist-upgrade and this output:
dpkg: error processing /var/cache/apt/archives/dpkg_1.13.22_i386.deb
(--unpack): unable to make backup link of
'./usr/share/man/man1/dpkg-deb.1.gz' before installing new version: Unknown
error 990
Looking at /usr/share/man/man1, I started to anticipate the apocalypse:
# ls -l /usr/share/man/man1
total 7956
?????????? ? ? ?    ? ? ? 7zr.1.gz
?????????? ? ? ?    ? ? ? 822-date.1.gz
?????????? ? ? ?    ? ? ? CA.pl.1ssl.gz
?????????? ? ? ?    ? ? ? Defoma::Common.1.gz
So I look at the log, and amidst kernel oops notices, there's this lovely cookie:
Filesystem "hda6": Corruption of in-memory data detected.  Shutting down
filesystem: hda6
Filesystem hda6 is /usr, so at that time I figured "it could have been worse", booted to single user, and remade the filesystem with the intention to simply reinstall all packages... when I found /var/lib/dpkg/info to be in similar condition. The rest of /var seemed fine, but I resolved then that there was no hope in reviving this system. Fortunately I brought an external drive that had just enough free space to hold my /home and some other stuff, but since USB is really slow when it comes to shifting large amounts of data, I decided to do something productive in the mean time and to answer some outstanding mails. It wasn't difficult to get SSH back up, so I started to work on a remote machine and used the time efficiently. Some time later, though, I got confused in the mist of screen sessions and was browsing my home directory on the laptop, thinking I was elsewhere (my home directories are mostly synchronised), when I noticed a directory in similar condition as the above. Oh shit. Imagine my pain and fear as I first thought my remote machine was also dying, imagine the sigh when I found out I was on the local filesystem, and imagine the shock when I realised that /home was also affected by the XFS breakage... A glance around /var confirmed that the XFS breakage was actually spreading and had now affected three filesystems on this machine. Fortunately, by that time, I had copied everything to the external drive, and decided to put my laptop and myself to sleep. I woke the next morning to the task of reinstalling the thing and decided to be optimistic about it. After all, a reinstall would mean I could finally try partman-crypto and encrypt my laptop's data to protect against leaking sensitive stuff in the case of loss or theft of my laptop. The installation was not as painless as I had hoped, but that was mainly because I ran into a known problem with the graphical installer and partman-crypto, which does not allow to set up volumes with random encryption keys (e.g. swap; see the forthcoming announcement for the beta3 release of the installer), and a bunch of smaller bugs. I had to restart the installation with the traditional frontend to get what I wanted, but other than that, I was very impressed with what our installer development team has accomplished! And a special round of gratitude to Frans Pop for not losing his patience while helping me on several occasions throughout the process. Now, 24 hours after the incident, I am back to normal with a fresh laptop and no data lost (except for one directory which I pulled from a mirrored remote machine; it had no local modifications (so why did XFS screw it up anyway?)). The fonts are all jaggy, so there's something I have to figure out. All things considered, I am sad to have lost 24 hours, but I can also relax more now, without fear of further XFS breakage or loss of private data. Update: Oh, and despite this, I did choose ext3 for all my laptop's filesystems. JFS was really cumbersome and slow last time I tried it, and I surely would not touch RazorFS after experiencing serious data loss on numerous occasions. Update: Two responses so far. Full ack for Julien (except for him laughing at me), Ingo's post warrants a reply though. First, ext3 is also journaled, and if you're about to say "yeah, but it's a hack on top of ext2, well... ext2 is damn mature, and journaling isn't really rocket science, so that "hack" isn't going to be too complicated. In fact, I like the idea of journaling being an option rather than a built-in feature. Second, of course you're supposed to keep backups. But since you keep backups, my top requirement of a filesystem is not "how to get the data back", but "how to ensure it does not break. If it breaks, I can reinstall and restore from backup, but that's a certain amount of time lost. If it doesn't break, well, that's like stealing a little something back from death then, isn't it? Third, I do follow the linux-xfs mailing list, but so what? I did not have write cache enabled, and I was running the 2.6.17.7 kernel at the time of the mishap. Lastly, you point to "excellent tools" to recover the filesystem. I am not sure how excellent xfs_repair really is when it reports "bad magic number 0x0 on dir inode 4696727" during the run, claims to have fixed it, I mount the filesystem, unmount it, run xfs_repair again and get the same message. No filesystem is perfect, and as we know from Biella's problems (among many others, ext3 is no exception. But we did get her data off! So then it's really an open field again, crap filesystem against crap filesystem. I guess at this point it helps to know that ext3 actually follows VFS semantics, while on XFS, a completed sync() syscall does not actually mean it has written the data to disk (see e.g. #317479). And then there are bugs like #239111... ext3 it is for now. If that let's me down, I'll try JFS. If that fails and noone has actually implemented a proper filesystem, I might have a go myself. Haha. Update: Alceste Scalas adds:
Ingo is right when he says that every filesystem has bugs --- but bugs apart, the design of Ext3 (i.e. its physical-block journaling) makes it a far more reliable choice for desktop and laptop PCs, expecially for people without an UPS. An Ext3 filesystem could only crash because of a bug or an hardware failure, while an XFS filesystem can be trashed even without bugs or hardware failures, due to the unavoidable consequences of a power loss on PC-class hardware.
He also alerted me to this mailing list post, which compares data=ordered journaling of ext3 (which almost noone does for performance reasons) with XFS and RazorFS. Update: You may also be interested in this post. Update: Otavio Salvador points me to this FAQ entry, which SGI must have added very lately. It explains how to deal with the directory corruption that was part of my problem. I guess I would have liked to know earlier, but I consider the outcome with dm-crypt + ext3 a win anyhow.

8 August 2006

Aigars Mahinovs: SBackup revitalising - I18N

The development of SBackup was very stale for most of this year, mostly because many of the bug/feature that user were requesting required a significant rewrite of the codebase and at the same time I saw how messy the code has become over time. A few people came up and offered some help, but out of that only new icons and a command-line parameter parser were fully developed - other developers just took a task or a an idea and disappeared. However this week my trust in Open Source development model was reinforced by Jonh Wendell. He approached me yesterday about localising SBackup to Portuguese and was also willing to add the i18n support that was needed for that. I gave him all the details he needed and forgot about it. But today he came back with working code and a translation. That really inspired me to resume working on improving SBackup one little it at a time. Expect a new release version 0.10 soon with i18n and a few long awaited bugfixes. Also, if you want to translate SBackup to your language - use this file as your template. There are only 75 strings to translate. P.S. One happy user of SBackup donated some of his time cleaning up SBackup wiki from spam. Thank you for that! Now I only need a way to prevent the spam from coming back there :(

Ross Burton: Cornish Bliss (part 2)

Now, where was I... Carbis Bay Carbis Bay Ah yes. After the horrendously grim weather had passed, the weather improved and we headed for the beach. On the way down we commented on how this was the classic British burning weather: bright sunshine, a strong breeze, and occassional clouds combine to burn skin without even feeling that hot. Of course knowing this meant nothing, we were too distracted with purchasing pasties and drink to think about putting a decent amount of sunblock on. Steve Relaxing Obviously the main thing to do at the beach, after we'd sat down, not applied sunblock, and scoffed a pasty, was to dig a hole. A huge hole. Spades were purchased and we took turns to help Pete dig The Hole. Digging Diggers Astute readers will notice the inevitable outcome of saying this is burning weather, not putting enough sunblock on, and digging a hole (an activity that results in the back being exposed to the sun). Ouch. After the hole had been dug we had to full it in again to avoid trapping small childen in it. Obviously this led to a series of hilarious scenes involving burying Pete up to his chest, modelling breasts and a penis, and so on. Finally the hole was flat again, at which point an impromptu long jump sand pit was arranged. I came first in the long jump, and although failing miserably at triple jump although I swear my technique was best (it's all in the wrists). Pete Next was to explore the costal path in the opposite direction towards Porthkidney beach. The beach is pretty huge by my standards, and due to the lack of facilities (no close car park, shops, toilets, and so on) it's almost deserted: there were a few other people there with dogs (the other local beaches are dog-free in summer) and that's about it. Googling to confirm the name of the beach reveals that there is a history of naturism and "inappropriate gay activity", but we didn't encounter any of that. ;) Progression Ross Footprints The costal path was great, far more rough than the walk to St Ives (often just a foot wide cutting in the ground), steep in places, and generally running very close to the cliff edge. The views were great, but I always think what a horror paths like these would be in winter, with the full force of the Atlantic winds pounding against the cliffs. As a finale it turns out that the costal path follows the cliff all the way along the back of the beach, which would easily be another twenty minutes of walking to reach sand. There is a shortcut down some stone stairs to the beach, but we arrived at high tide and the bottom of the stairs (well, rocks) were a foot deep in water. Wading up to the beach was a fitting end to the walk, and made the beach feel like our own little desert island! Cliff Steps Wading To Land Limpets! Ross I'll have to explain the expression on Vicky in the above photo. As a child when Vicky went to visit her father in Devon they used to go to the beach and spend the day annoying the wildlife: chasing crabs, kicking limpets off rocks and so on. When Vicky noticed that the rocks at the bottom of the cliff were covered in limpets, she shouted "limpets!" with a manic expression and preceeded to prod them frantically. After lots of sitting around and digging tunnels, we headed for the dunes for a spot of dune diving. This involves running at top spead down the dunes and throwing yourself into the sand at the bottom. Ah, the simple pleasures in life! Porthkidney Beach Dune Diving Dune Diving Dune Diving Dune Diving After my dive I ran back up the hill in the manner of a mad man, arms out-stretched to Vicky as I collapsed in front of her, gasping "It's". "What?", was the confused reply. This is terrible, I really need to get Vicky to watch the Best Of Monty Python DVD we have somewhere... It's! Possibly more to write, but Lost is on, so I'm off for now.

Gunnar Wolf: Biting your tongue

Sorry, this post will only mean anything to you if you can grok an es_* locale, preferrably an es_ES one. B3co points to a wonderful site, which I came accross sadly when I am about to start working. Still, lots of good laughs taken from mistakes in the Spanish press. The site? Morderse la Lengua (Biting your tongue), from Centro Virtual Cervantes. I found such beauties as the world's largest telescope, which can see object 100 meters away, a Boeing that goes back to Madrid through a crack, a Spanish airplane crashing in Turkey for the third time in a year. A Spanish party asks for the right to conduct abortions until the twelfth month, and -avoiding the problems that come with advanced age- a business looks for secretaries between 20 and 290 years old. And many, many, many more.

Joey Hess: moving kite

(This is a long ramble with a concluding announcement that kitenet.net users should read even if they skip the rest.)
Back in spring of '03 I bought a used VA Linux 2u on ebay for $300 and dropped it a cabinet in the blue spaceship halls of the Hurricane Electic co-lo in Fremont, CA. I've never seen it again; I use it every day. Weird world.
Digression: The reason I needed to have a hunk of silicon and spinning metal hooked up to a power and an ethernet cable somewhere is this: On the internet you can either be a soverign entity, controlling your own computation, choosing your own software, making your own mistakes, and doing things your way -- or you can be a sheep. Or at least that's what I believe; reasonable people think otherwise. Here's a story illistrating this concept. Not only do I want to be a sovereign entity on the internet, but I want to empower others to be the same, to the small extent that I can: making software that supports it easier to install; contributing to co-ops like the one that hosts my computer; working on software that empowers users to become programmers; fiddling with making special-purpose embedded hardware useful for general purpose use; and letting a few users run code and such on my server and use it much the same as I do. It's a theme through a lot of my activities.
Anyway, it seems like my computer has been there longer than three years, and it's had a good run, despite little incidents like: Mostly though it has kept on running without problems for years, being my personal server and performing a few other roles. This seems to prove something I've long suspected; that computer hardware runs much better when I'm not near it. But that can't last. Eventually a hard drive will die, eventually whatever fans have (probably) already died will overheat it. Eventually I'll screw up a kernel update (which still have to be done blind, since I never did get grub talking to that serial port.) One option was to go back out there and do enough maintenance for it to last another three years. The other option was to move away from running my server on that nasty computer hardware stuff. Happily, in the intervening three years, that has become, in a way, possible. Xen and the like are big news, letting a single standard server appear as multiple separate machines. Not a new idea, but an idea newly within easy reach. So when I heard that Steve Kemp was puttng together a Xen co-op to buy a machine and split it up 6 ways, into 6 virtual machines, I jumped at the opportunity. Not only does Steve know a lot more about administering Xen than I do, but he got a good deal for on hardware that should be fully managed in case of breakage. Plus, he's providing a template for doing this on a grassroots level that I hope many other people follow. (Only partly because I want to have more than one little virtual server other there, rather than one big physical one..)
I'm still a bit unsure about Xen from the point of view of wanting to fully control my machine, since it does a) let the admin of the underlying hardware get at any data they want to if it's not encrypted and, b) it doesn't make it easy to run your own kernel. Luckily I a) basically trust Steve, and b) he seems to want me to run the exact same kernel (latest Debian unstable stock kernel) that I want to run.
So, the conclusion to this ramble is that kitenet.net will be moving, over the next few weeks, to wren.kitenet.net, which is theoretically located in London, but which is not a "real" computer as you might be accustomed to thinking of them. I decided against moving it all at once, and will be trying to keep all the various services working while shifting them around. The utterly gory details of the transitions are being kept on kite's page in my wiki, and announcements for kite users will be posted to kite's blog.

7 August 2006

Isaac Clerencia: Homesick

Well, it is actually the other way around, I’m really sick of “home”, longing to get out of here (both Zaragoza and Spain).
Tomorrow in the morning I’m taking a plane to visit London for a week, but I fear that’s only going to make things worse.
I will report when I’m back, and also release Battle for Wesnoth 1.2 :)

6 August 2006

Josselin Mouette: How to introduce bugs in other packages

As the hdf5 maintainer, I already knew upstream developers are able to imagine really innovative ways of writing broken autoconf scripts, but this one made my day.

After my first package build on my fresh amd64 system, I noticed lintian complained about a rpath:
W: gconf2: binary-or-shlib-defines-rpath ./usr/bin/gconftool-2 /usr/lib64

I found soon that this was caused by /usr/lib64 being mentioned in the libpopt.la file. The popt build system is, well, interesting. Or funny, if it doesn't affect you.

In configure.ac:
dnl XXX Choose /usr/lib or /usr/lib64 for library installs.
MARK64=
case "$ target_cpu " in
x86_64* powerpc64* ppc64* sparc64* s390x*)        MARK64=64 ;;
esac
AC_SUBST(MARK64)

And in Makefile.am:
usrlibdir = $(libdir)@MARK64@

This is subtly breaking a large number of packages on amd64, as libtool, not knowing it is a symbolic link to /usr/lib, introduces a rpath for this directory it doesn't know about. This was already reported as #374797.

Daniel Jacobowitz: Look Ma, I can blog too!

I've been meaning to set up a blog to keep track of random things that I run into and feel like sharing. One of those happened today, so I finally figured out how to install blosxom. I haven't gotten around to making a pretty CSS for it yet (not sure if I ever will, but I can pretend...) so for now it's somewhat utilitarian and default-looking. Blosxom is pretty bare-bones without plugins, and while Blosxom itself seems well documented the plugins are much less so. I spent about ten hours mucking around with the minimal set of plugins I needed to get something acceptable (timezone, autoblock, feedback, entriescache, interpolate_conditional, permalink, cooluri2, lastmodified, and a bunch of modified templates to use feedback and permalink). I tried and then discarded followsymlinks and metadate (for not playing well with other plugins I was using) and entries_index (lastmodified wanted something which set %others, so I used entriescache instead). I needed to hack lastmodified to work with entriescache, since it cleverly gets the timestamps from the cache, which are now publication dates. So here's a slightly modified lastmodified plugin which stats files directly. I spent a while getting RSS to behave, too. I used lastmodified to set lastBuildDate, modified the story template to use permalinks which were acceptable to feedback (it wants .rss on the end or it decides they aren't story pages), and eventually figured out that I needed to set <guid> to prevent liferea from thinking each modified post was new by comparing descriptions. All in all it was far more work than I meant to do last night when I decided this was a good idea. Hopefully I haven't messed it up too badly. We'll see whether I upset Planet. Leave me a note if it makes your feed reader unhappy, or something. I was actually going to use ikiwiki, but chickened out at the last moment; blosxom had fewer dependencies and I didn't want to mess around with getting ikiwiki to install on sarge. And it still seems to be evolving - so while it's wicked cool, I think I'll let it have a little more time to settle first. I spent most of this morning messing around with OpenWRT. I bought a LinkSys WRT54G quite a while ago (to replace a flaky D-Link DI-614+), and put OpenWRT on it. It took a little work to get it to do what I wanted, including fixing a quoting bug in the WPA startup script and tracking down an updated dnsmasq, but eventually I got it set up. Mostly the stock things: NAT, firewalling, wireless with WPA2, DHCP, internal DNS. Except that it can do one thing that none of the stock firmwares could: provide static DHCP addresses to specific boards, including custom options. This was absolutely essential for me to retire my old DHCP server, since I keep an embedded board lab in my office. I need the DHCP server to be able to tell boards where to get kernels and root filesystems. Anyway, it works well. Except that I've been having too many dropped connections lately and I have no way to track down whether it's the laptop (Dell Latitude D400, ipw2200 - mostly in Windows lately, I haven't retested it in Ubuntu in a bit) or the AP. I updated the Windows drivers and now it periodically tries to rekey, fails, reports "duplicated RSN" whatever that means, and periodically reports authentication failures. About the same as before except that now it has better diagnostic tools to tell me in undocumented messages what went wrong, instead of just telling me that something went wrong. So I next went looking for an updated driver for the other end. Which was a mistake. Note to others: if most of your packages are on a cromfs, running "ipkg update" is going to tear through your available MTD space really fast. And ipkg is not graceful at updates the way dpkg is; it failed to upgrade base-files due to file conflicts, leaving the updated dnsmasq unable to start. These are the same sorts of conflicts that you see in apt-get upgrade periodically: files moving from one package to another without sufficient package relationships (or in ipkg's case, maybe sufficient package manager support) to do it seamlessly. Then when I retried the update it succeeded, but it wiped out my firewall config and password file without asking. I don't really blame OpenWRT for this. "ipkg update" just isn't a good idea with their tools. But I miss apt. And I really miss 2.6 kernels; the binary-only Broadcom drivers that power the WRT54G only work on 2.4.30. And it's tight on flash/RAM anyway. So I went looking at options. Obviously, I can't get something that does exactly what I want for the kind of mass-market price the WRT54G sells at. But a suggestion from a coworker sent me looking at Mini-ITX systems, like the nice-looking Mini-Box M200. And at smaller things, like the WRAP WiFi and Soekris boards. I haven't done a hardware project of any sort since last summer, so I'm thinking about building myself an access point with benefits. I haven't decided what the benefits will be yet - if I get something like one of the Soekris boards, probably just bigger compact flash and back to dnsmasq for internal DHCP. But if I get a Mini-ITX system, I can throw a hard drive in it, arrange over-the-network backups, and use it as an incoming mail hub. This would let me decomission one of the always-on computers in my office. A mighty attractive proposition, although a bit less so now that the heat wave has broken.

5 August 2006

Steve Kemp: The foulest stench is in the air

I received a few interesting comments on my last post about mailing list software so I’m going to summerise my current thoughts. Before covering the available software I’ll say what I personally need from a mailing list manager: When it comes to the handling of spam I mostly don’t care. Messages are filtered via the mailserver at SMTP time (ditto for viruses) and although moderation is generally useful I prefer to either bounce or eat the messages which are not forwarded. (Either case is fine so long as logs are available). This simplifies things significantly since the pedning messages don’t need to be stored/queued. Here is a list of all the mailing list software which is available to users of Debian’s Sarge release along with some of my thoughts/comments/impressions. (Some of these details may be wrong, I’d happily be educated …):
ecartis
The Ecartis package for Debian GNU/Linux is mostly broken. In sid the package is essentially unmaintained, and that is a worrying sign. Ignoring that for the moment the software works reasonably well. It allows most of the kind of control I desire but the significant downside is that it is severaly broken with regard to character sets and encoding issues. For a cromulent example see this message.
enemies-of-carlotta
This software wins double-plus bonus points for a most excellent name. Naming software is hard, and although the relationship between the film and the purpose of the software is random I like it! eoc suffers from a virtually non-existant set of documentation. Whilst it might be simple to use I it isn’t documented except in a single manpage. I seem to recall I had difficulty getting my Exim4 configuration to pass relevent environment variables ($SENDER + $RECIPIENT) passed into the script properly. The lack of documentation just made this more irritating.
fml
There is a lot of documentation for this, which is half in English and half in Japanese. I admit I mostly didn’t explore this software - although my impression is that it doesn’t have support for virtual hosts.
mailman
Mailman is big, popular, and I dislike it with a passion. The admin interface has a billion configuration options, but even if you know they exist finding the damn things are an impossible job. The system requires about five python processes running even when it is “idle”. In my mind a mailing list software doesn’t need a daemon componant - just a program to spawn when a message “comes in”. The whole password system is broken and gains you zero additional security. Again to rail against mailman: it has integrated message archival, something i think should be distinct. (eg. mhonarc). Virtual hosting is possible, but I believe that mailing list names must be distinct regardless of domain name. That may not be correct honestly I’ve detested the softwware with a passion which suprises me and I may not be 100% objective here.
mlmmj
Looks nice. Looks clean. doesn’t look particularly joyful. (The name mlmmj means “mailing list managing made joyful”.) It doesn’t appear to support virtual hosting, and it doesn’t appear to support enough different list types.
quickml
Listens upon a network port (10025 by default) and not support different list types or virtual hosting.
smartlist
Complex. Icky.
sympa
Seems very featureful, but it is yet another system which has an integrated web-component like mailman == bad. It doesn’t support having the same named mailing list in multiple virtual hosts, although it appears to do everything else I desire.
In summery: There are several available packages, but none are good, and many are actively bad. I still believe that creating another list server would be a useful thing to do. I’ve written a brief design overview elsewhere which I will post for comment later. I’d like to support a couple of “advanced” features such as allowing the mailing list software to only accept GPG signed messages, or to act as a remailer such that messages posted to the list will be automatically GPG signed prior to delivery to all users. Looking around I think most of the individual bits of code are available (in Perl). eg. Mail::Message, Mail::GPG, etc. Its just a matter of gluing the bits together in a modular fashion.

4 August 2006

Gunnar Wolf: Today's first good laugh...

Goes, of course, to good Maulkin. Worst of all, it seems to be inspired by real life - Now, could you do a similar analysis of end results? :)
And when sharing it, Rodrigo sent me to Spamusement. What's that, you ask? A magic machine that turns spam titles into humor. Two beautiful examples: It's not a joke and Your Dog Will Love It!.
Now, please, can I have my 30 minutes back?

Pascal Hakim: Teams.debian.net

One of the things I've been working on, on and off for the last few months is teams.debian.net. Along with a few others, we felt that there were not enough options for Debian-related mailing list hosting. While this may seem strange to some, a number of people at DebConf5 found the idea to be worthwhile. Most Debian-related lists which would not be considered for lists.debian.org could find hosting at teams.debian.net instead. The main purposes behind teams.debian.net are:
To request a new mailing list, simply follow the instructions on teams.debian.net Of course, like any free software project, there are still some things which are needed. The main one is currently the lack of a public web archive for lists which want it. I wanted to try to replace MHonArc with something that looked a little better and was more user-friendly, but I have yet to find something which I think would be an appropriate replacement. While some have suggested Lurker, I feel that is not very useable in a long term hosting environment, as it is harder to navigate around older entries. While this is acceptable in some places, it's definitely not in others. You can consider a "Dear Lazyweb" paragraph if you wish. Many thanks to Andreas Barth and Martin Zobel-Helas for their help in setting this up, providing machine space, and prodding me along when necessary.

Enrico Zini: addis-tasks-and-skills

Addis course Tasks & Skills questions

Kai Hendry: Howto: Copy&#038;Paste

Ok, I know I’ve whinged about Copy & Paste before. It just seems to have got worse. Maybe I am becoming more inept. Though I have a dream. A dream whereby I can copy and paste the URL bar of my Firefox with:
  1. CTRL+L
  2. CTRL+C
  3. Alt+1 (switch to uxterm)
  4. Middle click into uxterm or shift+insert on keyboard
Instead of the nightmare right now:
  1. CTRL+L
  2. CTRL+C
  3. Alt+1 (switch to uxterm)
  4. Middle click into uxterm
  5. Wrong text! (if you are using vim and pasting a lot of text, hilarious consequences ensue)
  6. Undo damage
  7. Alt+2 (switch to firefox)
  8. Find correct tab
  9. CTRL+L
  10. Double click with LMB (i hate having to use the mouse here)
  11. Pray
  12. Double click with LMB again just to be sure
  13. Alt+1 (switch to uxterm)
  14. Middle click into uxterm
Btw my window manager is wmii. Update: The dream has been realised! Step four is though now a Shift+Middleclick with this Xresources configuration for uxterm. Thanks guys…

Christine Spang: Just Dinner

I feel a little scandalous when eating dinner in a sit-down restaurant by myself. There’s something weird about walking in and saying, “just one,” and then constantly being approached a little tentatively by the waitress, occasioning an “are you alright?” once or twice. Maybe I’m not smiling enough. Maybe I look depressed and friendless. But I really just was passing through the neighbourhood on the way from here to there, and happened to be really hungry and in the mood for this particular restaurant. Huh.

3 August 2006

Biella Coleman: In between pride and anxiety: the state of South Africa

Writing blog entries in South Africa did not come so easily, mainly for technological reasons. While for the first 4 days of my trip I had steady Internet access, most of my time was spent enjoying the Law and Society Summer Institute. Once over, I headed from Joburg to Durban and my access became much spottier, not to mention that Bernard, my indefatigable host, made sure the days were filled seeing the gritty but beautiful urban beach town, hanging with the crew of University of Chicago students/graduates that descended upon the city, and having a go at sufring in the Indian Ocean. In the evenings, I did have some free time, but they were too chilly for me to do much of anything but burrow myself deep under a small mountain of covers and pass out after a day filled with plenty to do and see. The theme of the conference I attended was the intersection of rights and regulations and given the Summer Institute was held in South Africa, it was not all that surprising that much of the conversation centered on one class of rights, those of human rights. Since the end of apartheid, SA has become a particularly-impossible-to-ignore beacon for human rights, and acts as a sort of modern guiding light that has defined the meaning and institutionalization of human rights post-WWII. So if WWII and the Holocaust represent the generative genesis of human rights, South Africa represents a new era of human rights, a place that revisited, rejuvenated the discourse and implementation in a post-Apartheid Constitution that has been touted, world-wide, as exemplary for its generous commitment to equality and other rights. In this respect, one feels, quite everywhere, the collective pride of a nation who managed to end a brutal regime and it did so under the gaze of world who followed the drama on TV screens, college campuses, and newspaper headlines. As SA has moved to another era of picking up pieces and trying to build a more equitable society, many in the world are still eagerly watching. But pride does not stand alone, in isolation, for it mixes with other collective sentiments. The collective admiration and pride of a nation, like the sweet water of a river, visibly and freely mixes with a more salty frustration and anxiety to produce an in-between brackish state of affairs. Pride in other words sits alongside social anxiety, which palpably manifests at different registers and tones, to texture the cultural and political landscapes of SA. The frustration follows from the fact that many are still living in dire poverty and in the last ten years, many steady jobs have vanished. Shantytowns, the symbols and material conditions of apartheid, are still omnipresent (though very well hidden from the middle class and the rich). The ruling government, while having roots in communism and socialism, has to contend with a world-wide regime of neoliberal governance and, thus, must try to balance satisfying commitments with the outside world with delivering promised goods to its population, demands that often run uncomfortably counter to the neoliberal logic of deregulation and financial austerity. Alongside this or perhaps as a manifestation of it, the talk of the town, especially in Johannesburg, is of the rampant crime. As a sign of crime and fear, most middle-class and wealthy houses are adorned with metal fences, barbed wires, electric fences, and a simple sign from private security companies (Chubb being the most common in Johannesburg) that announce they provide armed response security to break-ins. This is serious stuff. And while some of the fear of crime is a self-perpetuation exaggeration of itself (and as my friends explained, before the end of Apartheid the monitoring of crime was not as common, so crime statistic can only go one direction, up), it has in certain parts of cities spiraled out of control. And if there comes a time when the crime abates, the architecture of barbed wire and security services is now really an architecture-in-place and will be hard to dislodge from the mental and physical spaces of SA. So more than anything else, I found that the vibe of SA seesaws between pride and anxiety. As a visitor, you are enveloped in this dyanmic duality. You can’t help share in the pride now enshrined in national monuments and museums. But at the same time, you also are not sure what path the nation is heading in and you too share in the fear of crime and move your body and belongings cautiously through the cities. There is no doubt of the governmental commitment to provide services like health care and housing, a commitment that in places like the United States seems to exist more like an endangered species on the brink of perpetual extinction. And so it was awfully refreshing to be in a place where talk of such things is not seen with a suspicious eye that in the US is often tagged as something that runs counter to the realization of freedom and a just society. But whether these important goals can be brought into the plane of existence is another question, one that is not unique to SA but is something that many other countries, especially Latin American countries, from Venezuela to Bolivia are also asking and trying to answer. Bernard and others reminded me that South Africa is number 4 in terms of producing new millionaires, which is quite a remarkable statistic given how many nations there are in the world. But despite the poverty of the place, this wealth is evident and there was one place in particular that symbolized this: Melorse Arch. Located in Johannesburg, this is a lifestyle compound/gated community that mixes posh residential condos with posh restaurants and bars. To tell you the truth, I have never seen anything like this and it was probably been the most extraordinary thing I saw in South Africa. The United States and Puerto Rico (where I am from) and undoubtedly many parts of the world are no strangers to gated communities. But Melrose Arch took the implementation of them to a whole new, somewhat disturbing, level, in part because the domestic sphere of expensive housing co-mingles so intimately with sites of accentuated consumption, reminding visitors that the point of life, (hence the name lifestyle) is to make money so as to consume, and to do so lavishly. And what brought this really home was that the South African Bond Market was also located here in Melrose Arch. In fact we could see the building clearly from our restaurant, which proudly displayed a large Elephant statute (which, I think, harkens to the large bull in Wall Street NYC). I guess if you are a bond trader, and dislike commuting, and like good places to eat, well this is the place for you as you don’t ever have to leave your complex. Work and play become seamless and thus this place is perhaps one of the most powerful signs that the point of work is to play, is to consume, so that a perfect cycle is reached in which making money is a path for self-pleasure (or at least nuclear-family self-pleasure), a form of life, that does not have to engage with the rest of society, literally. Of course, there are many layers of production that do exist and make a place like Melrose Arch possible yet are well hidden from the visitors and residents of the compound. But Melrose Arch is not fully gated. It is open to outsiders so they can enjoy the fine dining, and if you sit in one of the many outdoor tables, one can fully take in the glittering performance of this social cycle, and for some, undoubtedly it is a measure for and of the good life, the right life, that to which others will aspire. What I find interesting about the place is that it captures, with unmistakable clarity and precision, the point of much of neoliberal economy, especially the love for finance (in which money seemingly is made out of nothing), a robust service economy (the service in the restaurant was unlike anything I have seen, with people bring you ceramic jugs of water to wash your hands, live entertainment, outdoor fires, and blankets, henna painters etc), and consumptive pleasure. To drive home the point, in Melrose Arch, there is not even a supermarket; lest there be any mistake, this place was constructed as a place of consumption, through and through. There were many other posh areas in South Africa, and as I mentioned earlier, the impoverished areas were kept a distance from middle class neighborhoods, so much so, that in some areas, like Cape Town, you really had to go out of your way to see them (again this is very different from many parts of Latin America where, in an instant, poor neighborhoods switch to wealthy). On the other hand, quite visible were things like malls and there were a lot of them. Apparently South Africa has been a testing ground for the modern mall. To get to the malls, there are very good roads to travel (much better than most of Latin America) and other basic services like tap water, and infrastructure like airports and phones, are in excellent condition. So it was somewhat surprising and frustrating that Internet services outside of business are somewhat scant, expensive, and slow. Sure Internet services are the best in Africa and you can get Cable, ADSL etc. at home but you have to pay a pretty Rand for it and on top of it, the access is pretty slow. Now, there are many parts of the world where this is the case (though apparently in a study that compared 12 countries at a similar lever of development to SA, Internet access was 10 times more expensive in SA than the most expensive country which was Chile), but for me, it was the juxtaposition of having such solid infrastructure and wealth mixed with lackluster Internet access that made it somewhat odd. And it also made me realize how much the Internet and access to it had not only saturated my life, but how I have come to see it as a something creeping close (though not the same) as a basic right. Of course, security and self-determination, food, shelter, and health services are for me are the basic architecture of human rights. Without these, existence in the most basic sense becomes difficult. Access to the Internet, though in no way is indispensable to the basic conditions of living, can at least greatly facilitate the type of political work and organizing needed to demand other basic human rights. In this sense, it is more like an extension of or at least serious complement to basic services like clean water, and it seems like once there has been an investment in securing fiber optic (which I am sure is pricey), the cost of maintenance compared to physical infrastructures is so much smaller that it is really worth the initial costs. This bring up some difficult questions and vexing specters related to many of the human rights (in the Universal declaration), which are I think not so much so how to define them in a general sense (I think this has been laid out somewhat well) but how to specify them so as to realistically implement them . On the one hand, the flexibility and vagueness of human rights is what gives it tremendous currency. Folks around the world have wielded the discourse of human rights to make demands that resound strongly and profoundly. But once a proclamation of a human right has been made, like article 25:
Everyone has the right to a standard of living adequate for the health and well-being of himself and of his family, including food, clothing, housing and medical care and necessary social services, and the right to security in the event of unemployment, sickness, disability, widowhood, old age or other lack of livelihood in circumstances beyond his control..
it seems like the real hard work is about specifying and implementation. We may easily agree that an adequate standard of living may not be Melrose Arch but it still does need definition and a plan for implementation. And so there seems to be plenty of room in human rights politics to move from the state of declaration to that of strategies of implementation.

DebianTimes: Debian GNU/Linux adopted in the Extremadura

The councillor for Infrastructure and Technological Development, Luis Mill n V zquez de Miguel, announced that within one year all the computers of the Junta of Extremadura (government of the autonomous region of Extremadura, Spain) will run Free Software office tools and gnuLinEx, the local flavour of Debian GNU/Linux 3.1, as mandatory operating system. It will be gradually introduced to all administrative organisations of the Junta of Extremadura. From now on, all workers of the public administration will also use Open Document Formats (ISO/IEC DIS 26300) for their office applications as well as PDF/A (Portable Document Format, ISO 19005-1:2005) for document exchange, when guaranteed unalterable visualisation is required. V zquez de Miguel explained that at the end of the period all additional software must be distributed under a free license. "This is an important initiative that the Junta of Extremadura has been working on for a long time, accumulating experience and analysing the impact on our organisation so as to guarantee its success", the councillor declared. According to V zquez de Miguel, Free Software also improves security, autonomy and rationalises public spending. Using Open Document Formats will guarantee the conservation of all the administrative documents for longer periods of time. It will also improve the relationship with the general public since it's not obliged to acquire proprietary software to access official documents. About Extremadura Extremadura is an autonomous region in the West of Spain, with a population of about 1 million. It is well known due to its innovative efforts to bring the information society to all citizens, recognised with distinctions such as the 2004 European prize for regional innovation, granted by the European Commission. About gnuLinEx gnuLinEx is based on Debian GNU/Linux 3.1, with GNOME as the default desktop. In 2004, it was already deployed in all public schools in Extremadura, and was in use in other environments, such as community centres. gnuLinEx closely follows the development of Debian, with a special focus on translation into Spanish, and easy of use and maintenance. About Debian Debian GNU/Linux is a free operating system, developed by more than a thousand volunteers from all over the world who collaborate via the Internet. Debian's dedication to Free Software, its non-profit nature, and its open development model make it unique among GNU/Linux distributions. The Debian project's key strengths are its volunteer base, its dedication to the Debian Social Contract, and its commitment to provide the best operating system possible.

Alexander Sack: It's mozilla patch-day!

... I have backported security fixes recently announced by mozilla for firefox and thunderbird to the old branch – which we have in debian stable. You can grab the patchset I produced from http://people.debian.org/~asac/patchset_109b.tar.gz. In it you find patches that fix:
Good news is that a bunch of critical flaws have been identified to not affect debian stable, namely:
CODE:
  + CVE-2006-3801, MFSA 2006-44
  + CVE-2006-3677, MFSA 2006-45
  + CVE-2006-3113, MFSA 2006-46
  + CVE-2006-3802, MFSA 2006-47
  + CVE-2006-3803, MFSA 2006-48
  + CVE-2006-3804, MFSA 2006-49
  + CVE-2006-3810, MFSA 2006-54
  + CVE-2006-3812, MFSA 2006-56
Another good news is that MFSA2006-45 – which was recently /.ed with a working exploit – is in that list too. So debian stable users are not affected by that issue. In order to get feedback and testing I am now preparing packages. Testing this is critical, because upstream has abandoned 1.0.x development. So please help to test and report regressions … otherwise those might go unseen and finally slip through to our users. I will announce new packages available for testing on my site and on the pkg-mozilla-maintainers mailing-list. Thanks for your support!

Arnaud Vandyck: Debian packages upload

Yesterday, I uploaded libcommons-collection3-java to add the testframework jar (bug#268223). I investigate the security alert for tomcat5 (CVE2006-3835) as mentioned by Alec Berryman in bug#380361. Alec also filed this bug for tomcat5.5 but I was not able to reproduce the attack with the releases of tomcat in Debian. I filed a removal bug for libgnujaxp-java (bug#381014) which is in GNU-Classpath for a long time now. I uploaded a new upstream of libapache(2)-mod-jk (bug#338158). Today, I uploaded libmsv-xsdlib-java (the package was prepared by Eric Lavarde, but it was refused by ftpmasters because of the license) to non-free and solved the FTBFS of libjaxp1.3-java reported by Andreas Jochens (bug#379530). Except the security alert I closed because I think they were not affected releases of tomcat in Debian, I did not investigate more bugs of tomcat. But I’ll need it for my day-time and extra jobs so I hope I’ll be working on it after augustus 15. Update: I’m trying to fix argouml in Debian and that’s a huge job (well, the whole afternoon!)!
  1. Update libtoolbar-java (new upstream + comment issue#6);
  2. Update libswidgets-java (new upstream + comment issue#1);
  3. Downgrade libgef-java to match ArgoUML development;
  4. Update ArgoUML from 0.19.6 to 0.22.beta3 (new upstream + open issue#4391 and issue#4392). The main developer of ArgoUML said in the mailing list that this release will not be that much different to the final release and the new upstream upload (plus some corrections in the package) will permit to close some bugs: bug#342200, bug#217878, bug#335294, bug#353464, bug#368244, bug#289241.
Even with all this work, argouml does not want to start on my laptop. It’s a problem loading the ‘models’. I suspect a problem with the new mdr-model that I do not build because of dependencies not documented and not DFSG free. So I uploaded every package except argouml. I updated the subversion repository so the work is not lost and I’ll review the problem as soon as possible. You can find a copy of the generated package at my Debian’s webspace (click on the argouml directory).

Next.

Previous.