Archive for August, 2009

Cookery (4)

Monday, August 31st, 2009

While I recently wrote something along the lines of “buy local!”, extolling the virtues of vegetables from one’s own garden, I’m also partial to a Dutch saying “wat je van ver haalt is lekker” — whatever comes from far away is yummy. Unfortunately I have not learned to make sinasiri (next time I got to Nigeria, I will have a shopping list), so the followin pan-European thing will have to do: mushroom risotto with salmon and beet greens. I obtained a box of Polish mushroom stock tablets recently from a friend’s mom, a box of Italian risotto rice from a local deli, salmon from the market (presumably Norwegian farmed) and the beet greens were part of our vegetable subscription, so they were from across the river. A 2007 pinot blanc from the Alsace rounded out the European tour. Menu for two or three diners:

Mushroom risotto:heat some olive oil and sweat off an onion until glazed; stir in some chopped mushrooms and allow them to brown. In the meantime, prepare 2 cups of mushroom stock (from bouillon cubes if you like, and the Polish ones do taste better than the Dutch ones). Add one cup of rice and toast it for three minutes, stirring occasionally. Quench with one cup white wine, then stir in the stock, half a cup at a time, and allow the rice to cook (about 16 minutes at lower heat).

Salmon: 400g salmon fillet. Rub down with salt and pepper, allow to stand 15 minutes. Melt butter (actually, I tend to use half butter half olive oil for frying fish) until browned, then add fish (I don’t have a pan that will take a single chunk of fish this large, so I cut it in two and have to shuffle a little). Fry one side 3 minutes, sprinkle dill liberally on upper side, then turn over, fry for another three minutes. Add one pound chopped beet greens over top, splash on some wine and cover tightly to steam the greens for 4 minutes or so (until the fish is just done).

Serve with what’s left of the wine — if the cook has been tippling in the kitchen, don’t give him any more. A selection of cheeses makes a fine dessert.

Mini booth-box

Sunday, August 30th, 2009

I regularly visit fairs or attend development sprints, and in the course of a few years I’ve gathered together something I call a “mini booth-box”. It’s a plastic crate full of odds and ends that are invariably useful at an event; I can either take the whole box or cherry-pick from it for specific events. Like at FOSDEM this year, where I packed 2 19″ flatscreens, a Sun Ray, two keyboards and mice and a laptop into my backpack. Forgetting, of course, the required switch and stuff. Well, the best-laid plans …

Anyway, here’s a list of what’s in that crate, in the hope that it might be helpful for someone else.

Networking: A 24-port hub and its power lead; a 5-port switch and its wall wart; a WRT54GL and its wall wart; a crossover cable; 25m, 10m, 2x5m and a 2m straight UTP cables. Video: DVD-D dual link cable; VGA D-sub cable. DVI-I to D-sub adapter. Input: PS/2 mini-size keyboard; USB keyboard; USB mouse. Misc: 1GB USB stick; bluetooth dongle; 1m eSATA cable; 1.5m USB A-B cable; 1.5m USB A-mini cable; Nokia phone carger (mini-connector). 4-socket power strip. UK-Euro plug adapter.

I know some of that is redundant, overly specialized or just crap, but it serves its purpose of giving me a one-stop shop in house for picking up equipment when going to a fair. I just hope I didn’t forget anything. The Sun Ray thin client doesn’t travel in the box, but it does good service at stands if I want to use my laptop while at the same time leaving the laptop at the booth for display / demonstration purposes.

Cookery (3)

Saturday, August 29th, 2009

Book coverSome folks know that I used to be a fan of the Gallery of Regrettable Food — also a source of recipes to avoid and wonderful pictures. So while re-organizing my house and clearing out shelves, I found a wonderful item: Adelaide Daniels Weight Watching Cooking. The food itself is so-so, typical early ’70s Canadian fare with plenty of evaporated milk and instant coffee and the inside illustrations are just boring. But the cover! So in the interest (questionable, I know) of saving the cover and pitching out the paper (to the recycle bin), I’ve scanned it. Click for full(er) size, 850kB; the scan is a little less vibrant than the original, and both the dithering in the original printing and the texture of the cover show up more in the scan than they do on the book itself. It’s a bit of a shame, because the green glowing lime Jell-o pudding really leaps out at you.

