Catching Up

So, having been out of the country for the past few weeks, I haven’t really been up on what’s been happening with Linux in Australia. Slack, I know. It seems lots has. We’ve had Jon seeking fame and fortune in the opinion pages of the IT press, we’ve had the inaugural “LA Update” podcast, we’ve had some progress on the Linux trademark in Australia, the linux.conf.au 2006 call for papers has come out (just over a month left before submissions close), some of the LCA 2005 crew have started a community mirror project under LA’s auspices, the call for papers for LinuxWorld conference/expo (to be held in Sydney, in March 2006) came out, we’ve had a rash of grant applications including the Twisted Sprint, Teen Challenge, and the ACM Training Camp.

And with the posting of this entry, I guess I get to find out whether Mr Davies has followed through on his threat to create hackergotchies for LA committee members…

Online Debating Is So Hot Right Now

Okay, I admit it, I left the tv on after Desperate Housewives, and not only caught Last Man Standing, but a small amount of the Hiltons’ Simple Life 3 – Interns. Anyway, having been referenced by name in the prestigious Australian IT press, how could I not continue the thread I left dangling last week?

So, the question is “if LA’s not doing anything other than LCA, how does it make any sense to have a separate group of people over and above the ones volunteering a year of their life to run the conference?” I think the answer is “but that’s not the case; LA is doing other things and should continue doing so.”

I gave a talk to HUMBUG on Saturday about LA, which was (IMO) pretty well attended. Especially since the usual staple of HUMBUG meetings — free net access so people can bring their computers along and do hands on Linux/Unix stuff — is currently absent. I’d intended to record it and then try my hand at this new-fangled podcasting stuff, but then found myself running late and completely forgot. Doh. Short summary is that it’s quite possible to fill up about three-quarters of an hour talking about LA stuff without just summarising the content at the last LCA, and the broader stuff is pretty interesting — Community Code, Open Education, Software Freedom Day, the Open Source Forums, the government participation in Linux that LA tries to facilitate, the grants scheme, and the random other things that all make use of the LA banner, whether metaphorically or literally.

Of course, while these things are interesting, that’s a different question to whether they’ll be a success or not. It’s easy to come up with a cool idea, and it’s even easy to register a domain for it, and maybe write up some of your ideas; it’s a lot harder to carry them through to fruition.

I actually think LA might be in a position this year to actually cover that gap. Naturally, I’m going to credit that to the community’s wise choice of committee members and their varied skillsets and the resulting organisational dynamic, but the fact that the Linux community has come up with a range of projects and the fact that previous committees’ activity has managed to improve LA’s mindshare within the community has resulted in a pretty large number of groups coming together around LA — and with a large enough number of attempts, you’re likely to have some successes no matter how great the difficulties. And once you’ve got some successes, you can build on them and get still more.

And that, I think, is the position LA’s in at the moment; trying to cultivate some more initial successes beyond LCA, and getting prepared to build on those successes by watching what goes right (and wrong), and having the resources marshalled to make sure those lessons can get reused.

One of the things I really enjoy about the LA community is its optimism; so when we get a story in the press that announces “[t]he future of Linux Australia (LA) is in doubt”, the response is along the lines of:

It’s great that something as trifling as a discussion of LA’s organisational structure is not only considered newsworthy, but deserving of a well-researched article. […] Coverage like this demonstrates LA’s relevence beyond the LA membership, and will hopefully invite constructive comment from the broader Australian Linux community.

Better than some possible responses anyway.

Debconf5

I’m giving a talk on debbugs at debconf5. Since they’re trying printed proceedings and are planning on handing them out in advance of the talks, I wrote up a paper that should be useful background material for people interested in hacking on debbugs. This is the abstract:

This paper aims to serve as a useful reference for people attending the talk of the same title at DebConf 5, to be held in Helsinki, Finland from the 9th to the 16th of July 2005. It summarises the primary motivations behind the design philosophy of debbugs, the on-disk data formats debbugs uses, and the overall structure of the code. It aims to provide sufficient background on the current status of the debbugs codebase that the interested reader may use as a basis for beginning to hack on the debbugs codebase. Basic familiarity with debbugs from a user’s perspective is assumed.

