Search Results: "nate"

4 September 2006

Joerg Jaspert: Forking cdrtools as cdrkit

As you can read in this mail we went and forked the cdrtools suite and named the fork cdrkit. I wont repeat all the reasons again here, please read this if you are interested. If you are interested to join us start with a
svn co svn://svn.debian.org/debburn/nonameyet/trunk
and join us in IRC, server irc.oftc.net, channel #debburn.
Personally I really hate that we got forced to fork, I never did want that to happen. For most of the past I was able to ignore most of the random flamewars that JS always seems to get in. But unfortunately that did not work this time, so I joined the running flamewar. Read the thread following that yourself to make your own opinion, but maybe its better to just not read it, the time can be used better.

3 September 2006

Marc 'Zugschlus' Haber: About developers with no interest in their users

After months of complete silence, ICQ spam has started again. Unfortunately, it is not even possible to put these people on ignore since kopete does seem to have lost its ignore option. Or, at least, I cannot find it any more in the menus. At least, kopete doesn’t show a message from a new contact before one has decided whether to add or not to add the new contact. A very good idea. Not.I decided to query #kopete on freenode where the Ignore button has gone to. But, I didn’t get any information. They said “your kopete, 0.11.1, is old. Please update to 0.12, this is the supported version.”WTF? I am using Debian unstable, with has the latest released KDE, and kopete 0.11.1 is part of current kdenetwork. And the developers refuse support for a package which has been built a mere six weeks ago? Have these people lost their grasp with reality? This sooooo ridiculous.Is there any other useable ICQ client that integrates well with KDE?

Marc 'Zugschlus' Haber: No more sl-modem-modules for me

A few months ago, I have reported about getting the winmodem in my hp compaq nc 8000 to work. Aside from the abysmally slow performance, the dependency on out-of-tree, non-free modules has been cause of grief since it has almost constantly forced me to keep an outdated kernel version around just in case that I would need the modem. Fortunately, this is over now since more recent kernel versions (I suspect somewhere in the 2.6.16 era) support my winmodem natively without out-of-tree modules. All I need to get only on a POTS line is sl-modem-daemon, which is reasonably painless.

Marc 'Zugschlus' Haber: DHCP challenges

My notebook’s DHCP setup seems to be a challenge for DHCP servers around the world. Looks like almost no server implements the standard in a decently complete way. My notebook has a wired Fast Ethernet, and a wireless 802.11bg network interface. Of course, both interfaces have their own MAC address. I want the thing to work at least at home, regardless of whether wired or wireless is in use, with preferably the same static IP address, and on the office wired network, again, with the static IP address allocated to me there. Configuring this is considerably harder than I expected. At home, I am using a Linksys WRT54G router with OpenWRT, which has dnsmasq as DHCP server. Unfortunately, dnsmasq does not support the case where multiple MAC addresses are statically assigned to the same IP address: Only the first dhcp-host statement in the configuration file is honored, all others are ignored. So we need to resort to using a dhcp client-identifier. In DHCP request option number 61, the client can send an identifier, which the Server can then use to determine the client’s identity and assign a static IP address. The client identifier, according to RFC2132, is to be treated as an opaque string by the DHCP server. This works fine with dnsmasq, solving the issue at home. But it causes more grief in the office network. My office is the kind of place where a non-Microsoft solution is rarely considered. Thus, our network is fully buzzword compliant and the network infrastructure, including DNS and DHCP servers, is based on Windows Server System. I am the only one using a non-MS operating system in my work environment. When I plugged my notebook into the network this morning, I noticed that I didn’t receive my static IP address but a different one from the dynamic pool. After verifying that the Windows guys didn’t touch the DHCP server in the last days, I began to think what I changed locally and naturally remembered configuring the DHCP client identifier. Removed it for testing, got my normal static IP address, so the client identifier was quickly pinned down as the culprit. After my Windows colleagues decided that it must be a client issue, I began investigating how to configure the Windows DHCP server to honor a client identifier. MS Knowledge Base article #172408, “Custom DHCP Client Identifiers for Windows NT”, is a high hit on Google, but is like three years old and shows that somebody at MS has badly misunderstood the DHCP standard - they think that the Client Identifier is a 4 byte number in little endian order. I couldn’t believe that and investigated further. But it looks like the Windows DHCP server really cannot handle free-form client identifiers at all. I tried coding my free-form identifier in ASCII and entering it as MAC address, big endian, little endian, to no avail. So, I have come to the conclusion that MS has - again - only partly implemented a very important protocol for their network software. “Embrace and extend”, my <censored>, DHCP wasn’t extended at all. Looks like they stopped developing after the first developer box had successfully received an IP address, and shipped the resulting code. Woah. If somebody can tell me how to configure the Windows DHCP server to properly handle a free-form string DHCP client identfier, I’ll be most graceful for that information. I finally resorted to setting the DHCP client identifier of my notebook to the MAC address of the wired ethernet interface, which has at least brought my static IP address at the office back. I hope that the dnsmasq at home will successfully grok this or I am - again - back to square one. All software sucks

Martin F. Krafft: Never give up