Adelaide Daniels was founder of the Weight Watchers of Ontario, but doesn’t seem to have left much of a biography on the net. The book itself is for sale from some “antique” book-sellers, listing USD 7.95 — maybe I should keep it and wait for it to appreciate more?

Not responsible for resulting queasyness, here’s a recipe for my Jamaican friends.

Jamaican Orange: Fill a 6-ounce goblet 2/3 full of an orange-flavoured, low-calorie carbonated beverage. Add rum extract to taste, and ice to fill the glass. arnish with a lemon twist. Makes 1 serving.

Misinformation Tuesdays

Thursday, August 27th, 2009

I suppose pointing out deficiencies in /. articles is like pointing out that someone is wrong on the Internet, i.e. it are sadness, i.e. just don’t get started, but when there’s two stories on there in one day that tremendously misrepresent legal or licensing issues, it gets my goat. And my goat is gruff.

SCO: The first is relates to a recent development in the long-running case between SCO and Novell, where the /. summary points to NetworkWorld and to the Salt Lake Tribune (which stories largely overlap). No link to GrokLaw’s commentary (although it shows up in one of the early comments on the story). The /. summary contains the finely misleading sentence

… Court of Appeals said it was reversing the 2007 summary judgment decision by Judge Dale Kimball of the US District Court for the District of Utah, which found that Novell was the owner of Unix and UnixWare copyrights.

I’ll call that finely misleading because of the way in which it represents what is reversed and what is not. Yes, there was a summary judgement. And in this new one, the court says We affirm the judgment of the district court in part, reverse in part, and remand for trial on the remaining issues. Essential, then, to report accurately on what is reversed and what reversal means in this context. So you actually need to read the text of the judgement (e.g. through Groklaw) to find that the court finds the following:

