Bobulate


Archive for the ‘Bla Bla’ Category

Paneer (say cheese)

Tuesday, February 16th, 2010

The kids — now aged five and nearly seven — have some interest in cooking. After all, they see one parent or the other making dinner daily, usually with some narration. Once they’re old enough to hold a paring knife and not cut off their little fingers, I’ve been herding them both into the kitchen for odd jobs like chopping mushrooms, zucchini, bell peppers. Recently I’ve started trying to explain principles to them as well — like what can you do with an egg. Fried or scrambled is familiar to them, and I’ve started explaining why a boiled egg can be soft- or hard-boiled (and playing with the kitchen timer to show them how). Recently we moved a step further with separating an egg and making meringue from the whites and custard from the yolks. Kitchen chemistry at its best.

This weekend the “kid’s science corner” in the paper (with Dr. Zeepaard) had an item on “gummy cheese”, which they made with milk and vinegar — warning that it’s inedible. That prompted me to go looking for edible recipes, which are of course paneer and its cousins ricotta and the like. Some recipes for paneer call for vinegar — it’s a little random out there on the web. In any case I wonder why the paper added that warning.

We went for a lemon-juice based paneer, bringing three-quarters of a litre of milk to a boil (in retrospect I should have kept it cooler, around seventy degrees) and then adding half teaspoons of lemon juice until the milk curdled. This was quite remarkable to watch, as the transition from milk to curds and whey went quickly. One minute it looks like milk, the next it’s lumpy and watery — then add one more half teaspoon of lemon for good measure, cut the heat, stir, strain, press and serve. The curds need to be strained out of the mixture. I discarded the whey. I suppose I could have made fake Rivella as well or boiled some rice with it, for full use of the ingredients. The whole process yielded a lump of white gummy stuff — very little lemon taste — about the size of my fist. The kids didn’t like it much, because they’re more into aged goat cheese, but as a first excursion into this kind of chemistry I think it was a success. With soy sauce and coriander leaves it was great.

There must be a movement somewhere striving for awareness of ingredients and participation in basic foodmaking — any tips? (Of course, such a movement would be very much tied to Europe; when I lived in Yemen my mom made this kind of stuff regularly if only because you couldn’t get cheese otherwise so then there’s no real point to emphasizing it)

Valentine’s day

Friday, February 12th, 2010

I love Free Software!Valentine’s day is approaching, and if you love Free Software, show some of that love. Send a bug report (a well-written one). Add to API documentation (someone was complaining about that on the dot). Update a wiki page.

The Free Software Foundation Europe encourages you to show your appreciation for your (fellow) friendly neighbourhood Free Software contributor. Hugs show up with distressing frequency in the KDE world, as does beer. I’ve gone out of my way to thank folks who have written useful software for me, and I’d like to recommend you to do it too.

A long time ago, in elementary school — and a primary purpose of elementary school is socialization — the words we used were “warm fuzzies” and “wet blankets” to describe different ways of interacting with people. Wet blankets tend to hang around a long time; so spread some love instead.

(Maybe this is just cover for an upcoming “ten things in KDE4 use that I can’t decide whether they’re bugs or just design decisions that I don’t like” blog post, who knows?) (Also, in spite of Tom Albers, I’m not going to be at the Dutch KDE launch event — other commitments)

Bits of Privacy

Monday, February 8th, 2010

The organization “Bits of Freedom is a Dutch NGO Privacy watchdog. It has been re-vivified in the past years. It hands out semi-regular Big Brother Awards (say, isn’t the estate of George Orwell going to wake up at some point?) for the worst offenses against privacy in the Netherlands. Worth reading if your Dutch comprehension is ok. BoF has garnered some mainstream media attention as well, which offers hope that privacy isn’t completely a lost cause in this country. [Current schemes of nationwide chipcard travel and road-pricing deny that hope] There’s also a “Winston Prize” for someone fighting for privacy, which went to the Euro-MP Sophie in’t Veld. It took me a minute to figure out the “Winston” name, but since I’d read 1984 (it says so right there in my book list) the light dawned eventually.