Scott, the first thing I want to say in response to your post is that you are not alone. I did not know someone was attacked for wearing an Ubuntu shirt in Helsinki, but I did witness at least one "Fuck Ubuntu" incident, and it seemed that Ubuntu jokes and snaps at the new distro were very common. I find this utterly childish and stupid. I am sorry for everyone who was offended. But please don't blame or condemn everyone in Debian or the whole project for the actions of some of its members or followers. You've already linked to my thoughts on the Ubuntu-Debian situation, so I need not cover any of that anymore. I wouldn't want to either, because believe it or not, this article got me flamed by Ubuntu developers just way too many times, in personal mails as well as in forums. Instead, let's look at the now and then this time. I've heard a few developers express their unhappiness with Debian in the past year, much in the same way that you did. Not always was it related to Ubuntu, but quite often it was. There are newcomers to Debian who shake their head in disbelief how anyone can work in a project such as Debian, and there are the veterans among us who seem to concede that Debian has slipped away from their ideals and it's just not fun anymore. It's not hard for me to understand each of them. I've followed Debian for nearly a decade now and thus tracked how it changed over time. We are one of the largest free software projects, and size never comes without problems. So while the Debian project used to be an association of geeks enjoying their focus on technical excellence, the sheer growth of our project called for many other fields to be managed, and we did not always handle this increase in complexity very gracefully. After all, we are all just geeks who want to have fun, aren't we? As a result, several aspects of our project have been said to "stagnate", and parts (and parties) have diverged. As a volunteer developer, it's not always fun to run up against walls and find that your innovativeness is met with stubborness or simple silence. I say "not always" because I think it's really just a matter of perspective. Over the years, Debian has seriously affected my life, the way I look at things, the way I interact with people, and the way I do stuff. I am eternally grateful for much of that. But the learning process has not stopped. What Debian needs is a stronger grasp of the big picture. In joining all the other developers who are already doing excellent work in that direction, what better learning opportunity could there be to approach large-scale project management, away from academia and the corporate world. For me, this is a very interesting perspective of a fascinating project, one that directly relates to my current research endeavour. I was asked recently how we "control the anarchy", and the first thing I said was that "control" was not the right word. Debian is not about control, it's about the flow. If it's not going your way, you can swim against it, you can pull out, or you can try to find ways to change that flow, bottom-up rather than top-down. I think David's idea of a steering committee is an excellent one, and I'd be happy to dedicate time to such an effort. I wouldn't call it "steering" though, as that seems too active. Rather, I envision a group of people dedicated to keeping track of the big picture (obviously in close contact with the release team) to which developers can turn if they need advice. In the last few years, I've often asked myself why the heck I don't just give up, instead of continuously running up against problems that seemed hopeless. Even now, I sometimes think that I should have just pulled the plug, but my answer has always been no, and it looks like it'll remain that way. Why? Because we've come an incredibly long way, and that by itself provide for a lot of motivation. Mostly, however, I decided to hang in there because I tend to like challenges, even if at first I have no idea how to conquer them. When I then look at what some of the people are doing for the project, I come to realise that there are solutions, even if the road is a long one. You (Scott) strike me as a very innovative person, and not only because the problems you and I are looking at tend to overlap to a large degree. I strongly respect you for your work, and Canonical certainly deserves a tip of the hat for providing you with the environment to do so. Sometimes, I even envy you a little, simply because I haven't been able to get down to coding solutions as much as I would have liked to and you've beaten me to the punch on things like HCT or upstart -- even though my work in that area has been mostly vapourware, so there was no real punch to which you've beaten me... I think you'll know what I mean. Yet, scanning some of your older blog posts, I got the impression that you weren't always happy with the way you have to do things at Canonical. And still, you're enthusiasm for working on your projects is astounding; it wasn't hard to come to that conclusion just a week ago, even though we've only talked briefly in Cambridge. Have you asked yourself why that is? I'll go out on a limb and postulate it's because of your innovativeness, because of your urge to push technology further, to implement cool things, and to break free of the cruft that comes with 13 years of Debian and several decades of standards la POSIX and SysV. Debian is too conservative for you, and all the cruft weighs heavy. Ubuntu, on the other handy, is "fluffy" and not afraid to forge ahead, and you've been an active part of it from day one. As much as I hate to see you "with them" rather than with us, I think you've found your place. And so have I. I'm less about coding than I am about integration, and there's work to do. Debian is a massive project with an amazing track record of achievements to look at. And it has problems. Well, great! Let's attack them. Never give up. Another reason why I've stayed with Debian is because there are people who think alike. Three years ago, I would have been able to give you a long bullet lists of hopeless problems in Debian. If you ask me today, I would have problems arguing their hopelessness, for I've seen plenty of developers taking it up with these problems, and in the meritocratic way. Our release team is doing a fantastic job and I've never felt so positive about the promise we made with the next release. People like J rg, Zobel, Rapha l, the two Alex, Meike, Christoph, and the many others I'll leave out only in the interest of brevity (the list is longer and doesn't only span Germany and France) are doing great work, and that is truly motivating. And I ought to mention explicitly our leader, Anthony, who's been doing an excellent job so far. I hope he can keep it up. Also, take a look at our IRC channels. I would have to be lying if I'd say nothing has changed. And the same applies to mailing lists. We still have a reputation to deal with, but if you stop listening to what people say and actually take a look, I think we've come a long way. I'd even say it's become more fun to work on Debian again! I think we owe a lot of that to Debian Women. I am definitely proud to be a member of this community (with which I mean Debian as a whole, not just Debian Women). I think I could continue this blog post endlessly. Let's not. You (Scott) may not be a fellow DD any longer, but you remain a fellow D, and I hope we'll continue to let our cooperation prosper. Now if only you had told me that "getting upstart installable required changes to twelve different packages, including sysvinit itself" when you approached me with what sounded like a simple sponsorship request... I've started to have a go at the "herculian effort", step by step. Seems like an interesting experiment. NP: Eels / Daisies of the Galaxy (it's really hard to find a better band for a grey Sunday morning) Update: Maybe our reputation isn't all that bad, or Slashdot posts suddenly became all useful. A lot of insightful and interesting posts in the first batch of comments...

Evan Prodromou: 17 Fructidor CCXIV

Hard to believe it's been more than a week since I posted on my blog. It's been a fun-filled week; Maj, Amita June and I took a cruise of the Baltic Sea. It was everyone's first cruise, as well as our first time in the area, so we did a lot of travelling -- hitting wt:Lubeck, wt:Visby, wt:Stockholm, wt:Tallinn and wt:Saint Petersburg during the week. Unfortunately, our onboard Internet connection was neither easy to use, reliable, nor cheap, and our time on land was too short (about 8-10 hours per city) to waste in Internet caf s. I did manage to get wireless in Tallinn, which famously has free municipal WiFi, but otherwise I was stuck with exorbitant satellite-feed access on board our ship. Most of my time online was making sure that Wikitravel wasn't crashed while we were at sea. (It's my constant fear -- as soon as I get out of range of easy Internet access, I'm sure that either the servers have gone kaput or there's an exploitable bug in the software. Either way, I'm pretty nervous on most trips. Kind of ironic, in a way.) Suffice it to say that it was really a worthwhile, good time for us. We're back in wt:Copenhagen today. I'm trying to catch up with a couple of Debian developers and NM candidates to exchange wp:OpenPGP key signatures, and trying to plan our scant 23 hours in wt:Zurich starting tomorrow. tags:

Blogue My friend Nicolas Ritoux, an Internet and games journalist in wt:Montreal, has a new blog at http://www.vulusu.ca/ . Vu, lu, su means "seen, read, known" in French, and I think it makes a lot of sense for the name of his blogue. He's got a near-comprehensive view of Internet and video gaming culture, and I think that this blog will be a nice addition to his weekly columns in La Presse. tags:

2 September 2006

Simon Richter: The energy crisis

Russell, I believe that the way of teh Phuture will be that cars are for short distances only. Essentially, what the world needs to solve both the energy and the traffic problems are standard containers that you can transport with an electrical car, or hand off to the local tube system for transport. At the supermarket, you'd put your stuff into such a container, take the tube home, and your stuff would be waiting for you there. You'd get one of the little antigravity transporters (or a car, if antigravity has not been invented yet), let the robot at the station put the container into it, drive home, unpack your stuff, mark the car as being free, and be done. As the maximum distance a car has to travel is pretty small, it doesn't need a vast energy storage, since cars would not be personalised, you'd simply leave one that ran out of energy, hook it up to one of the ubiquitous power stations and take another one. The idea behind this is to eliminate the advantages cars have over public transport.

Mike Hommey: Firefox 2.0b2 in experimental

Yesterday, I uploaded Firefox 2.0b2 in experimental. Please give it a try and checkout if some of the bugs in firefox are fixed by this new release. Same kind of help welcome with the version in unstable. When the bug count is more than 200, it gets painful to do bug triage, so any help on that matter will be very much appreciated by Eric and I. In other news, work has started on seamonkey. Unfortunately, I’ll be away for a little while, so I’ll have to leave quite an amount of the work to Alexander Sack, but I’m pretty sure he’ll be able to handle it. Anyways, we hope to be able to work out a full featured package for etch so that people using mozilla on sarge will get a correct upgrade path. I also uploaded yesterday a new xulrunner release that (finally) provides some of the NSS tools, so that administrators can handle keys/certificates databases for mozilla products. It is still in NEW, but should reach unstable soonish (let’s just hope the ftp-masters won’t reject the new package).

1 September 2006

Uwe Hermann: Security Engineering book available online for free

A great book about computer security is now available online for free — Ross Andersons Security Engineering (originally published 2001), and hence is now on my reading-list. I've recently read Practical Cryptography (by Niels Ferguson and Bruce Schneier) which is a must-read for everybody who even merely thinks about designing or implementing a crypto-protocol of any sort. If Security Engineering is only half as good as this book, it'll definately be well worth reading. (via Bruce Schneier)

30 August 2006

Martin F. Krafft: Using LVM snapshots for filesystem recovery

This morning, I found myself in Gunnar's position and was looking at an empty /home directory because of the following mount failure:
piper:~# mount /dev/mapper/vg0-home
mount: Unknown error 990
Starting XFS recovery on filesystem: dm-0 (logdev: internal)
Filesystem "dm-0": xfs_inode_recover: Bad inode magic number, dino ptr =
  0xffff810028a6bd00, dino bp = 0xffff81002851d140, ino = 33629
Filesystem "dm-0": XFS internal error xlog_recover_do_inode_trans(1) at
  line 2352 of file fs/xfs/xfs_log_recover.c.  Caller 0xffffffff88307729
I am used to XFS giving me hard times, but this time at least I didn't have much to worry as it happened at home, I have plenty other machines I can use instead, and all data was backed up. Since this is on a Debian unstable machine, I had the latest xfs_repair available, and told it to do its thing, but it refused:
piper:~# xfs_repair /dev/mapper/vg0-home
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
ERROR: The filesystem has valuable metadata changes in a log which needs to
be replayed.  Mount the filesystem to replay the log, and unmount it before
re-running xfs_repair.  If you are unable to mount the filesystem, then use
the -L option to destroy the log and attempt a repair.
Note that destroying the log may cause corruption -- please attempt a mount
of the filesystem before doing this.
Great. Catch-22. I decided to have a go at fixing it, but as much as I pretended to grok xfs_db, I did not manage to get the filesystem into a consistent state. I thus fired off an email to the mailing list (which has not arrived there 4 hours later) and started pv to dump the raw data to another machine for later use or debugging. Watching the progress meter of pv from time to time, it occured to me that my /home is in fact on LVM. I put it on LVM way back when LVM was new and cool and I wanted to gather experience with it. I've never actually done anything with it, but today it saved my little bits of remaining sanity. Why? Because LVM can take snapshots of volumes. It took me a while to put the pieces together, but in the end, a snapshot would enable me at least to run a test-round of xfs_repair -L and assess the damage, and if it wasn't all that bad, I could just run the repair process on the actual volume again. With the encouragement and knowledge of Christian Aichinger and Daniel J. Priem on IRC, I hence proceeded to give it a try. First I had to extend the volume group to make room for the snapshot data, and since I had no disks handy, I just used a loop device based on a sparse file:
dd if=/dev/zero of=/srv/loop bs=1 count=1 seek=5368709120
losetup -f /srv/loop
pvcreate /dev/loop0
vgextend vg0 /dev/loop0
lvcreate -s -n home-snapshot /dev/vg0/home -L 5G
(Thanks to Ian Nicholls for spotting the error: I was using pvcreate instead of that last lvcreate previously). Now /dev/vg0/home-snapshot was a copy-on-write snapshot of the original volume, and I could do whatever I wanted with it, as long as I did not exceed the 5G size allotted for the copied data blocks that I modified. Using mount and xfs_repair, I could verify that the problem also shows up with the snapshot. Thus, I ran xfs_repair -L on the snapshot and finally was able to mount the snapshot to inspect the /lost+found directory. Fortunately, it wasn't all that full, nor was there anything important in there, so I sighed, removed the snapshot (lvremove) and unleashed xfs_repair -L on the original volume, which is now again mounted under /home. Finally, remove the loop device from the volume group (vgreduce). If you are like me and forgot to do so before rebooting and now find your LVM volumes not starting anymore, look into the --removemissing option. I like this method. I knew the filesystem was corrupted, but I did not know to what extend. Had corruption been worse, I could have waited for the XFS guys to help me out. But seeing the low damage, I was able to decide to just purge the journal and accept the damage. If this had happened on a more important machine (i.e. without recent backups), I would have proceeded a bit differently: once the snapshot was mounted, I'd have run xfs_dump on it to save the data. I would also have used more space for the snapshot and not removed it until the parent volume was repaired and mounted. It's unlikely that xfs_repair will produce different results when run on a volume and its snapshot, but better be safe than sorry. All this said, I just want to point out that the above method is filesystem independent and hence would work for any filesystem out there. I've never been a big fan of LVM, especially without RAID to build on (striping across physical media multiplies your chance of data loss), but this method is a good reason for using LVM regardless: use a volume group instead of your physical disk, and logical volumes instead of partitions, but don't span disks (unless you have to). Then, if stuff goes bad, you can hook in another disk, extend the volume group with it, and work on snapshots.

Russell Coker: SRS development

I've been working on a mail forwarding system which required me to implement <a href="http://www.openspf.org/srs.html">SRS</a> to allow people who use <a href="http://www.openspf.org/">SPF</a> to be customers of the service (as I use SPF on my domain it's fairly important to me). Reading the web pages before actually trying to implement it things seemed quite easy. All over the web you will see instructions to just set up an /etc/aliases file that pipes mail through the <span style="font-weight: bold;">srs</span> utility.<br /><br />The problem is that none of the srs utility programs actually support piped mail. It seems that the early design idea was to support piped mail but no-one actually implemented it that way. So you can call the srs utility to discover what the munged (cryptographically secure hash signed) originator of the email should be but you have to do the actual email via something else.<br /><br />This wasn't so much of a problem for me as I use my own custom maildrop agent to forward the mail instead of using /etc/aliases (Postfix doesn't support what I want to do with /etc/aliases - dynamically changing the email routing as you receive it isn't something that Postfix handles internally).<br /><br />However I still have one problem. Sometimes I get two or three copies of the SPF header from Postfix when it checks them.<br /><br />In my <span style="font-weight: bold;">main.cf</span> file I have a <span style="font-weight: bold;">smtpd_recipient_restrictions</span> configuration directive that contains <span style="font-weight: bold;">check_policy_service unix:private/spfpolicy</span> and the Postfix <span style="font-weight: bold;">master.cf</span> file has the following:<br /><br /><pre><br />spfpolicy unix - n n - - spawn user=USER argv=/PATH/spf-policy.pl<br /></pre><br /><br />Does anyone have any ideas why I would get multiple SPF checks and therefore multiple email header lines such as:<br /><pre><br />Received-SPF: none (smtp.sws.net.au: domain of SRS0=MUyCQ6=CO=coker.com.au=russell@inumbers.com does not designate permitted sender hosts)<br />Received-SPF: none (smtp.sws.net.au: domain of SRS0=MUyCQ6=CO=coker.com.au=russell@inumbers.com does not designate permitted sender hosts)<br />[some other headers]<br />Received-SPF: pass (inumbers: domain of russell@coker.com.au designates 61.95.69.6 as permitted sender)<br />Received-SPF: pass (inumbers: domain of russell@coker.com.au designates 61.95.69.6 as permitted sender)<br />Received-SPF: pass (inumbers: domain of russell@coker.com.au designates 61.95.69.6 as permitted sender)<br /></pre><br /><br />The email went through one mail router and then hit the destination machine, but somehow got 5 SPF checks along the way. Also the pair of identical checks had no lined between them and the set of three identical checks also had no lines between them. So multiple checks were performed without any forwarding. It seems that a single port 25 connection is giving two or three checks. Both machines run Postfix with SPF checking that is essentially idential (apart from being slightly different versions, Debian/unstable and RHEL4).<br /><br />Any advice on how to fix this would be appreciated.