Because we conclude summary judgment is inappropriate on the question of which party owns the UNIX and UnixWare copyrights, we must likewise reverse the district court’s determination that “Novell is entitled to summary judgment [on SCO's claim] seeking an order directing Novell to specifically perform its alleged obligations under the APA by executing all documents needed to transfer ownership of the UNIX and UnixWare copyrights to SCO.”

(p. 34 of the judgement) So an accurate summary would be more along the lines of “the court finds that the earlier decision to award summary judgement was inappropriate”: Avoiding the word “reversal”, especially in conjunction with a statement about who owns the copyright, is important in presenting the result. Indeed, one might have written “remanding to trial” instead of “reversing” and made the actual impact clear instead of implying some reversal regarding the actual copyrights.

License Wars: My second gripe comes from the /.-frontpage-promoted article FOSS Licences Wars by Shlomi Fish. He thanks dazjorz for comments on drafts — personally I would have thought dazjorz knew better after getting through CodeYard. I think the article starts off on the wrong foot with the word “wars” already. Especially if you are trying to present some kind of reasoned argument for one particular license or one particular model of licensing. I won’t quibble with numbering the four freedoms from 1, as I usually make the numbering out to be a bit of a joke myself. And it’s factually correct that using the definitions of Free Software and those of the Open Source Initiative leave space to have software that is one but not the other. However, because “open source” is misused as a marketing term (though, granted, searching for free software will point you at warez) the FSF and the FSFE talk only about Free Software — because it is the freedom of the recipient and all future recipients that must be preserved, not the economic or development model.

A copyright is in a sense always proprietary, because it is a monopoly granted by the government to an entity to control the copying of a work. There is a proprietor who holds the rights; the trade-off (social contract, if you will) between the rightsholder and society is that eventually the protected work is no longer protected, and at that point the original rightsholder no longer has any say for a published work. Note “published” there, or “made public”; there is a strong notion that the public — “we the people” — eventually get to use freely creative works works originally made available under a monopoly. A license is a means for the rightsholder to grant a licensee additional rights — rights which the licensee does not automatically have. Hence we need to grant a license to actually use software (instead of hanging the software on the wall, although even that might not be allowed under stringent interpretation of the copyright conventions). To call BSD-style licenses “public domain licenses” is misleading, because public domain as a legal notion doesn’t apply everywhere, but even if it did, the fact that there is a license means by definition that the work is still a protected work under copyright; the monopoly still exists, but you are given a license to do things with the work in addition to what the social contract allows. A more accurate term would be “non-restrictive Free Software licenses” or “very permissive”.

I’m actually grateful for the reference to “copycentre” to describe BSD licenses — I had never heard that one before. The linked Wikipedia article oddly characterizes BSD as sitting between public domain and copyright, which is like saying that a member of a soccer team plays on the field (somewhere). Dang it, I’m no good with sports analogies, am I. Every license is somewhere between those two extremes of fully proprietary control and no control at all. Again, using the term “restrictive” would make more sense as one axis of distinguishing software licenses.

On the restrictiveness axis, it goes something like (from no restrictions to many) public domain, BSD-style, weak and strong Copyleft, proprietary software licenses, monopoly.

I can’t argue with the sections on weak and strong copyleft licenses from Shlomi (I don’t need do be curmudgeonly about everything, there’s some other guy for that). In fact I quite like them. One issue I would point out is that linking is a grey area, because it is a technical one with many different implementations; indeed the fuzzy nature of what constitutes linking is one reason that members of the European Legal Network, supported by the FSFE’s FTF, are working towards documenting best practices understanding of what linking is. And that turns out to be quite tricky, because it is all about functional dependency and an understanding of what constitutes a derived work and a composed work — concepts which vary by jurisdiction.

It’s in the “curious licenses” that things derail again. The Affero GPL tries to close the “distribution loophole”, which is a way of using GPLed software without providing source: one need not provide source code (of a GPL or GPL-derived work) unless one distributes it to another party; by providing access to the in- and output of a piece of GPL-derived software one does not distribute it — and hence a whole chunk of the GPL meant to preserve users’ freedoms does not get triggered. The Affero GPL closes that loophole (calling it a loophole implies that it’s a bad thing, which is not an opinion widely held) by triggering the clauses requiring the availability of source code in more cases. I think there might just be some words missing in this paragraph, particularly in the parenthetical “because I may wish to run it on my publicly accessible web-server and modify it” — perhaps the author dropped “and not publish the changes“, but it is difficult to guess. It’s either that or the tension between the AGPL and Freedom 1 (2 in the numbering used in the article) doesn’t exist. The closing sentence about killing web-services is a complete red herring; the AGPL applies to far less that 0.24% of all projects and at most 1% of all GPL-family licenses (statistics from Black Duck’s license overview).

Well. So I find fault in much of the characterizations of licenses and license terms in that article, and I haven’t even gotten to the contentious bits yet. I guess the point of the whole article comes down to: Shlomi chooses an MIT/X11 style license because it allows maximum use of the software, and this makes sense because there are plenty of Free Software implementations of the specific technology the license is being applied to.

That’s ok. As copyright holder, you get to choose. And if you want to choose a less restrictive license which allows people to do non-Free things with your code, go ahead. But please don’t frame it as a “war” between different licenses. Because it’s not. It’s a difference in emphasis and a difference in choice by the author about what the author allows other parties to do.

Bad ideas 1 and 3 I can agree with: don’t go proprietary, don’t go custom. That way madness lies. Bad idea 2 — choosing something non-GPL-compatible, is indeed a bad idea, but the explanation is a little fuzzy. Remember, when you run a computer program you are doing so under a specific set of license terms. That means that running program M even under a “GPLv2 or later” kind of grant means you have to pick one (metaphysically) at runtime — and M still cannot mix and match GPLv2-only and GPLv3-only code or components. Keeping your options open — and also the options of people who use your code and who thus must operative within the license that your grant them — is often a good idea.

Bad idea #4 is about referring too loosely to the license of something else; that makes sense as you want a license to be clear and not lead to too much pointer chasing. The only exception I can think of quickly is examples distributed with a piece of software, where something useful may be derived from the examples (eventually).

When we get to bad idea #5 (make it public domain) I’m left confused again; public domain is the situation you end up in when there is no monopoly right on a creative work anymore. Traditionally one disclaimed copyrights and assigned to the public domain (in the US where this is possible). Calling this a license is a bit misleading, and throwing it in as a bad idea when you’ve already discounted the possibility of using public domain much earlier in the article is .. a bad idea in itself. The advice in this bad idea — to use the MIT/X11 license if your interest is primarily in providing the code as a product with as few restrictions as possible — is good advice, though. You make available and do not control what happens with the code. A fine choice!

Naturally (?) I think bad idea #6 (don’t choose the GPL or LGPL) contains some of the worst advice in the entire article. The GPL is one of the few Free Software licenses that has actually been tested in court; it serves as the basis for ongoing enforcement of rights (by people who care about the rights they retain under their licensing within the framework of copyright); while it is full of politics, it is much-studied and therefore relatively well understood. I took a look at the Sleepycat license and can only come to the conclusion: “interesting, I wonder when all those undefined terms will come into play?” License interpretation is best left to the FSF, though, and I’m glad to do so. I wouldn’t use the Sleepycat license, myself.

The conclusion that the GPL is at fault for forcing things to be re-implemented is one built on shaky foundations; we could similarly conclude that it is BSD-style licenses at fault for being incompatible, and indeed if all Free Software licenses were compatible then there would be no issue at all, because you could mix and match regardless of the terms of the license. If the entire Free Software world re-licensed tomorrow to PHK’s Beerware license (he’s Danish, he can probably handle an infinite supply of beer) with no modifications, then .. huzzah! Compatibility and no problem ever needs to be solved twice.

Actually, I’ll challenge the idea that a BSD-style license means that each problem only has to be solved once. Those problems that are solved and then released under the license need to be solved once; related problems that are solved by modified versions might need to be solved multiple times as each implementation goes proprietary. A strong copyleft license ensures that a problem is solved once and derivative problems are also solved once and made available (subject to the terms of the license triggering and requiring source code release). In case of common human decency break glass, release code — that is, most individual developers I know wouldn’t dream of proprietizing BSD-licensed code because it wouldn’t be right, but that isn’t to say that everyone is therefore decent.

So what would I do? Well, after all this disagreeing with Shlomi on the analysis of licenses, on the wording of many things and the examples given, I do agree that MIT/X11 is a sensible license to use — and I have used it on many occasions in writing and releasing my own software. The SQO-OSS project decided on the (2-clause) BSD license, and hence could only use BSD-compatible software; that did mean skipping over some GPL-licensed solutions. And I remember we found other non-standard licenses applied to some useful technology, which we therefore left behind as well. Again: if everything was MIT/X11 licensed, we would have no issues, but differences in the license terms inherently mean that there’s incompatibility possible, and it’s not one side’s fault or the other. I’ve worked on a number of GPL-licensed (both GPLv2+ and GPLv3-only) projects as well; usually not as the initiator of the project, though, and here I respect the choice of the original author that keeping the source available for everybody is a valid choice as well. It’s a choice that I would make when implementing something entirely new — if people want the same functionality but do not want to contribute long-term to the public good, then it is up to them to put in the duplicate effort.

So, 2300 words later, we conclude: reporting on licenses and license terms and legal issues is tricky, because you need to be very careful in the choice of words and aware of the audience. Words like “reverse” should be avoided when presenting court orders to the public, because the colloquial understanding and the legal meaning differ. And when using Free Software from other contributors, be aware of the license; when choosing your own license, be aware that you must choose between relying on good faith or imposing restrictions. I dunno .. maybe next time I should just leave it to the /. commenters.

The Open Web is go!

Thursday, August 27th, 2009

The NLUUG fall conference on Het Open Web (English, the Open Web, and I’ll guess that a little over half of the conference will be in English) is now complete. We have the programme sorted out. Topics (or tracks, if you will) include multimedia and the social web (or desktop). KDE people will find some of the speakers vaguely familiar .. I was not on the programme committee, you can’t blame me for it.

Registration has opened. As in previous years, students pay only EUR 26, NLUUG members who are not longer students EUR 135. A bargain conference with great content, and I invite you all to attend.


Tuesday, August 25th, 2009

One of my favorite recipes is oven-roasted beets and potatoes, au gratin I suppose. It’s one of those things that goes with summer. Fresh potatoes from the garden, beets from the organic grower across the river, local cheese, some rosemary from the back yard. You can eat local. And it’s dead easy, too: take a pound of beets and a pound of potatoes, some olive oil, salt, pepper, rosemary and 150g of cheese (perhaps a cheddar, although I would personally recommend Tynetaler boerengatenkaas, but then I’m picky about cheese); slice the veggies and layer them in an oven dish, adding a little of the oil, salt, pepper and rosemary to each layer. Top with grated cheese and stick in in the oven at 150 degrees C for an hour or more, until nice and soft. While it’s in the oven, you can write blog entries :)