Anyway, cheers to BoF, and keep watching over your own privacy.

O noes, book list meme

Monday, February 8th, 2010

I was reading some hip and literary Swedish blogs (no, actually I found this stuff on some tech blog, but swimming down the attribution links brought me these far more acceptable references) which talk about a list of books one might be expected to have read. The list has apparently been circulating for some time, witness the lonely librarian, and continues to be passed around, for instance on the symbian diaries (I can’t find any Symbian content there, though). It might be that the list stems from this story (from 2007?), but I’ve seen the Guardian reported as the original source as well.

The list itself (in the form in which it’s being passed around right now) is a little odd, since there’s some strange entries: the Bible (which version? does it matter? with or without the apocryphal books?), the complete works of Shakespeare (zounds, that’s a lot, but it also duplicates Hamlet much later in the list). The list mixes classics with much more recent work and includes some real cruft (IMO) as well. Anyway, I thought that publishing the list would be far too space-consuming and not interesting on a technical blog, so I wrote a python program to produce HTML and plain text renderings of the list, as well as a compact text representation using the initials of authors and titles and a base-3 representation.

You can run the program with something like python booklist.py text to get plain text output; alternate modes are html, code which outputs a kind of geek code, and short which produces a decimal integer. The program comes with an unread database, so it will print an all-unread text representation, or the integer 0. The integer corresponding to my own reading of the list is 472899411102988434671899921134218056756239761136, and you can add that as a second parameter to get the output showing what I’ve read; in code form that’s:


*PaP-JA *TLotR-JT *HPs-JR *TB-: *WH-EB *NEF-GO *GE-CD *C22-JH
*CWoS-S *TH-JT *CitR-JS *M-GE *GWTW-MM *TGG-FSF -WaP-LT *THHGttG-DA
-CaP-FD *GoW-JS *AiW-LC *TWitW-KG *CoN-CL *E-JA *P-JA *TL,TWaTW-CL
*WtP-AM *AF-GO -OHYoS-GGM *AoGG-LM *THT-MA *LotF-WG -LoP-YM *D-FH
*SaS-JA -ASB-VS. *ATOTC-CD *BNW-AH *OMaM-JS *TSH-DT *MD-HM *OT-CD
*D-BS *TSG-FHB -U-JJ *ACC-CD -MB-GF *CW-EW *AoSH-SACD *TLP-ADS-E
-TWF-IB *WD-RA *TTM-AD *H-WS *CatCF-RD

To generate your own book statuses, you’re going to have to edit the program and insert a status (READ or WANT) into some of the tuples that form the book database. Then run the program with only one argument for the desired output format. Once you have the code or short output, you can post it and keep the booklist meme alive (albeit in a more nerdy form).

The program itself can be downloaded as source from here, and is under the GPLv2 or later (bear that in mind if you send patches for an interactive of Qt version, and please don’t berate my python style).

There’s clearly features missing from the program: there is no Qt interface (with PyQt bindings) and no interactive mode, which would make it much easier to generate your own booklist output. Abstracting the purpose of the list would also be nice, and I can see a Meme-Plasmoid (a memeoid?) somewhere in the future where you get the checklist of the day and can enter your results for that checklist, to share across the social desktop. O noes!

Scratch that

Thursday, February 4th, 2010

I’m still sick. I still can’t hear properly, nor breathe, so as FOSDEM draws nearer (where I would man the FSFE booth, attend a few talks, and promulgate a business-friendly selection of Free Software licensing topics) I’m forced to re-evaluate whether I can go there at all: no, I am not going to FOSDEM. I’ll miss Paul’s bits on PIMping the KDE desktop, which is a particular shame. I’ll miss Michael Meeks, with whom I was looking forward to chatting about copyright assignment. I’ll miss Vincent Untz and the Dutch GUADEC team. I’ll miss Claudia and the KDE gang. I’ll miss the OSOL guys. I’ll miss the cute lovable blue Postgres elephant. And the weird devices at the OpenBSD stand. I could go on.