29 August 2006

Erich Schubert: Keeping your users out.

Today I was trying to find some information in the Ubuntu forums. I'm seriously annoyed. There was one thread that seemed relevant, but it has some 310 pages. Yes, thats over 3000 posts. Unfortunately, Ubuntu (and I consider this arrogant behaviour) doesn't allow you to search the forum or access attached images if you are not registered. I can understand things like spam protection. But WTF do you require registration for searching? I mean... I was trying to find out if the Ubuntu community could help, and all I get is "register first"!? Thats pure harrasment of non-registered users. I don't think I'll bother to remember another username and password just for their crappy forums. I hate forums anyway. And the size of that thread just shows that forums don't scale well. Especially if you can't search. [Update: yes, I've been a bit harsh here. The front page says that they're experiencing speed issues, and thus have disabled search within the forum. Actually I can't believe that search requests make such a huge load (especially compared to me browsing a 30-page thread...) - but maybe their search function is just implemented badly? I wouldn't be surprised if they do some huge SELECT to search, and don't have an index optimized for text searching. Maybe they shouldn't be using a closed source software for running their forum. I guess they could just fix the search functionality then. If opensource software doesn't meet their requirements, they're bound to get some support by the community to make the software meet them, if vBulletin actually is better in some points. IMHO vBulletin sucks. And given the speed issues "it is what the admin prefers" might miss some important point - that at some point you can't just keep getting a larger CPU]

Simon Richter: Mass virtual hosting

I'm (again) looking for a piece of software that might do just what I need, before I go out and reinvent the wheel. This time, I need something that can coordinate all the configuration files for the various services that make up an online presence, namely bind, apache, postfix and the smaller things I forgot. It should be robust (at least, there should be a "rebuild everything" button. It should allow me to form groups of domains, for example if I want .com and .org treated the same, but also allow exceptions (when only the .org has an alias for the board of directors). And it does not need a

28 August 2006

Lars Wirzenius: Random thoughts: Thoughts, random

These thoughts are somewhat more random than usual. I have an urge to start a business. This is going to require reduction in my Debian commitments. To begin with, I'll unsubscribe from -devel and -project, and probably -vote. I hope I won't need to drop any packages. Who knows, not reading the might even re-motivate me on doing Debian stuff. I might even start taking the new Python policy seriously and disregard that it seems to make everyone stupid. Tallinn, Estonia, is pretty. Or at least the Old Town is, I haven't visited anything else. The two Italian cats I met in Tallinn were very pretty, too. Coming up with names for programs and companies is quite difficult at times. I want something that Google can easily find; I don't want to repeat the SeX mistake again. My photography hobby is rather dormant. It's so dormant, I can't even justify buying a new camera. This doesn't motivate me to work on Lodju, my photo organizer, unfortunately. It'd be cool to find someone who would really like to work on it. There's a few basic decisions I've made that prevent me from jumping on the F-Spot bandwagon. It's raining. It's finally raining. This summer is finally complete. Just in time for autumn. "Getting Things Done" might actually work for me. It feels weird, though, to seriously read self-help books where the author keeps reminding the reader on every second page about his twenty years of management consulting experience. If it had been a web page, I'd have closed the tab. I need to seriously think about having more fun. All work and no play makes liw a raving, raging, violent lunatic.

Wouter Verhelst: Trains...

I had booked this trip to Cambridge and back well beforehand. According to my intinerary, I should've been able to get a train from Cambridge to London King's Cross at 17:28. Unfortunately, today London King's Cross is closed because of 'engineering', a eufemism for we need to work on a few things without knowing what the fuck we're doing. I had known that they were going to be closed today, since it was announced yesterday. However, I had (incorrectly) assumed that the train which was assumed to go to King's Cross would go part of the way and that I could take the underground from there, or that at least the train would be diverted to another station. Apparently I was wrong; instead of helping me out, they simply cancelled it. So now I had to figure out another way of making it to King's Cross. While I was considering forking out an insane amount of money to a cab from London Stansted (at least there was a train that could get me there from Cambridge), Cambridge Station staff suggested me that I could make it to Tottenham Hale from Stansted using a connecting train with Liverpool Street as its final destination, which would get me right next to an underground station. A ticket from there to London Waterloo, where the Eurostar leaves, will cost me slightly more than one from London King's cross, but at least I'll still be on time -- and I won't have to pay a cab. Lessons learned: next time, ask right away when you see something about engineering that might interfere with your travel schedule, so that you can actually get there in time without issues, and without unnecessary stress... ...and the fact that engineering in the UK is not done sensibly, as opposed to Belgium; this type of insane work should be done during night hours, when no trains have to be routed to that station anyway.

26 August 2006

Joachim Breitner: First Computer Club meeting

Yesterday, I held the first meeting of the Computer Club that I founded here at the college in Tema, Ghana. I didn't go into very technical things right now, to not scare anyone away, but gave an introduction to wikis and blogs, and showed the students how to use the wiki and blog I set up for the club. You can have a look at my LaTeX-created beamer slides.I think the club went quite well. About 20 students seem to be interested, and a few more might come with the 11-graders who start school next week. There seems to be little geeky knowledge present, so I'm not sure if I can go into the more technical things of geekdom, like weird programming language, fixing bugs in Free Software etc. But we'll see, maybe I underestimate them, and one year is a long time for an interested geek to get into new stuff.Besides one box that I can fiddle around with, and which hosts the club's wiki and blog, there is no Linux yet at the school. I did help a bit with setting up a few windows boxes, and already I'm happy to know that at least I have an alternative. Walking from computer to computer to manually deinstall software preinstalled by the vendor, manually set hostnames, manually write down MAC adresses for the WLAN MAC-filter, manually joining the domain and manually install all other software does not seem like the way I would want to administrate more than two computers. In Germany, we call that "Turnschuh-Administration" (sneaker or running shoe administration).

Unfortunately, that is not an argument to bring to make the school use more Linux, as a dual boot setup is the most I can hope fore at the moment, and that does not ease the pain of Windows administration. I'll keep you up to date on that.

Scott James Remnant: Upstart in Universe

upstart is a replacement for the init daemon, the process spawned by the kernel that is responsible for starting, supervising and stopping all other processes on the system. The existing daemon is based on the one found in UNIX System V, and is thus known as sysvinit. It separates jobs into different “run levels” and can either run a job when particular run levels are entered (e.g. /etc/init.d/rc 2) or continually during a particular run level (e.g. /sbin/getty). The /etc/init.d/rc script is also based on the System V one (and is in the sysv-rc package), it simply executes the stop then start scripts found in /etc/rcN.d (where N is the run level) in numerical order. Why change it? Running a fixed set of scripts, one after the other, in a particular order has served us reasonably well until now. However as Linux has got better and better at dealing with modern computing (arguably Linux’s removable device support is better than Windows’ now) this approach has begun to have problems. The old approach works as long as you can guarantee when in the boot sequence things are available, so you can place your init script after that point and know that it will work. Typical ordering requirements are: This worked ten years ago, why doesn’t it work now? The simple answer is that our computer has become far more flexible: We’ve been able to hack the existing system to make much of this possible, however the result is chock-full of race conditions and bugs. It was time to design a new system that can cope with all of these things without any problems. What we needed was an init system that could dynamically order the start up sequence based on the configuration and hardware found as it went along. Design of upstart upstart is an event-based init daemon; events generated by the system cause jobs to be started and running jobs to be stopped. Events can include things such as: In fact, any process on the system may send events to the init daemon over its control socket (subject to security restrictions, of course) so there is no limit. Each job has a life-cycle which is shown in the graph below: The two states shown in red (“waiting” and “running”) are rest states, normally we expect the job to remain in these states until an event comes in, at which point we need to take actual to get the job into the next state. The other states are temporary states; these allow a job to run shell script to prepare for the job itself to be run (“starting”) and clean up afterwards (“stopping”). For services that should be respawned if they terminate before an event that stops them is received, they may run shell script before the process is started again (“respawning”). Jobs leave a state because the process associated with them terminates (or gets killed) and move to the next appropriate state, following the green arrow if the job is to be started or the red arrow if it is to be stopped. When a script returns a non-zero exit status, or is killed, the job will always be stoped. When the main process terminates and the job should not be respawned, the job will also always be stopped. As already covered, events generated by the init daemon or received from other processes cause jobs to be started or stopped; also manual requests to start or stop a job may be received. The communication between the init daemon and other processes is bi-directional, so the status of jobs may be queries and even changes of state to all jobs be received. How does it differ from launchd? launchd is the replacement init system used in MacOS X developed as an “Open Source” project by Apple. For much of its life so far, the licence has actually been entirely non-free and thus it has only become recently interesting with the licence change. Much of the goal of both systems appears initially to be the same; they both start jobs based on system events, however the launchd system severly limits the events to only the following: Therefore it does not actually allow us to directly solve the problems we currently have; we couldn’t mount filesystems once the “filesystem checked” event has been recived, we couldn’t check filesystems when the block device is added and we certainly couldn’t start daemons once the complete filesystem (as described by /etc/fstab) is available and writable. The launchd model expects the job to “sit and wait” if it is unable to start, rather than provide a mechanism for the job to only be started when it doesn’t need to wait. Jobs that need /usr to be mounted would need to spin in a loop waiting for /usr to be available before continuing (or use a file in a tmpfs to indicate it’s available, and use that modification as the event). This is not especially surprising given that Apple have a high degree of control over both their hardware and the actual underlying operating system; they don’t need to deal with the wide array of different configurations that we have in the Linux world. Had the licence been sufficiently free at the point we began development of our own system, we would probably have extended launchd rather than implement our own. At the point Apple changed the licence, our own system was already more suitable for our purposes. How does it differ from initng? Initng by Jimmy Wennlund is another replacement init daemon intended to replace the sysvinit system used by Linux. It is a dependency-based system, where upstart is an event-based system. The notion of a dependency-based system is interesting to talk about at this point. Jobs declare dependencies on other jobs that need to happen before the job itself can be started. Starting the job causes its dependencies to be started first, and their dependencies, and so on. When jobs are stopped, if running jobs have no dependencies, they themselves can be stopped. It’s a neat solution to the problem of ordering a fixed boot sequence and the problem of keeping the number of running processes to a minimum needed. However this means that you need to have goals in mind when you boot the system, you need to have decided that you want gdm to be started in order for it, and its dependencies, to be started. Initng uses run levels to ensure this happens, where a run level is a list of goal jobs that should be running in that run level. It’s also not clear how the dependencies interact with the different types of job, a dependency on Apache would need the daemon to be running where a dependency on “checkroot” would need the script to have finished running. Upstart handles this by using different events (“apache running” vs. “checkroot stopping”). Again while interesting, Initng does not solve the problems that we wanted to solve. It can reorder a fixed set of jobs, but cannot dynamically determine the set of jobs needed for that particular boot. A typical example would be that if the only dependency on the job that configures networking is the mount network filesystems job, then should that job fail or notbe a goal (e.g. because there are no network filesystems to be mounted) the result is that network devices themselves will not be configured. You could make everything a goal, and just use the dependencies to determine the order, however this is less efficient than just ordering the existing sysv-rc scripts (which
can be done at install time). Another example is that often you simply don’t know whether something is a dependency or not without reading other configuration, for example the mount network filesystems may be a dependency of everything under /usr or may just be a dependency of anything allowing the user to login if it just mounts /home. The difference in model can be summed up as “initng starts with a list of goals and works out how to get there, upstart starts with nothing and finds out where it gets to.” How does it differ from Solaris SMF? SMF is another approach to replacing init developed by Sun for the Solaris operating system. Like initng it’s a dependency-based system, so see above for the differences between those systems and upstart. SMF’s main focus is serive management; making sure that once services are running, they stay running, and allowing the system administrator to query and modify the states of jobs on the system. Upstart provides the same set of functionality in this regard, services are respawned when they fail and system administrators can at any time query the state of running services and adjust the state to their liking. Will it replace cron, inetd, etc? The goal of upstart is to replace those daemons, so that there is only one place (/etc/event.d) where system administrators need to configure when and how jobs should be run. In fact, the goal is that upstart should also replace the “run event scripts” functionality of any daemon on the system. Daemons such as acpid, apmd and Network Manager would send events to init instead of running scripts themselves with their own perculiar configuration and semantics. A system administrator who only wanted a particular daemon to be run while the computer was on AC power would simply need to edit /etc/event.d/daemon and change “on startup” to “on ac power”. What about compatibility? There’s a lot of systems administrators out there who have learned how Linux works already and will not want to learn again immediately, there’s also a large number of books that cover the existing software and won’t cover upstart for at least a couple of years. For this reason, compatibility is very important. upstart will continue to run the existing scripts for the forseeable future so that packages will not need to be updated until the author wants. Compatibility command-line tools that behave like their existing equivalents will also be implemented, a system administrator would never need to know that crontab -e is actually changing upstart jobs. Does it use D-BUS?
“To D-BUS people, every problem seems like a D-BUS problem.”
—Erik Troan
The UNIX philosophy is that something should do just one job, and do it very well. upstart’s one job is starting, supervising and stopping other jobs; D-BUS’s one job is passing messages between other jobs. D-BUS does provide a mechanism for services to be activated when the first message is sent to them, thereby starting other jobs. Some people have taken this idea and extended it to suggest that all a replacement init system need do is register jobs with D-BUS and turn booting into a simple matter of message parsing. This seems wrong to me, D-BUS would need to be extended to supervise these services, provide means for them to be restarted and stopped; as well as deal with being process #1 which means cleaning up after children whose parent’s have died, etc. It seems far simpler to arrange for D-BUS to send an event to init when it needs a service to be started, and focus on being a very good message passing system. The IPC mechanism used by upstart is not currently D-BUS because of various problems, however it’s always been expected that even if init itself doesn’t communicate with D-BUS directly, there would be a D-BUS proxy that would ensure messages about all init jobs and events would be given to D-BUS and D-BUS clients could send messages to init to query and change the state of jobs. What is the implementation plan? Because this is process #1 we are changing, we want to make sure that we get it right. Therefore instead of releasing a fully-featured daemon and configuration to the world, we’re developing it in the following stages:
  1. Principal development; at the end of this stage the daemon has been implemented and can manage jobs as described.
  2. Replacement of /sbin/init while running the existing sysv-rc scripts. This is the shake-down test of the daemon, can it perform the same job as the existing sysvinit daemon without any regressions?
  3. /etc/rcS.d scripts replaced by upstart jobs. These consitute the majority of tasks for booting the system into at least single-user mode, and contain many of the current ordering problems and race conditions. If the daemon solves the problems here, it will be a success.
  4. Other daemon’s scripts replaced by upstart jobs on a package-by-package basis; this will be an ongoing effort during which upstart will continue running the existing sysv-rc scripts as well as its own jobs. During this time the event system may be tweaked to ensure it truly solves the problems we need.
  5. Replcement of cron, atd, anacron and inetd. This will happen alongside the above and result in a single place to configure system jobs.
  6. Modification of other daemons and processes to send events to init instead of trying to run things themselves.
The current plan is that we will be at least part of the way into stage #3 by the time edgy is released, with that release shipping with upstart as the init daemon and the most critical rcS scripts being run by it to correct the major problems For edgy+1 we hope to have completed stage #5 and be at least part of the way into the implementation of stage #6. From the start of development of edgy+2, no new packages will be accepted unless they provide upstart jobs instead of init scripts and init scripts will be considered deprecated. What state is it in now? The init daemon has been written and is able to manage jobs as described above, receiving events on the control socket to start and stop them. This has now been uploaded to the Ubuntu universe component in the upstart package for testing before it becomes the init daemon. We welcome any experienced users who want to help test this; install the package and follow the instructions in /usr/share/doc/upstart/README.Debian to add a boot option that will use upstart instead of init. If your system boots and shut downs normally (other than a slightly more verbose boot without usplash running) then it is working correctly. Other types of events will be added as required during development and testing. Currently only a basic client tool (initctl) has been written, compatibility tools such as shutdown will be written over the next week or two before it replaces our sysvinit package.

Jeff Bailey: When I breathe in...

Wow, haven't had time to post in a while. Some major highlights over the past couple of weeks:

(longish entry, hidding behind an lj-cut to avoid flooding various aggregators...)



Opus and ConCentric

Angie and I went to Opus and ConCentric. For those not familiar, it's an annual UU Young Adult (18-35yr olds) campout and spritual retreat. When we're there, we do activities, workshops, worship, cook, clean, sit around the fire, swim, talk, laugh, cry, and all the things that come when you throw people together in a space for 10 days. Every time that I go, I both miss it and am glad when I leave. Over the course of the year, I start to think about only the good parts and when I go back. But when I'm there, there's tempers, hurt feelings, things go wrong. At the same time, when I'm there, I meet some of the people I'll connect with the strongest over the course of the year. Sometimes just a feeling or a song from the camp will help me reconnect and push through in the year in between.

This Opus in particular was interesting. I'd been away for two years, after having been on the planning committee for two years. There were things I loved: There were new people, new songs, new games. I learned to crochet, swam naked under the stars, reconnected with many old and new friends. This particular camp in Maryland is the one at which I proposed to Angie in 2000. There were things that sucked: The cooking staff had trouble getting food out for the first few days, which resulted in one of them quitting; a few hospital visits for people onsite stressed my friend who was the first aid attendant. Fortunately, Angie and I have worked in camp kitchens before, and she was able to step in and fill that roll. A ...

I need a collective for a group of people that doesn't sound like 90's corporate psychobabble. 'team's are things that compete. Maybe I'll steal the word from the current Ubuntu release.

... knot of 4 of us are applying to be kitchen staff next year. I have to be careful what I commit to this year, since in general all commitments I'm making to people officially expire in February. I can't tell what life will be like on the other side of having a child!

It's also hard going to a camp where we've been before, I think. My memories of that camp are mostly centred around people who weren't there. One of whom is dead, many have aged out, many just didn't come this time. I miss all of you.

For the drive down, Angie and I rented a Smart Car from Avis. (Photo by Simon Law) Driving down to Maryland was fun. These things aren't for sale in the US until 2008, and there were many pictures of us taken on the drive and at gas stations. At least a dozen SUV drivers walked over to us to ask the mileage. It sustains 120km/h with no problems and doesn't get blown around too much on the highway. A few times I took it up to 130km/h, but at that point it starts to blow around alot. It *is* tiny, though. Packing enough for Angie and me to travel for 10 days was a bit tight, and driving a Yarris when I got back felt *huge*. On the way down, including Angie going to work once, and us taking a detour, the Diesel cost us $35, and the tolls cost us $40.

We did the drive down in two days. The first day making sure that we crossed the border and getting from Montr al to Albany. On the drive down on the second day, we didn't want to hit the NJ Turnpike at 5pm on a Friday, so we stopped for lunch at a place called Eduardo's Pizza in Boonton, NJ. They had some of the best pizza we've ever had, and the nicest staff. They gave us directions to a waterpark nearby which had a neat ride called High Anxiety (Picture 2 Picture 3). I prefered to call it Funnel of Doom. The park was overpriced for a full day for what you'd get, but the half-day discount prices were worth it and the park was mostly empty because of a state fair.

The drive back was mostly a day of hard driving. Being at camp was wonderful, but we wanted our own *beds*. We got a bit lost coming back, and somehow paid less than $10 in tolls, despite travelling in the same amount of time. I like adventures like that.

So what's next? Re-entry into the world is almost done, but now there's re-entry into the mainstream UU communities. This is the part I find the hardest. Opus is such an idealised world, where we talk about anti-oppression work, changing the world, changing ourselves to help create this new world. The worships are spritually alive (Elandria, YOU ROCK MY WORLD!) and the group doesn't stay long enough for alot of politicking to set in. Our jobs leaving there are always to take a part of that community and recreate it elsewhere. I think it's the toughest job I've ever had.

Go out into the highways and byways. Give the people something of your new vision. You may possess only a small light, but uncover it, let it shine, use it in order to bring more light and understanding to the hearts and minds of men and women. Give them not Hell, but hope and courage. Do not push them deeper into their theological despair, but preach the kindness and everlasting love of God.
- John Murray


For whatever God means to you of course. Blessed be. =)