Frankfurt wrap up

Monday, August 24th, 2009

The KDE e.V. board has decided on a location for a new office in Berlin and we will be moving the e.V. office there fairly quickly; we decided this over generous portions of Frankfurter Green Sauce which is quite an interesting substance. Other topics like Akademy 2010 were finished off as well, and we will be doing official announcements on all these later this week. After the meeting I had a few spare hours and it was a gorgeous summer day, so I went over to the Liebieghaus (site doesn’t seem to like Konqueror) and it was just amazing. It was also kids’s day, so the gardens were not restful and quiet but filled with painting and coloring and dance and fröbelen. Inside, the house is a warren of galleries, chapels, turrets and whatnot, and stuffed to the gills with ancient to almost modern art and devotional artifacts. It was the right choice — thanks Claudia for pointing me in that direction. On the train I mucked about with Boost and its compatibility with the upcoming new Apache C++ STL for OpenSolaris.

This week is about conference planning, both attending and organizing, so I have a six month horizon — and it is cluttered. The next one up is OSiMWorld, where I don’t have a booth or anything, but I will be saying “Hi” with my Green and Blue hats to all comers.


Friday, August 21st, 2009

I’m in Frankfurt this weekend for a meeting of the board of KDE e.V., where the main topic is the office; we will be moving to Berlin later this year, and selecting a location and planning the move is important for having a pleasant autumn. It’s a typical board meeting, with document sharing, silly drawings on the flip-over chart, a nice lunch organized by Claudia and a bazillion topics to go through besides the ones on the agenda.

