tpx220

New toy

My previous laptop was due for a replacement. It's not that old yet—only two years—but it was getting on my nerves. The (second!) battery only gave me 45 minutes anymore, the wireless had issues, and I never really liked the processor—note the lack of the VT-x extension; at the time when I bought this laptop, I wasn't aware of the fact that Intel was segmenting their products based in processors with and without hardware virtualisation.

Originally I was going to buy a Toshiba R700-14J, but after I'd been waiting for far too long, it turned out that it had been EOL'd. So eventually, I succumbed to the dark side and bought me a Lenovo Thinkpad X220 instead. I've never been a fan of thinkpads before; I don't like what they look like, especially not the earlier models. But since I didn't want to wait a very long time again, I decided to go instead for a model that my suppliers' extranet site told me they had in stock, which kindof limits your options.

The model I got is one with an SSD, which is new for me. I'd previously been holding off on getting an SSD until the technology had matured a bit, having heard some horror stories in the past about how some earlier models would run very slow after a while, but I guess it's safe to say that kind of problem should now be past us.

It's crazy how fast this SSD is. The original 5 second delay which grub implies almost doubled the boot time. I notice that the 'networking' initscript no longer waits for a DHCP request to complete, which has the rather funny result that sometimes when I log in, I don't have networking yet, which means that libpam-krb5 can't do it's job properly, yet.

There's one thing I'm not very fond of, and that's the display aspect ratio. 16:9 is just wrong. While I still prefer 4:3, I can live with 16:10. Very unhappy about that. There are still some laptops available that do have 16:10, but that would've required me to wait, which I didn't want to do anymore...

Oh well.

Posted
cups ghaaah

CUPS: ghaaah!

So I have a postscript color printer. This is nice, because I can just throw postscript at it, and it will provide me with a hardcopy of whatever that postscript describes. Since postscript is what Unix-like systems like most, that's great.

Today, I needed to print something. It had been a while, and apparently some things in sid that are related to printing had changed, because it did not work anymore. I don't print every day (I absolutely don't print every day), so it had been, well, "a fair while" since I last used it. Of course it didn't work.

Of course, it is not the first time this happens. Every so often, my printer loses track with the cups installation on my server, and then I have to prod it a bit—usually by restarting the printer or the CUPS server, or both—and then it works again. The usual CUPS failure mode is that the printer was not available when I tried to print something, which causes CUPS to mark the printer as 'offline' or something, resulting in it being 'disabled'. The 'cupsenable' command is supposed to fix this, except that once in a blue moon it doesn't. I've learned to live with it.

But today was different.

Rather than the printer being disabled, something in the printer stack would just discard print jobs. That is, they would show up in the cups queue for a moment, and then disappear. I wouldn't get a piece of paper with something useful on it. I would just get nothing at all. This featureful printer supports syslog, and so I told it to send syslog messages to a useful system somewhere on the network. But that didn't produce anything interesting. It would tell me when the system had been powercycled, sure, but not why something would fail.

After trying many things for about an hour, sick of it all, I purged CUPS off my system and reinstalled it, then had it search for a printer again. It did find the printer through zeroconf messages, and I allowed the autoconfiguration stuff do things as it saw fit. When I asked it to print the exact same postscript file again, something came out of the printer. Finally, I thought, "success"!

Except it wasn't. Instead, the printer just produced gibberish. It turned out that cups had decided that my HP 2550n network-enabled postscript laserprinter was instead a HP 9xx-something USB-only PCL printer. Going back to the configuration interface and telling it to use the 2550n ppd file instead got me back to square one: the print job would appear in the print queue for a few seconds, then magically disappear.