Russell Coker: big and cheap USB flash devices

It's often the case with technology that serious changes occur at a particular price or performance point in development. Something has small use until it can be developed to a certain combination of low price and high performance that everyone demands.<br /><br />I believe that USB flash devices are going to be used for many interesting things starting about now. The reason is that 2G flash devices are now on sale for under $100. To be more precise 1G costs $45AU and<br />2G costs $85AU.<br /><br /><a href="http://www.coker.com.au/hardware/usb.html">http://www.coker.com.au/hardware/usb.html</a><br /><a href="http://www.coker.com.au/hardware/usb.html"><span class="" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"></span></a><br />The above page on my web site has some background information on the performance of USB devices and the things that people are trying to do with them (including MS attempting to use them as cache).<br /><br />One thing that has not been done much is to use USB for the main storage of a system. The <a href="http://laptop.media.mit.edu/">OLPC </a>machines have been designed to use only flash for storage as has the <a href="http://familiar.handhelds.org/">Familiar</a> distribution for iPaQ PDAs (and probably several other Linux distributions of which I am not aware). But there are many other machines that could potentially use it. Firewall and router machines would work well. With 2G of storage you could even have a basic install of a workstation!<br /><br />Some of the advantages of Flash for storage are that it uses small amounts of electricity, has no moving parts (can be dropped without damage), and has very low random access times. These are good things for firewalls and similar embedded devices.<br /><br />An independent advantage of USB Flash is that it can be moved between machines with ease. Instead of moving a flash disk with your data files you can move a flash disk with your complete OS and applications!<br /><br />The next thing I would like to do with USB devices is to install systems. Currently a CentOS or Red Hat Enterprise Linux install is just over 2G (I might be able to make a cut-down version that fits on a 2G flash device) and Fedora Core is over 3G. As Flash capacity goes up in powers of two I expect that soon the 4G flash devices will appear on the market and I will be able to do automated installs from Flash. This will be really convenient for my SE Linux hands-on training sessions as I like to have a quick way of re-installing a machine for when a student breaks it badly - I tell the students "play with things, experiment, break things now when no-one cares so that you can avoid breaking things at work".<br /><br />The final thing I would like to see is PCs shipped with the ability to boot from all manner of Flash devices (not just USB). I recently bought myself a new computer and it has a built-in capacity to read four different types of Flash modules for cameras etc. Unfortunately it was one of the few recent machines I've seen that won't boot from USB Flash (the BIOS supported it but it didn't work for unknown reasons). Hopefully the vendors will soon make machines that can boot from CF and other flash formats (the more format choices we have the better the prices will be).