And you can find it on my CodeWiki.

I’m also meant to be doing a BOF on debootstrap. It seems to have turned into some sort of faux-keynote, being the first talk of the first day without any other scheduled activity, which it’s massively unsuitable for. I’ve tried harassing the organisers into changing it for me, but they seem to want me to spend my time before leaving finding some other speaker to swap with, which I don’t have time for. On the upside, if nothing happens and I remain with an effective keynote slot, I have hatched an evil alternative plan, albeit one that crucially relies on the exact scheduling given. If it eventuates, folks looking to attend a debootstrap BOF should probably expect an unofficial one over a lunch sometime instead.

In other timetabling news, it seems Mark Shuttleworth is giving a talk on a small project called Unubtu or something. Apparently there’s not much interest, and most people will be going to Junichi Uekawa’s library packaging talk instead. Talks on obscure topics like the DSFG are also, unsurprisingly, not attracting much interest.

Linux Australia Updates

More minutes and such: a second face to face session (covering organisational strategy, media strategy, projects review and some other stuff) which went over a second day (covering and included a formal session, as well as two formal meetings in May, one covering general business, the other specifically for some formal LCA2006 stuff immediately after the Ghosts weekend.

Unfortunately the cool task tracker we set up at the start of the year isn’t turning out very effective. It’s got one problem in that it’s entirely public, so you can’t track topics that have any sort of “in confidence” aspect, nor can you track setup issues on LA boxes that have a security aspect. The other problem seems to be that it just hasn’t fit in with the committee’s routine, which seems harder to fix.

As a different approach, and to much eagerness from the Vice-President, we’ve setup a committee wiki which will hopefully help both with coordinating efforts within the committee and amongst other folks involved with LA, and with getting info on what’s going on out to people in a vaguely sane way. So far it’s a bit sparse. In theory, we’re also trying to blog more about LA stuff.

I guess that brings us, by way of Jon’s demurely titled blog entry Can Linux Australia survive?, to our next topic. LA’s always been an odd beast. AIUI from talking to other HUMBUGgers, it was initially noticed by the community when some LUGs wanted to get together and create a national group to organise LUGs (AusLUG, perhaps?) then someone noticed “Linux Australia” already existed in somethin of a “wtf??” moment. Bruce of HUMBUG (HUMBUG’s Democratically Elected Vice-President For Life And Beyond, well, kinda) seems to have then setup a list — and you can find the early archives of the “linux-aus” mailing list amongst HUMBUG’s list archives, including this gem:

I heard a vague whisper of someone talking about organising a Linux conference in Australia. I think this is an excellent idea, and was wondering if anyone knows about it. If not, I think I’ll look into it myself…

Rusty.

.sig lost in the mail.

LA was, AIUI, pretty much Terry Dawson’s baby early on, without a lot of buy-in; 1998 mostly saw random discussions and constitutional trivia; 1999 was fairly quiet. I probably should point to Ray Smith’s Views of an Outsider and Terry Collins’ followup discussing AUUG perhaps still has some relevance. Anyway, the list more or less seems to have continued along for a while, discussing organisational issues, random linux stuff and national installfests, with the occassional mention of some conference or other. I think it’s fair to say the organsation correspondingly declined over that period, pretty much existing in the form of a server, and providing some fairly minimal legal infrastructure for the Sydney and Brisbane linux.conf.au (LCA) in 2001 and 2002 respectively. By the end of 2002, Anand Kumria was, for practical purposes, the only member of LA, and both its President and Treasurer.

This inspired the Perth LCA crew to include a slot for an AGM as part of the conference, and include LA membership as part of the conference registration to try to get the organisation to have some semblence of a life of its own. Which pretty much worked, with Pia (then Smith, now Waugh) sinking her (then normal, now vegetarian) teeth into the organisation. A couple of elections later, that brings us to where we are now.

There’re still a bunch of concerns about LA’s effectiveness floating around; by far the biggest project coming under the LA banner is LCA, and finding other things for LA to do that compare to LCA’s success is pretty difficult. And if LA’s not doing anything other than LCA, how does it make any sense to have a separate group of people over and above the ones volunteering a year of their life to run the conference?

Okay, this is going on for a bit long, so let’s end on that question. ‘Til next time.

Scott James Remnant Considered Harmful

I refer, of course, to the appearance of Bug#313400 in the archive and making unstable bootstrapping break in subtle ways on the very day I make my first debootstrap upload in a year and a half. Bastard.

I noticed the bug when converting the sid script to have the nifty detailed progress support Colin Watson implemented for Ubuntu. The relevant implementation detail is that various fds get munged around, and then held open by daemons like inetd and cron that get started by /usr/sbin/start-stop-daemon when they should’ve been skipped by the dummy /sbin/start-stop-daemon that debootstrap cunningly puts in place, which causes the pipe to stay open, and debootstrap to hang just before it finishes.

Ignoring that problem, the other hacking seemed to go fairly well.

Having debootstrap report progress while the install’s happening made me feel like putting all the confusing dpkg output somewhere else, so there’s now a debootstrap.log file in the /debootstrap directory in the root of the target, that gets moved to /var/log/bootstrap.log when (if…) the installation completes. That’ll probably make things awkward for installer types who might want to keep the verbose output showing up live on a tty, so something might have to be tweaked around there to have that come back. We’ll see.

The override munging I did yesterday seemed to work out, with Priority: required and Priority: important matching the packages that are meant to be part of the base system fairly well – at least on i386. So the sid script now also doesn’t have any hardcoded information about what’s in base, it pulls it from the Packages file instead. By the time it appears in the archive, there’ll also be Build-Essential: yes tags to help it work out which packages to install in the buildd variant. Unfortunately these are likely pretty wrong at the moment, but should improve soon enough. And won’t require a debootstrap upload in order to improve in future either! Awesome! (Also awesome: closing bugs that have been open for over four years!)

What else? Ah yes. I wrote a version of pkgdetails in perl (well, shell and perl), so that I could make the package just a simple matter of scripting. In theory that should let you just grab the deb and run debootstrap on Red Hat or Solaris or maybe even Windows. In practice, we’ll see — but hey, it gives me an excuse to close the bugs anyway. Unfortunately the perl version is noticeably slower than the C version, and unfortunately one of the particularly slow bits that parsed the entire Packages file was getting called once for each package and being almost as painful as reading this sentence. So the invoking code in download_release also got rewritten, and now, not only is the Packages file only parsed once while all the debs are being downloaded and validated, but the code’s in roughly the right form to make it plausible to implement support for pulling from multiple sources.

Finally, there’s the Release.gpg signature checking that Colin implemented for Ubuntu. Just install gpgv, point debootstrap at a trusted keyring with the --keyring argument, and you’re done. Sweet.

That’s about it, really. Most of the other things on the TODO list are probably right to be left for a little while yet, and there’s definitely a few bugs that’ll need to be worked out in the stuff already implemented. The CodeWiki seemed somewhat useful for organising development stuff — it’s nice to be able to see some progress, and have something that looks vaguely professional, while at the same time requiring no actual effort.

So, that’s 0.3.1. Surely something’s broken this time.

Opening Pandora’s Archive

Huh, while the fair use inquiry‘s open for submissions, the National Library of Australia’s crawling my website. Cool. (Hrm, apparently I have Anna to thank for the link.)

Cross-strapping Revisited

Quite some time ago now, I started hacking on cross-strapping support for debootstrap — that is, you start bootstrapping your install non-natively (eg, a Hurd install on a Linux system, a powerpc install on an i386, or a Debian install on a Solaris system), then boot into your half unpacked system, and reinvoke debootstrap to finish the job.

It got mostly implemented, then left to hang while I did other things, nominally waiting for an updated makedev. I went and had a look again last year when I started playing with darcs and forward ported bits of it, but not quite enough to have it work properly.

So third time lucky — I’ve been poking around at it again over the long weekend, and it’s getting a fair bit further this time. I decided to setup a CodeWiki to keep track of some of the things I’m hacking on, something like tridge’s junkcode but with a different focus.

The cross-strapping part’s working again, and a reasonable chunk of other stuff also, such as mostly syncing with Ubuntu, automatically resolving missing dependencies within the base system, merging the buildd variant into the main sid script to reduce duplicate code, and a first pass at the code support for determining required/base packages entirely automatically.

Of course, that latter one’s had some code scattered around my filesystem for ages too — it’s been waiting on ftpmaster getting the ability to specify tags in the Packages files on a per-arch basis. That’s still waiting on a fix to Bug#225947, which has had a patch in the BTS for over a year now, and which mvo has, in theory, cleaned up recently. In any case, I decided waiting was boring, and put my Debian ftpmaster hat on tonight and munged the required/important priorities to match required/base for i386 at least; we’ll see if that worked or not tomorrow.

Anyway, in the meantime:

Uploading via ftp debootstrap_0.3.0.dsc: done.
Uploading via ftp debootstrap_0.3.0.tar.gz: done.
Uploading via ftp debootstrap-udeb_0.3.0_i386.udeb: done.
Uploading via ftp debootstrap_0.3.0_i386.deb: done.
Uploading via ftp debootstrap_0.3.0_i386.changes: done.

Let’s see what breaks.

On Ubuntu

So, one of the current boring, argumentative threads on -devel is Is Ubuntu a debian derivative or is it a fork?. Which is a bit of a weird question, since really every derivative’s a fork, and vice-versa. The real question, of course, is whether Ubuntu is a “good” derivative or a “bad” one — whether it’s going to keep working with Debian and improve Debian, or whether it’s going to compete with Debian, stealing Debian’s users, developers, sponsors and mindshare, to the point where Debian’s a dead project.

If you ask, you naturally get a clear and confident answer: of course Ubuntu’s about working with Debian and giving back to open source hackers and whatever else. But of course, even if it wasn’t, that’s what you’d get told anyway, because that’s what people want to hear. So, like a lot of other folks, I’ve been keeping my ears pricked to see just how Ubuntu does fit into the free software world, and work out what I think of it. Having spent a couple of days at their Ubuntu Down Under conference post LCA, and generally had a chance to follow what they’ve been doing for a little while now, I thought I might post my current thoughts.

Of course, as always, this is going to be long, so here’s the executive summary for people who don’t want to read past the fold. My take is that while Ubuntu’s based on Debian, it’s an independent project, and is currently planning on becoming more so. While Canonical produces an excellent free software distribution, it’s not a free software project, and is entirely happy to build a large proprietary system, viz LaunchPad, and rely on it. While Canonical strongly supports the free software community and backs up that thought with deeds throughout the company from highest level to lowest, they’re a somewhat cut-throat startup that’s happy to put “getting to where we’re going” above a Google-like policy of “don’t be evil”. More importantly though, they produce a great distribution, that’s bringing unencumbered free software to a huge number of people, and making them happier in the process. So a mixed bag, but either way, Ubuntu’s doing a chunk of good, and definitely here to stay for a fair while yet.

And now that fold.

Independence

So, one thing I keep not realising is that Ubuntu rebuilds all its debs; it’s not a “Debian + add-ons” like most derivatives are, it’s a rebuild from scratch derivative. It’s like that in more ways than just rebuilding everything and repackaging, replacing, or updating lots of things. For example, it’s also duplicating:

  • dak/katie and buildd with LaunchPad/Soyuz
  • debbugs with LaunchPad/malone
  • ddtp with LaunchPad/Rosetta
  • dupdate with Hct (dependent on LaunchPad)
  • queued with poppy
  • new-maintainer/unstable with Masters Of The Universe (MOTU)

It’s also kind-of trying to take over sourceforge with the arch.ubuntu.com, which is merging into LaunchPad and Hct.

You can see the Ubuntu’s independence in a bunch of areas: from shipping Xorg rather than staying in sync with Debian’s XFree86 packages (apparently Progeny is doing the same thing — so both Debian’s primary X maintainers work for companies that have decided that Debian’s X is too out of date to ship; great), bumping to new revisions of Python and Gnome, pulling packages from apt-get.org and Fedora as well as Debian. They’re also duplicating specialisation projects, such as Edubuntu versus debian-edu. And that’s paying off; Debian’s been underperforming, and routing around the problem by setting up new ways of connecting and organising people is an entirely sensible approach.

Viability

I think Mark’s quite sincere in his statements that Ubuntu’s his way of giving back to the free software world, and that if it doesn’t turn out to be a viable business, he doesn’t mind if it just ends up as philanthropy. What I think’s underestimate, though, is that he really is serious about trying to make it a viable business. One thing that isn’t surprising in the free software world, but is worth noting from a corporate point-of-view is that Mark Shuttleworth’s very hands on as a manager — he sat in on a lot of meetings while I was there, and was pushing quite a few of them in technical directions, rather than relying on some sort of middle management or even a trusted second-in-command type to make technical judgements.

The contrast between Ubuntu Down Under and linux.conf.au 2005, which was on the week before was pretty marked. lca got together five hundred hackers, gave ’em couches, net access, some fun, entertaining and deep talks, and a schedule that variously included talks, tutorials, competitions, panels, fancy dinners, balloon rides, pubs, bike rides, and lovely, delicious, scrumptious morning and afternoon teas.

UDU was much more structured — rather than a conference or a tradeshow, it was much more a series of internal company meetings that happened to be open to the public. The meetings started at 9am, and finished, with dinner, at 8:15pm. The meetings were in a handful of conference rooms at the hotel where most of the attendees were staying, and lunch was also at the hotel, at least if you were staying on Canonical’s budget or willing to fork over $24 or so for a buffet lunch. (The salt and pepper calimari next door was nicer, and even with a beer, still cheaper) So, in essence, you’re locked in the hotel from breakfast ’til 9pm, working the entire day, every day from Monday ’til Saturday. Monday happened to be ANZAC day, so it was working over a public holiday too. Network access was limited and awkward, every time you’d try doing anything (almost) you’d be blocked by having to look at some web page that informs you you’ll be billed at $0.01 per kilobyte or so.

Once you get over the contrast between a week of conferencey fun, and a week of meetings, though UDU does seem to have been reasonably effective. Certainly a lot more effective than what you might imagine if you heard the words “six days of twelve hour meetings”. And indeed, we tried stealing a bit of the structure for the linux.conf.au 2006 planning weekend a couple of weeks ago, and it seemed to pay off.

Both Martin Pool and Mary Gardiner wrote some reflections on the meeting which seemed pretty accurate to me.

Effective as it was, though, it’s a pretty big ask of your employees. If you don’t believe me, ask a labour union about working 60 hours in a week, giving up a public holiday and a day of your weekend to do so, not to mention the travel time to and from Sydney for the internationals. While you’re there, ask what they think about your employer expecting you to take some of your vacation time if you wanted to attend the professional conference immediately beforehand, too.

LaunchPad

UDU held a whole bunch of sessions in parallel, and I was catching a plane back home on the evening of the second day — so I barely saw a third of the conference. Anyway, the sessions I sat in on was one of the community council meetings (which I’ll get to later), some of the baz/baz-ng stuff (which I won’t get to at all), and some of the archive infrastructure ones (which I’m getting to right now).

This infrastructure stuff is “LaunchPad”. It’s not so much a name as a collective noun — as above, it includes the project to replace debbugs (Malone), to replace dak/katie (Soyuz), to do translations and localisation (Rosetta), to replace buildds, to control security updates, and, as I understand it, to act as a huge meta-repository for upstream sourcecode and packaging metadata.

The hope seems to be that LaunchPad will be the “basis” of Canonical/Ubuntu — that is, first make Ubuntu the #1 disto, then have Canonical provide professional resources for creating and maintaining specialised derivatives, and use LaunchPad to do that. As such, LaunchPad’s non-free and proprietary — otherwise any johnny-come-lately kid or millionaire could rock on up and undercut Canonical’s prices, hire out its employees, and that’d be that.

There’s a reflection of this in the section entitled “Canonical: What is its business model?” from Guadalinex’s justification of using Ubuntu on the Ubuntu website:

Canonical believes that in the near future, GNU/Linux users that are currently spread among a plethora of distributions will be concentrated around 2 or 3 main distributions. They declare that their purpose is to make Ubuntu one of them and, if possible, the best one. Their main source of financial revenues are support and services; they want to be the Ubuntu reference company, but they don’t aim to provide all Ubuntu services worldwide. They don’t have and don’t aim to have branchs or franchises; they seek agreements with local companies (particularly outside the spoken English world) that provide services for Ubuntu with Canonical as a backup.

Which isn’t unreasonable — and after all, Ubuntu is still entirely free software — but it’s a long way from the debates within Debian about using software like qmail (source available and modifiable, but doesn’t meet all the DFSG requirements) behind the scenes on Debian servers.

And that’s pretty much the point where Canonical’s not a free software company, but a vendor providing proprietary services for the free software community. I’m thus not at all sure how much its free software development is a core activity, or if Canonical will end up relying on its user community to do Ubuntu development for gratis once it moves from “start up” to “sustainable” mode.

Of course, LaunchPad seems like a pretty risky project. It aims to do everything, it aims to completely reimplement complicated existing systems, and it’s being developed from spec rather than trial and error. To my mind, that spells disaster in the making; but on the plus side, it’s got money and management behind it. From the meetings I sat in on, LaunchPad sounded like Canonical’s #1 priority for their 5.10 release, so it’ll be interesting to see what comes of that. If nothing does, it’ll be very interesting to see how Canonical reacts to that as an organisation.

Community

What’s really quite fascinating is the community strategy Ubuntu’s adopting. From Matthew Thomas’s First 48 hours blog post, to being able to walk in off the street and sit in on technical meetings setting out the company’s strategic direction for the next six months, well, that’s something. In fact, it’s probably more than some free software projects can manage.

In particular, it was fascinating to be able to just go in as an outsider and sit in and watch Mark, Mako and Jdub, have a fairly serious argument about the community consequences of the last minute Nautilus changes, with Jane (Canonical’s business manager, more or less) watching on and chipping in.

Basically, Mark told the desktop team early on that Nautilus should work one way, which everyone else in the world apparently thinks is stupid, it got implemented but not turned on by default, Mark didn’t notice and got no feedback until a week or two before release, and pointed out that the boss’s directions aren’t optional, it got done, Mark was happy, and a whole bunch of Ubuntu users weren’t. Solutions to the problem ranged from “the desktop team knows what it’s doing, trust us”, “follow Mark’s directions early, so that if they turn out to be stupid they can be changed later”, and the issue fluctuated from “there’s fallout, how do we deal with that?” to “this is horrible, how do we ever avoid fallout like this ever again?” I’m paraphrasing a fair bit, it was a far more consequential discussion than I’m probably making it sound.

On the other hand, I’m not paraphrasing that much — it didn’t develop into a shouting match, and people’s jobs were explicitly not threatened. I wonder how much the chance of some random person overhearing and blogging (heh) helps prevent tempers fraying too much and things being said without due consideration. That’s a pretty novel business policy, and it must require a fair amount of stamina to stick to it.

But in any case, while there was an argument over how to go about getting the right process for this sort of thing, what was interesting was none of the people at the table thought there was any question about whether the opinions of random people whinging on the forums was something worth taking seriously, or that their concerns shouldn’t be taken seriously by, essentially, the company board of directors.

While Debian developers might want to worry about being considered irrelevant by the Ubuntu powers that be, I get the impression Ubuntu users needn’t lose a wink of sleep over it.

Popularity

All of that’s interesting, of course, but what really matters, in my opinion, is the technology: Canonical’s processes might be a good or a bad way of creating a distro, the way you work that out isn’t by entering a trance and meditating on them, it’s by looking at whether the end product actually makes people’s lives easier and happier than the alternatives

And, from what I’ve seen, it does — Ubuntu really seems to be bringing both Debian and Linux to a broader audience, and seems to be giving existing Linux and Debian users an environment many of them prefer. Whether you look at the distrowatch numbers, ask speakers at lca which distro they use, or just go through your daily life and hear Ubuntu mentioned where you’d never have expected it.

Some of that’s obviously just PR and not technical stuff: having lots of money to throw at things goes a long way, as does having a CEO who’s interestingly unique, and giving (literally) millions of CDs away for free isn’t nothing either. On the other hand, I think a lot of it’s just the “Debian done right” aspect too — Debian’s built up a lot of good will over the years by being a generous and solid community member. Debian might not be entirely effective, but we’ve got a reputation of being good and doing the right thing, and adding in some effectiveness: being able to keep your release promises, shipping software that’s recent enough to actually be usable on current hardware, providing features from this millennium like a LiveCD; and you’ve got something that’s pretty likeable.

I think it’s pretty amazing how far Ubuntu’s gone with what I’d call a fairly small commitment of development and PR resources, along with Debian’s technologies and reputation.

The real question is whether Debian’s able to make the relationship a symiotic one, and adapt enough that Ubuntu doesn’t benefit from routing around most of the project. I can’t think of a downstream project with which Debian’s managed to sustain a successful symbiotic relationship before, but perhaps comparing the dead-end attempts at integrating the Stormix installer or Progeny’s PGI with Ubuntu’s work on improving debian-installer warrants some hope.

UPDATE 2005/06/08:

I’ve since been informed that the theory is LaunchPad (or parts thereof?) is expected to be freed one day. I don’t really see how that’ll work, in any way (either in a business sense, or in a useful code for anyone else sense), but hey. Maybe it’s in a “Canonical goes bust, why not free it?” sense. :)