At this point I was using 'tail -F' to monitor any logfile that might remotely be related. /var/log/cups/*, /var/log/syslog, /var/log/daemon.log, you name it. But nothing gave me any remote clue what was happening with the postscript that I'd been throwing at cups.

So I used netcat. This printer supports LPR, but will also accept postscript on port 9100 (I forgot what HP calls it), so a simple 'nc printer 9100 < foo.ps' should in theory just produce a printed page. And since someone told me that a "modern" (yeah, right) Linux printing system uses pdf throughout rather than postscript (for what, I don't know), I thought it might've been possible that something somewhere was just mangling the postscript in a way that things would not work anymore.

I was right, ut I never expected to e right in this manner.


Did you think this would be listed in the cups logs somewhere? Of course not! That would be too easy!

But then of course fixing this was fairly easy: just throw the original file from which this postscript was generated through a different postscript-generating program, and try again. Magic: suddenly the printer prints what I want! And it only took me 90 minutes.

Sometimes I wonder what the "userfriendly" police is smoking. Oh well.

Posted
freedom

On Software (and Cultural) Freedom

Nina Paley, author/actor/director/animatrist of the excellent sita sings the blues, blogs about the FSF's double standards when it comes to freedom. To the FSF, Software Should Be Free!!1!, and it is willing to go to great lengths to accomplish that. For example, the FSF will create dracionian requirements on their Hardware endorsement criteria, that will most likely render it unusable, just for the remote possibility that they might convert a single soul to their religion. They will add propaganda to their documentation, and slap on a license that makes it illegal for anyone to modify or remove that propaganda. They will claim to make an update to that license, just to make their friends happy, but then do not make any effort to finish the job.

Most of all, the FSF is led by a person who deserves our respect for jumpstarting a movement that has made all this free software even possible, but whose atypical behaviour might be interfering with his message these days.

I have stated before that I'm not a member of the FSF, and that 'I have my reasons'. In case you were wondering: the above are my reasons. I can't be a member of, or be supporting of, any organization that uses such double standards in anything.

In the case of Debian, it took us a long time to come to the conclusion that the GNU FDL is a non-free license. And though we came to that conclusion through other arguments than "Culture should be free, too" (specifically, the arguments boiled down to "if it's digital, it's software, and software should be free"), I have since come to the conclusion that there is nothing special about 'digital stuff' that should mean it should be more free than 'non-digital stuff'. If I hand you a piece of music on a sheet of paper, why should you not have the right to redistribute and/or modify that, while you should have the exact same right if I were to hand you the exact same paper on a digital medium? That makes no sense.

So, in short, I agree with you, Nina: there is no Free Culture movement, and that's a shame; and while it would be nice if the FSF were to take a lead role in guiding such a movement, I find it highly unlikely that they will. The FSF may claim they care about Freedom, that doesn't mean they do; they care about Software Freedom. And while that certainly was an issue thirty years ago, when the FSF was formed, it isn't so much anymore today.

There can only be one conclusion: the FSF is obsolete.

Posted
freedom II

Freedom, continued

Okay, so the story continues: Joe Brockmeier has posted a rebuttal to Nina Paley's post that I commented on earlier today.

Basically, Joe says that Culture is not the same things as Software, and gives a lot of arguments as to why this would be true. But I can't agree with him. Let's see why.

His first argument is "One of these things is not like the other". As in,

But it's far more reasonable and sensible to discuss Perl scripts and software written in assembler embedded on a chip together, and the rights that they come with, than to try to talk about rights to modify sculpture and essays.

I don't see how one could combine a perl script with an embedded assembler program, except perhaps over a network, or by using exec()—two cases in which the FSF would consider that they are not even derivatives anymore, they are "at arm's length", and it would be legal to do something like this if one bit was released under the GPL while the other was not. At the same time, it's possible to engrave (part of) an essay into a statue, for example. Or make a technical apparatus which looks like a statue but which will play music if you come near it. Both would be valid cases of some artist combining two separate and (at first sight) distinct things into one work.

Sure, you could crowdsource sculpture, but I doubt it will have much practical application. (And certainly difficult over the Internet, but I digress...)

It's called RepRap, and it's very much possible over the Internet.

Joe moves on, with 'Unintended consequences of forkable prose'.

Take the GNU Manifesto, for example. If you could "fork" the manifesto, I could easily see variant versions modified to justify open source instead of free software.

This argument had been brought forward during the discussions which Debian had on the GFDL vote, and has been seriously debunked there. In short: the ability and right to fork someone's prose does not, in any way, give you the right to misrepresent them. While I believe it should be okay for someone to base a theoretical Open Source Manifesto on the GNU Manifesto, I do not believe it should be okay for them to still keep calling it the GNU Manifesto. It's not the same thing anymore, so that should be clear.

This is true within Free Software as well: if you fork, you give it a new name, so it becomes clear that you're not the original anymore.

Moreover, I doubt the kind of prose found in the GNU Manifesto is the same kind of prose that Nina would like to see in a free culture movement. Not because the GNU Manifesto is a bad piece of writing—it isn't—but because Free Culture likely focuses on other things than manifestos.

Next, we get "Solving a problem that doesn't exist"

The spark that fired off the GNU revolution was a legitimate problem — because of non-free code, a user was unable to make use of hardware they (or their university) legitimately owned.

(...)

While Paley and others may want the same freedoms to go with cultural works, it is not a real problem in the same sense.

Pardon ye me?

I am a musician. Not a very brilliant one, mind you, but I play the flute with much enthusiasm, and have done so in a number of places. If you've been to any debconf since 2007, surely you must've heard me play. Also, I've been singing in choirs since I was sixteen—which, I just realized, means I've now been singing for more than half my lifetime. Time flies, it must be said.

One of the orchestra that I've been playing in was an extended flute choir with a rather unusual instrumentarium: apart from 30-something flautists, the orchestra also had a piano and drummer, a number of guitar players, and a bass guitar. Such an unusual set of music means you have three options: you play original music, written specifically for your group; you play something written for a different set of instruments, without changing anything, and hope nobody notices that it doesn't actually sound very well; or you make modifications. You make a derivative work of the music, so you can actually play it. There, I've said the word.

This isn't just true for music; I've yet to see the first theatre performance that is true, word-for-word, to the original script.

Also, movies use music all the time. When they do, there are usually two options: either they have original pieces of music written specifically for their movie (as is the case for most Hollywood blockbusters), or they take a piece of existing music, and adapt it so it fits the events in the movie better. By, say, shortening it, so it doesn't run into the next scene. Or by repeating the refrain an extra time, so the words line up nicely with the action. Or by having a group of musicians record a version of that piece specifically for your movie, which is the same thing in everything except the speed—so that the feet of the actor walking on the big screen hit the ground in sync with the music. Or... well. You get the idea.

By claiming that artists have no need to modify and derive from others, the only thing Joe accomplishes is to show that he really, really, really doesn't know what the fuck he's talking about. Artists have a need to modify other artists' works all the time. The only difference with free software is that they either need to invoke the fair use clause, or need to pay big bucks to the original rightsholder. Sound familiar?

Joe finishes up with stating that despite all of that, Free Culture is still possible. And:

That doesn't mean that free culture is impossible. It simply means that different standards apply.

Exactly: different standards apply. And why? There is no good reason for that.

Because people make money from cultural works? Well, money is made from software, too, that has never been a good enough reason.

Because Culture is not functional? How many in the Free Software movement would even be willing to only be doing software all the time, and not ever do anything remotely related to Culture? None, I would say. Culture is just as functional as Software, it just serves different functions.

In the comments, Joe clarifies that he isn't against people preferring not to use the ND clause in the CC licenses they select, he's just against demanding that others do the same.

That argument would make sense if not for the fact that the FSF demands, mostly, that Software Should Be Free!!1!. By not complaining about the GNU Manifesto, but complaining about Paley's "Rantifesto", which basically complains about the lack of such an environment in the free culture movement, Joe just makes a fool of himself.

Anyway, 'nuff said.

Posted
grass css

'grass' theme

I got tired of my previous website theme, so I created a new one. And thanks to the miracles of CSS, I didn't have to throw out the old—there's still a 'choose your layout' option in the menu.

Playing with CSS is fun, and this was an ideal opportunity to learn the new features of CSS3. I've used some of those, and did so in such a way that the theme should still be usable under a browser that doesn't speak CSS3 yet (I hope, though I didn't test). I'm calling it the 'grass' theme—if you go check it out, you'll see why—and it's now the default.

While I was at it, I found out about this little features of CSS that I didn't know about earlier, but could be useful none the less:

Using background: inherit is not the same as background: transparent. The latter will render all elements on the site (including floating elements) on top of eachother, while the former will inherit the background of parent elements, but will 'hide' elements that have a lower z-index value on the same location. This is useful if you have position:fixed or position: absolute elements that might overlap with floating elements on small screens.

I'm sure this is old hat to anyone who's done some serious web development (me, serious web development? hah!), but it's news to me.

One thing I haven't found is whether it's possible to use an alpha layer using CSS3. I looked for quite a while and didn't find it, so I suppose the answer is that it can't be done, and you'll have to use a PNG file with alpha values, or some such. Oh well.

In other news, . But I guess that's not a surprise to anyone. Leaving by car, in three days. That might be a surprise. Still have to pack a shitload of things, and also find some things. No surprise there—nothing better for me to do something than an uncomfortably close deadline. Oh well.

Posted
mechlin to banja luka

Mechlin to Banja Luka in statistics

I decided to go to DebConf11 by car. Not willing to do this alone, I asked for volunteers to join me in my car trip. One such volunteer showed up, and the car trip happened. Now, since I remembered to push the correct buttons on my dashboard after I completely fueled up the car and checked the tire tension and other things, I am now proud to be able to present you with the following statistics on this trip:

  1. Total distance travelled: 1466.8 km
  2. Average driving speed: 95.9 km/h [0]
  3. Total number of kilometers wasted on 'oh, crap, we forgot something': 10 (approx) [1][2]
  4. Total amount of fuel used: 81.3l
  5. Average fuel consumption rate: 5.5l/100km [3]
  6. Total amount of kilometers spent behind the wheel by Jeremy: 50 (approx)
  7. Total amount of kilometers spent behind the wheel by Wouter: the rest.[4]
  8. Time of departure: 2011-07-16 21:00
  9. Time of departure after point three and making sure we had everything: 2011-07-16 22:00
  10. Time of arrival: 2011-07-17 15:15 (approx) [5]
  11. Outside temperature at departure: 12 ° celcius
  12. Outside temperature at arrival: 35 ° celcius
  13. Longest (voluntary) break: 1 hour (approx; breakfast, tanking, bathroom visit, watching the sun rise)
  14. Longest (involuntary) break: 45 minutes (approx; customs check) [6]
  15. Last fueling stop: 4 AM.
  16. Amount of kilometers left to go before the car said bleep, you need to tank soon: less than one.
  17. Most tense moment: on crossing the slovenia->croatia border, confusing the border police officer ("no, I'm Wouter, that is Jeremy"—yes, we both had photo-ID), who then promptly holds on to our documents, asks the car's papers, and tells us to please park over there and wait a moment while he gets us to be handled by guy in a somewhat more military-looking uniform.[7]
  18. Biggest "uh-oh" moment: after crossing the croatia->bosnia and herzegovina border, watching the very, very, very, very, very[8] long line of trucks queueing to cross the border. In the other direction. And then realizing that you probably need to go through that very same queue on the way back
  19. Largest single toll fee: €15 [9]
  20. Last bit of time spent asleep before this trip: the minutes surrounding 2011-07-16 05:00:00 [10]
  21. Time wasted writing this blog post when I really should've gone to bed instead: 45 minutes
  22. Time now: 21:02:54

But it was fun. And that's all that matters.

Those who've shown up at debconf already, or who will arrive soon: see you tomorrow. Those who will arrive later: see you soon. And those who won't arrive: better luck next time, I hope.

[0] this includes times when the car isn't moving with the engine running, but not times when the car is turned off, locked, alone and forgotten, in the rain, while those idiots who were supposed to be its drivers were inside having a drink.
[1] Which is surprisingly little. Usually I manage to need more.
[2] Jeremy forgot his^Wa Debian banner. I forgot something, I can't recall what. I decided to bring some CD's to enjoy during the trip, and a 3.5mm audio connection cable which we end up not using
[3] According to the dash. I'm too tired right now to check it. Also see the next two points. [4] This could incorrectly be interpreted as a criticism on Jeremy. It's not his fault that I only told him a day before we left that I have a manual transmission. And in fact, if anything, I'm unhappy with the fact that I even had to hand him the wheel for those 50 km. I would've loved to be able to say "I went all the way from Mechlin to Banja Luka, all by myself".
[5] I forgot to check the clock, to be honest.
[6] What, you think I have a chronometer?
[7] The last four points could really have been written as two. Figuring out which goes with which is left as an exercise to the reader.
[8] very, very, very
[9] 7-day Slovenian road tax vignet
[10] Once I wake up, I hardly ever manage to fall asleep again. Esecially if it's light outside.

Posted
beard 2011

About the beard...

I'm someone who sometimes has a beard, and sometimes doesn't. Today, I'm someone with a fairly long beard, although it's not (yet?) one of the likes of andrew or maddog. I don't think it looks very well on me, but you can blame the government (or lack thereof) in Belgium. How?! What?! Yes, the government.

A while back, a movie critic working for the RTL (a Francophone Belgian TV station) decided to keep his beard until the Belgian government took the oath of office. He was quickly joined by an actor, and then by a Flemish radio presenter (dutch, with pictures). And then by a whole bunch of people.

I didn't join them, initially. But after a while, when my beard was starting to get long again, people started asking me, 'is that for the government?' And initially I said no. But people kept asking. Since it seemed like a good excuse for not having shaven that long, after a while I just decided to say 'yes' for the heck of it. And now, after having said so for quite a while, I've kindof grown to the idea.

Which, I guess, means that if the impossible happens, and someone back home manages to form a government that will take the oath while I'm still in Bosnia and Herzegovina, I'll have to go out and buy some razor equipment.

But I don't expect that to happen. Today, exactly 400 days after the previous election (yes, it's really been that long), it still doesn't look as if there's going to be an agreement on anything.

I wish there was something positive or funny that I could report on in this whole thing, but it doesn't look like it.

Sigh.

Posted
beard

On the beard, again...

It looks like I might actually lose it sooner than I was thinking in my previous blog post, a few days ago.

On the 18th, Formateur Elio di Rupo had written a proposed document on which to start negotiations. Most parties agreed to that, except for N-VA and CD&V. Unfortunately, that was enough to make further negotiations useless, so di Rupo had offered his resignation as formateur to the King, who kept his response "under advisement". I thought I was going to end up like Andrew.

Since he wasn't formally ex-formateur yet, however, he continued working. And today, merely a few days later, with an extra proposal—and perhaps also partly due to the King's angry speech for today's national holiday—CD&V has now been persuaded to join the negotiations. It's been over fourhundred days, and far too many weirdos, but they're actually sitting down to talk. Like, right now.

I'll hold off on buying those razor blades for now, but we might yet get there.

Posted
it builds

IT BUILDS!

Finally.

Since the release of squeeze, I've been fighting to get nbd to actually build on "most" architectures. There had been several issues, not the least of which was the fact that it had categorically refused to build on the kFreeBSD ports. I'd tried to debug that several times, but could not understand the issues. So then I set up a VirtualBox image with kFreeBSD to test, and when I finally got it to build there, I did an upload with the changes that I'd applied. Only to find it didn't build on the autobuilders.

I briefly considered building it myself and uploading that, but then we have two kFreeBSD ports, so that wouldn't help. And, I guess, it would be severely frowned upon.

Eventually I found the final issue: the test suite has recently acquired a set of "integrity" tests, that replay a recorded session and verify that the responses from the server are correct. This implementation in nbd-tester-client, however, has non-blocking writes to the server, and the server also does non-blocking writes. The "integrityhuge" test tries to write rather large blocks in one go; so basically, what happened not only on kfreebsd-* but also on some Linux architectures, like s390 and ia64, was that the buffers of both the server and the tester client were full, and they would deadlock when both wait for the other to read before they could continue writing.

This is a bug, yes, but one that has existed for a very long time, and one which is unlikely to hit in actual usage—the integrityhuge test fires off a multitude of very large reads and writes, without waiting; a situation that is highly unlikely to occur in real usage. So for now, I will disable the integrityhuge test, until such a time when I can implement async writes—a feature that has been on my TODO list for a significant amount of time.

Posted
revival

m68k revival

If you thought Debian/m68k was dead and buried and where happy about it, I'm sorry to disappoint you.

The reason m68k had died out slightly was not that we'd lost interest, or that we'd been kicked out of the archive, or anything of the sorts, as I've seen people believe. Instead, the reasons were fully technical: glibc past some particular version needs TLS (thread-local storage) support, which hadn't been implemented for m68k yet, and nobody within the Debian/m68k team had the expertise to work on this. That was all.

Not so long ago, some people within RedHat had started doing a TLS implementation for m68k, however. This was paid for by one of their customers who needed the ColdFire to work, and therefore it was focused mostly on ColdFire. However, ColdFire is close enough to plain old m68k that it was possible to port this TLS support to plain old without too much effort. Unfortunately, most of our machines were pretty much nonfunctional by that time; so in order to get things to work, we'd have to

  • Reinstall some of our machines, fix the others, without a functional installer,
  • Do the necessary porting and package integration work,
  • Rebootstrap the architecture,
  • do other things necessary (such as providing a working installer, etc).

Not quite impossible, but still a lot of work that would need someone to put in quite an amount of time. This wasn't something that people in the m68k port could invest; and I'm also not sure we had the necessary skills amongst the team to do the necessary porting.

So the work lay there, and it wasn't being done. Until one Thorsten Glaser, author of a shell called 'mksh' that I hadn't heard of until then, came along, and noted that his mksh package wasn't being built for m68k. Upon investigating, he discovered, as expected, that the port was almost dead. Now most people would leave it at that and decide that they couldn't build for an architecture that wasn't being maintained anymore—and that would be perfectly fine— but not Thorsten. On the brink of death, he almost single-handedly revived the m68k port, and got stuff to work to such an extent that it is now again possible to build a working and fairly up-to-date Linux/m68k ARAnyM virtual machine.

As I'm typing this, my ARAnyM instance is checking out the d-i repository (so I can start building d-i), and building sudo at the same time.

Let's see what comes from this.

Posted
the things i find myself doing today

The things I find myself doing today.

Building debian-installer for m68k

...which requires localechooser

...which build-depends on python-lxml (amongst other things)

...which is uninstallable

...which contains some pythonesque source files that are converted into 6.7M C files (by something called "Cython")

...which is then compiled against python2.6. That takes somewhere between half an hour and one hour on this ARAnyM emulated box (I haven't timed, actually).

...a step which is then repeated for python2.7, and possibly more (I haven't gotten that far yet).

...and this file is located in a directory with dozens more of those pythonesque source files

Looks like this is going to take a while. I should probably look into getting distcc set up.

Posted
dc11 food

Food

variety

if you're not at DebConf11 and don't get the joke, don't worry; that's expected

Posted
pere kubuntu boot

Re: Pere

Fellow Debian Developer Petter Reinholdsen, who is also on Planet Debian, recently blogged about two things that I just have to respond to. I'd post a comment on his blog, but unfortunately his blog does not support comments (booh!).

In his first blog post, titled "What is missing in the Debian desktop, or why my parents use Kubuntu", he complains about the lack of a "simple GUI based upgrade of packages". That already exists and is in Debian; if you install the default GNOME desktop, you'll get an icon in the (freedesktop.org) system tray (so it's not a gnome applet) that will tell you when there're updates available. It uses a system tray thingy, so it's not gnome-specific, and you can still use it if you use KDE instead of gnome—though I should add that it's something my parents keep ignoring, even after I've told them. Oh well.

The same blog post contains two more items that I don't disagree with, and is then followed with a complain about "Better browser handling of some MIME types". This is actually a bug in Firefox upstream, not Debian; ubuntu may have patched their Firefox, but feature requests to fix this issue have been posted in the Firefox Bugzilla. Meanwhile, a workaround exists.

His second blog post is about the boot process. Petter is involved with the sysvinit system, and has some valid points in that some scripts in rcS.d really don't belong there. Petter wants to move many scripts, including those setting up the network, out of rcS.d.

I don't think that's a very good idea. Currently, a system admin has four options: boot to a 'normal' login prompt (just boot, don't modify the kernel command line); boot to a single-user system (by adding 'single' to the kernel command line; this runs rcS and rc1 scripts); boot to a very minimally set up system (by adding 'emergency'; this just mounts the root filesystem, does some very minor setup (like doing the keyboard mapping) and allows the user to get a root shell); or just boot to a shell, period (by adding 'init=/bin/bash').

While it makes obvious sense that rcS.d shouldn't contain too much stuff (otherwise you might as well not bother with having it at all), I'm not sure that moving the mounting of 'network-based filesystems mounted by default at bootup time' away from rcS.d is a good idea. Sometimes things go horribly wrong after the networked filesystems are mounted, because some things are misconfigured on those networked file systems. We currently have two states that bring the system up to 'networked filesystems mounted, system not fully booted', and two that bring the system up to 'root filesystem mounted, you figure it out from there'. That seems well divided, and I don't think changing that is a good idea.

Posted