What a difference fontconfig makes

Thursday, August 20th, 2009

screenie-withoutTime for a collection of screenshots, as an illustration of Qt applications on OpenSolaris, both on a local display driven by a Radeon X1200 and on a Sun Ray thin client. Not from KDE applications (although we have KDE 4.3.0 packages for OpenSolaris now) but from qtconfig — possibly the first Qt app you will want to run in OpenSolaris to set up some of the fonts correctly. Before running this version of qtconfig, I removed ~/.config — the whole directory tree — so I would get the default settings. There are screenies of the same 300×100 section of the application on four setups: local display or Sun Ray thin client, and system fontconfig or one built from our own packages. I switched my set of package builds to use the system’s fontconfig a while back, but the specfile for fontconfig (useful if you care about Solaris10) is still there. Both are version 2.5.0; for freetype system is 2.3.7 and the specfiles build 2.3.6.

screenie-withoutSo you would expect very little difference between the two, possibly only a difference in the default fonts. You could use some kind of png diff tool to see the differences, but it’s not a whole heck of a lot.

A bigger change happens when you switch from a local display (even a lousy onboard X1200) to a Sun Ray thin client display. I know I’ve ragged on parts of Qt in the past and the way KDE deals with less-capable displays, so this time I’m not going anywhere near graphics views.