Yeesh.

From the Australian, via Tim Blair:

NONE of the three judges presiding over Schapelle Corby’s trial has ever found a defendant innocent, and they have now reached broad agreement on the verdict they will hand down on Friday.

Like Katie Brownell, they’ve managed not to blow their perfect game. Congratulations to Judges Suastrawan, Sirait, and Duah, may you never see an innocent man or woman for another fifteen years.

It is your destiny…

Speaking of 1c Paypal donations, joining the blogosphere today is Rhys Arkins. Welcome to the dork side, young padawan!

Some Tweaks

I tried making some minor tweaks. Tables have been replaced with CSS; ugh, what an absolutely horrible control language. Tables are more elegant. Oh well.

Also added some Google ads down the side — they’ve already made more than the single 1c donation the PayPal button managed to elicit. Interestingly, the Google Ads terms of service are very explicit about not drawing attention to your Google Ads. So whatever you do, don’t look at them! Please! Or something like that.

Two Years!

Well, that’s the second year of blogging down. Over a hundred thousand words, across a couple of hundred posts!

(In the Advantage: Inchoate column, though, David’s blog’s had one hundred and fifty thousand words or so, across almost a thousand posts and updates. Wow!)

UPDATE 2005/05/27:

David points out that it’s actually over a thousand posts and updates now. Ooops. But on the other hand, I’ve posted lots of pictures: counting them using the standard conversion factor, I’m up to something like 280,000 words! Phwoar!