Instead, I’m going to stay home, eat lots of oranges, sleep a lot and hope for a better future. One where I can actually hold a conversation without phlegming anyone to death.

On a totally unrelated note, I’m reading “de telduivel”, a book on mathematics for kids by H.M. Enzensberger (English title “the number devil”, but the book is originally in German). It’s a fun book, and this time I’m actually reading it to the kids. Their minds do wander when we get to topics like fib(n)^2+fib(n+1)^2=fib(2n+1), but it’s inspiring for me as well. It’s been a long time since I sat down to try to do a little proof on paper, and since I don’t have to talk or breathe very hard to do math, it’s fun!

FOSDEM schedule (my own)

Monday, February 1st, 2010

Going to FOSDEMLike many folks, I’ll be going to FOSDEM this weekend, in Brussels. Thomas Koch posts his whole weekend schedule — gosh, that’s ambitious. I know I never get around to attending one tenth of the talks I might intend to see, simply because there’s too many people to talk to, things to demonstrate, chats to have and random other interesting things to do. Given the state of my health, I think I’m going to remove “excessive amounts of beer” from my list-of-interesting-things, but I’m still looking forward to Brussels Cheese during the social hours. Isabel Drost is giving a talk on Hadoop — that’s one I might actually make a point of attending, because otherwise I’m never going to understand any of her blog posts. I guess like I’m tedious about licensing, she’s tedious about map-reduce. We’ll see.

For most of the weekend you will find me at the FSFE stand near the front entrance. I hope it’s less freezing cold than down the other end of the hall where the KDE stand is, traditionally. I’ll be available for legal and licensing talk, mostly. Governance? Patents? All ears. For technical stuff I will need to escape from the watchful eye of my handler, Hugo Roy, and covertly discuss bits and bytes.

*sniffle* (2)

Thursday, January 28th, 2010

Another week gone by an no end to my cold in sight. This is getting to be really annoying, as it both fragments my work day and makes me unreliable in responding to just about anything — so various jobs (both real and hobby) have been falling behind.

The hobby bits are easier to write about, so here goes: I wanted to produce a screenie of Krita on OpenSolaris, but it turns out that it hand not been built in my first packaging (neither had KSpread, for that matter). Turns out they require Eigen. Eigen is a C++ template-based linear algebra library. So I installed the Eigen package (also produced by the KDE4-OpenSolaris project: make no mistake, this is a small group with a big software stack to take care of). That’s where the fun starts — I don’t think anything else makes serious use of Eigen. Maybe some stuff in KDEgames or KDeedu, but obviously because I hadn’t had Eigen installed previously, they (if they are there) have been silently ignored.

So, Eigen. Since the KDE4-OpenSolaris project aims to use the Sun Studio compiler (so that the resulting KDE4 could be included in the base system and so that i t can re-use any other C++ infrastructure in the system), we need to make sure that Eigen works with the compiler. In the case of a giant and complicated template library, that can be a big effort. And I’m immediately stymied by the Matrix class, where the compiler complains about multiple definitions of every type in the Eigen generic interface (Base, Scalar, and another half-dozen). I’ve not even managed to strip the examples down to an example that demonstrates the problem, which makes debugging — or asking the compiler gurus for help — difficult.

Suffice to say that Krita screenshots are not to be expected anytime soon.

On the upside, the release of KDE SC 4.4 RC2 means that the other bits are nearing stability, which means we can re-focus on stability and performance on OpenSolaris for a bit. Since Pavel has set up various continuous builds on our crunchy build box (courtesy of Sun Netherlands) so tracking in future should work a little better — I hope we have fewer separate patches to maintain in future as more stuff gets upstreamed.

On freeing a project

Saturday, January 23rd, 2010

I saw over on LWN.net (a very valuable resource for technology articles, well worth your $5), that a RAW picture editor called RawTherapee had been re-licensed from Freeware (gratis, but proprietary) to Free Software, under the GPLv3. The application is something I won’t use myself, and I can’t even manage the comparison to DigiKam (which I don’t use either). Technologically it looks quite cool, from the cmake-based build (yes, having a build system that supports cross-platform development effectively can be a wonderful thing) to the (comprehensive and multi-lingual) ODT manuals. I miss the nice KDE reporting of missing dependencies summarized in a list at the end, though. Something to contribute, over there.