screenie-withoutWhat strikes me immediately is that the style has changed, from one display to another; it now looks a good deal more Morif like. Eww! So what is Qt looking at here to change style like that? (That’s a lazyweb question).

screenie-ray-withAnd switching fontconfigs doesn’t do much again. I’m actually curious if either of the fontconfigs does anti-aliasing right now.

One thing you can’t see in the screenie is the window titlebar. Whatever the default GNOME window manager is — metacity? — produces really ugly title bars on a Sun Ray, as it looks like the AA falls over, producing hard-to-read letters with white-ish strips between them. Those are screenies for another day.

A Link Potpourri

Monday, August 17th, 2009

[ This is a brain dump of a bunch of topics collected over the weekend; I also saw a performance of Purcell's Dido and Aeneas, so that's why it's a potpourri and not something more structured. Call me back when I've had more coffee, later in the week. ]

From a research perspective: wow! a verified microkernel. I left my formal verification stuff behind at the university (which reminds me I still have a desk to partly clean out and an HP9000 to trash), but the idea of verifying a Haskell program isn’t all that terrifying; getting the Haskell-C mapping and the machine model mapping right and validated is something to lose sleep over, though. Something to occupy a bunch of grad students for a long long time. So hats off to the UNSW for getting it done and also for writing a wonderfully concise and witty FAQ.

There’s a little bit on tax money going to waste, this time around a CMS for Birmingham; given the importance of the specification for l4v (above) one would think that the specs for a CMS would be somewhat hammered out by now — certainly as far as character encodings go. I’m not sure I agree with the middle of the article, though, where it goes (in hindsight): well, we could have just used WordPress, right? Much as I like WordPress (it runs the FSFE blogs, and although it isn’t entirely compatible with Konqueror 4.2.2, it does well enough) I don’t think it’s the solution to every CMS problem. There could well be additional hidden requirements that the article glosses over and that would have mandated a custom solution.

Still, it’s government money, and I do believe that a custom solution funded by government should be Free Software afterwards, as it represents an investment by society as a whole to improve its infrastructure.

BaptisteriumOn Free Software topics, I ran across Why Code For Free? on LinuxPlanet; I’m actually none too happy about that article. It has a lot of woolly thinking in it. It’s 2009, come on, couldn’t we at least get a characterization of the four freedoms that the GPL aims to protect that is both concise and gripping? Let’s not forget, rhetoric (the modern trend of invading, tracking, and trying to control personal use) aside, that freedom 0 is only very very rarely touched upon by any license [mental exercise: if software is delivered without warranty or claim of fitness for a particular purpose, can you add restrictions stating that it is unfit for some purpose or may not be used for some purpose?]. In retrospect, I suppose that the end of the introduction (non-coder, us lowly end users) should have tipped me off that this is hardly a piece to take seriously.

K-Logo mosaicDavid Jarvie is the KDE “date and time dude”. Give him a good long scarf and I’m sure he could figure in Dr. Who. My hat off to anyone who deals with timezones and calendar systems on a daily basis. While tooling around on the topic, I found some interesting definitions of the epoch (an arbitrary moment to start counting time from), a leap back and a more recent reintroduction of the leap back. This time related to standardization and arbitrary kludges in calendars (man -s 1 cal ; cal 9 1752). David, next Akademy you get more beer.

Lastly, I recently took a look at a reconstructed 4th century baptisterium, where I found the K-logo in the mosaic in the floor. So I think that expands the range of dates KOrganizer — and KDateTime — should support easily by a great deal. After all, St. Augustine had appointments too.