Obligatory SW:ROTS Post

In summary, I liked the third Star Wars prequel.

Sure, I found myself laughing at the horribly stilted dialogue and plot throughout the movie, and I wasn’t particularly awed by the visuals or the CGI, and in the end, knowing how it ended by the virtue of having watched the original trilogy pretty much robbed the film of any of the drama, and the heroics of their heroism.

But it was still fun, and interesting. I think maybe the most interesting parts of ROTS were the scenes that Lucas didn’t actually film, and that only took place in my head (or that were in the script originally, and got dropped). Maybe that’s a clever way of doing a film anyway: leaving the good bits for the audience to imagine, just like they would if they were reading, rather than doing everything for them, and the experience being over as soon as you walk out of the cinema. It’s presumably a good way to encourage spin-offs and fanfiction anyway — yay franchising.

One of the missing scenes I liked was the one where it was established that Palpatine was a schizophrenic — whose primary personality was a crafty politician, whose genius and love of the safety and opportunities the Galactic Republic offered its citizens led him to a life of service, while in the background, his suppressed passions created a divergent personality with a psychology that had never matured, but that grew strong in the Force under the tutelage of the quiet and meditative Darth Plagueius. And who, in a fit of frustration, murdered Plagueius when he refused to use his powers to help the Republic — possibly to prevent the death of a much beloved Chancellor and the subsequent squabbling for power in a newly leaderless Senate — instead reserving it for his friends, family or lover.