The author, Gábor Horváth, states some interesting reasons for freeing the whole thing; I personally think the “family” argument is the strongest one, and it’s important to spend time with your (small) kids. Of course, at 10 months you can still code with the baby on your tummy. The other motivations are largely a matter of growing the community of developers and contributors in order to get better coverage of all the aspects of development (GUI, documentation, algorithms, translations) and smoother development by not depending on a single individual. All good reasons, to be sure. Whether these are good motivations to choose GPLv3, I don’t know (over some other copyleft license that encourages community building).

I’m going to admit a very non-charitable reason for looking more closely at RawTherapee: I was intending to bitch and moan about the state of the source code and the licensing and then point out how it should be done, by gorm. Instead, I can point to RawTherapee (as of SVN revision 31) as an example of a Free Software project done (pretty) well:

  • (good) Clear license choice; although the license is in a file called “copying” instead of the canonical “COPYING”, it’s the complete text of the GPLv3.
  • (good) Every file has a complete copyright header, including sufficient license text and an identifiable copyright holder. As the project grows, it will be interesting to see if it manages to keep a good grip on its contributors — that is, if everyone who adds a copyrightable contribution to the code actually adds a meaningful copyright holder line to the file headers. This would be, roughly, clause 5a of the GPLv3.
  • (bad) The distribution from SVN includes a few pre-compiled libraries (jpeg, lcms, png, tiff, z) for windows and accompanying header files. Of that lot, jpeg doesn’t mention its license terms in the file header (but refers to a README that has been lost). I hunted down the relevant source distribution, and the README contains a license that stipulates that README must be included with the distribution if any source is distributed. Right, minor point, but something to clean up in a next release — although I’d like to think that it also illustrates that the license in the jpeglib header should be clearer. lcms is MIT licensed, the png license doesn’t seem to allow binary distribution at all — the permissions it gives are for source. On the other hand, the use of the code as a component in a product is encouraged — that suggests binary use is ok, but it’s not exactly explicit. Tiff is MIT again (when I say “MIT” I mean “Simple permissive 1-clause, possibly with a restriction on endorsement”) and libz is also permissive. So just one minor blot.

Anyway, a tip of the hat to Gábor for doing it right (and doing the right thing) and I wish him lots of success with his project.

*sniffle*

Saturday, January 23rd, 2010

Last week I was in Berlin, and besides getting some work done, picking up some espresso beans and meeting old friends, I also received a wonderful German cold bug. From my boss Karsten, presumably. We all know that parents of small children are plague-bearers, but his kids are apparently in a different pathogen group than mine — as a result of which I’ve been pretty much laid-up all week with sniffles, headaches and the like. I can focus for about 2 hours at a time, after which it’s back to bed. I don’t recall colds hanging around this tenaciously or virulently before; the only good thing I can say about it is that 2 hours is enough time to write blog entries on random legal and licensing topics (and also technical KDE things, but that’s coming up).

Overcompensating

Friday, January 22nd, 2010

Overcompensating is a webcomic (that one is safe for work) which I’ve been reading for years. Patently-O is a blog about patents which I read occasionally — I must admit that my interest in comics pre-dates my interest in patents. It (Patently-O) has a link up to a guide to patent damages. I’m not going to recommend to people on PlanetKDE to read it in particular (PlanetFSFE, maybe), but a few things struck me as I paged through it: one, that it’s remarkably readable, for a document produced by the legal profession; two, that it’s a practices guide that is quite concrete in what needs to be done and how things are handled; three, that it doesn’t talk about non-commercial infringement at all, as far as I can tell.

Since patents on software implementations of algorithms and the like continue to be granted in the US — witness HP’s patent on choosing a number base for a given processor or Google’s patent on map-reduce (apply a function to items in a list, then aggregate) — understanding the potential end-results (damages when infringing) is a big deal.