Russell Coker: wasted votes

In a mailing list to which I subscribe there is currently a discussion on US politics with the inevitable discussion of <span style="font-weight: bold;">wasted votes</span>. As I don't want to waste my writing on this topic on a closed list I'm posting to my blog.<br /><br />There is ongoing discussion on the topic of <span style="font-style: italic;">wasted votes</span>. As a matter of principle, if a vote is considered to be wasted, then that should be considered a failure of the electoral system.<br /><br />Having representatives for regions makes some sense in that a regional representative will have more interest in the region than a central government with no attachment to the region. I expect that representatives of regions were initially used because it was not feasible for people to vote for people that weren't geographically local. Now there is no real requirement for geographical locality (only a very small fraction of the voters get to meet the person they are voting for anyway) but having a representative for a region still makes sense.<br /><br />The requirement for a regional representative means that if you live in a region mostly filled with people who disagree with you then your vote won't change much. For example I live in a strong Labor region so the REAL fight for the lower house seat (both state and federal) occurs in the Labor party room.<br /><br />My vote for the senate counts as that is done on a state-wide basis. So of the two votes entered in one election one of them can be considered to not be <span style="font-style: italic;">wasted</span>.<span style="font-weight: bold;"></span><br /><br />For the US system, the electoral college was developed in a time when it was impossible for the majority of voters to assess the presidential candidates, and it solved the requirements of those times reasonably well. Today it is quite easy to add up all the votes and use either a simple majority or the "Australian ballot".<br /><br />Currently there is some controversy over the actions of Senator Joe Lieberman who lost the support of his party and then immediately declared that he would stand as an independent candidate. I believe that this illustrates a failure of the electoral system. It should be possible to have multiple candidates from each party on the list. In the Australian system it is possible to do that, but as they are in random order on the voting cards no-one would be sure of which candidate of the winning party would get the seat unless there were actual reasons for preferring one candidate over another (which sadly often isn't the case). This is good for voters (the minority of voters who care enough about internal party policies to prefer one party candidate over another should make the decision) but not good for the candidates who want a better chance of winning without actually demonstrating that they can represent their voters better than other candidates.<br /><br />The Australian government system has nothing equivalent to the US presidential election. The prime minister is voted in by the members of parliament. So there is little chance of getting multiple candidates from one party contesting one position. For the US presidential election I think that the best thing to do would be to have an "Australian ballot" and permit multiple candidates from each party. For example you could have Bush and Cheney running as candidates for president with each promising to make the other their VP if they get elected. With the Australian ballot it wouldn't matter if you put Bush and Cheney as the last two votes on your ticket, the order you use for them will still matter.<br /><br />I think that with the US presidential and state governor elections there is enough knowledge of the candidates among the voters to make it worth-while for each of the major parties to run multiple candidates.<br /><br />One of many advantages of having multiple candidates is that you might have real debates. If the main candidates from the two big parties have a set of strict rules for their debate that prevents any surprise then the people who are the less likely candidates from those parties (and who therefore have less to lose) could go for a no-holds-barred debate with a selection of random members of the public asking questions.<br /><br />Of course none of this is likely to happen. Any serious change would have the potential to adversely affect at least one of the major parties, and any improvement would necessarily have a negative impact on most of the current politicians. Votes ARE being wasted, and most politicians seem to like it that way.

Next.

Previous.