Likewise, I enjoyed the missing scenes where Palpatine decided that the Trade Federation needed to be goaded into seccession immediately so the war would come at a time when the decaying Republic remained strong enough to emerge victorious, and was forced to use his Sith Apprentices, Darth Maul and Darth Tyrranus to give them the confidence to take action, and thus began falling further under the influence of the Dark Side of his personality.

The betrayal of Anakin was also fascinating: the bond between he and Obi-Wan, first built up over a decade of shared adventures, then cracking as Anakin murders Dooku instead of arresting him, as Anakin fears of discovery with Padme, as at Palpatine’s suggestion, Anakin begins to fear that Obi-Wan and Padme are having an affair, as Obi-Wan fails to support Anakin in the council, and as Anakin returns the favour, as Anakin increasingly turns to Palpatine for support, and Obi-Wan is forced away. And as their friendship finally cracks completely as they’re forced by Master Yoda and Darth Sidious to try to kill each other.

The scenes establishing the incipient Rebellion were also fascinating, including Padme’s turning away from the Republic she’d devoted her life to as she watched it grow corrupted, as her mentor, Palpatine, lost his trust in democratic processes. The scenes where she grew apart also from many of her fellow senators, from Anakin, from the people she represented as they fell for the manipulations and popular appeal of Palpatine. When she begged for Anakin to turn away from the Sith and the Empire, and he almost killed her. Lying on the table, her mind lost in lost hopes, of lost love, of lost friends, of lost freedom, and her soul failing and fading into nothing, just as have her dreams and life’s work. Luke and Leia are born, and her last breath eases from her breast, never to return.

Revenge of the Sith could easily be a tragedy in N parts; Palpatine’s and Anakin’s fall, Padme’s loss and death, Obi-Wan’s loss of his apprentice, the fall of Mace Windu as he betrays the Jedi Code and attempts to slay Palpatine rather than arrest him, the defeat of the Jedi Council, Yoda’s first (?) defeat and subsequent exile, the fall of the Republic, the fall of the Trade Federation, and ending on the creation of the Death Star and the billions of individual tragedies that implies.

I’m not really sure where the “Revenge” is, though — you could claim the destruction of the Jedi order was “revenge” for attempting to arrest or kill Palpatine, but that only happened because Palpatine made sure it happened, in order to create Darth Vader. You could claim the revenge was Vader’s, but he didn’t do that because the Jedi council had mistreated him, he did it because it seemed in the interests of the Republic, because Sidious commanded it, and because he needed Sidious’ help to save Padme. “Rise of the Sith” probably would have made more sense, really.

Oh, one final thought. It’s established that C3P0 gets his mind wiped, and that R2D2 probably doesn’t. What if the prequels were R2’s telling of the story to Luke and co after the end of the original trilogy. Hadn’t you been wondering where the little droid’s fancy new features came from, or how come he managed to be so much more aggressive at the time, or why he and C3P0 were the only characters present in all the movies? A little robotic bragging perhaps? Hmmmm?

Shell Hacks

Complex and inefficient shell snippets? Sign me up!

Here’s my version:

dselect update
cat /var/lib/dpkg/available | sed -n 'p;s/^.//p' | sed 's/../&\
/g' | tr A-Z a-z | grep '[a-z][a-z]' | sort | uniq -u

It doesn’t quite match the original — having the letter pair appear twice for a single package will disqualify it, rather than disqualification only happen when it appears in two packages, and it probably looks at more text than it should (like field names as well as contents). On the other hand, it’s a damn sight quicker (O(n*lg(n) time, O(n) space, where n is the size of your available file), and it includes sed fun.

A Heart of Stone

I had been going to include this in my travelblog, but then I forgot, and then I decided I could give it its own entry anyway. To set the scene, imagine trudging up a mountain, about a kilometre above sea-level, with another half-kilometre of vertical rise still to go before you’ve got any chance of civilisation. You’re exhausted, you’re thirsty, you’re hungry, you’re wishing for ice cream. The path at this point is steep enough they’ve not only carved steps into it, but they’ve had to make them barely wide enough to fit your feet.

On one step, you see this. Buried in the mud, overgrown, trampled on, alone, and lost to the world: a heart of stone.

And yet, craggy and marred, it endures, unbroken.

(Also at the very bottom of the photo you can see the tip of one my new boots! They’re awesome!)