In Switserland today. It’s great to be in the mountains again, it puts a spring in my step — although the travel also puts a crimp in my email responsiveness. I’m in Winterthur for OpenExpo, where I’ll be showing off all three of my hats. Stop by for a promotional talk about the Open Web conference from the NLUUG, or about KDE, or we can sit down and discuss licensing issues in community-led and business-led Free Software projects. Your choice. It’s gorgeous weather — or it was today during the day, lovely to see the hills and countryside — some come on in before you get a tan.
[ Maybe I really mean Talk Like a Pirate Day ] This year’s Software Freedom Day saw me weeding the garden, pulling up spent corn stalks and cursing the stinging nettles. So I hope they had fun in Barcelona and Amsterdam; I see Jos was a speaker at the latter, so let’s assume (KDE bias here) that it was so. There are some pictures from Irina linked, looks like a nice broad selection of Free Software people from the Netherlands. Checking out the interactive map, I see that there were even four SFD events in the Netherlands. Whodathunk. Better put it in my calendar for next year — and deal with the weeds in the garden earlier.
Fell quiet for a bit there. After ferreting out some anti-blogging quotes written fourty years or more ago, I headed off to the UK. Lincoln, which does have a very nice cheese shop as well as a cathedral. There was ale and innuendo — and a blind taste test to see if Stella Artois is actually different from Beck’s — as well as some planning of interesting Free Software things. I have another research paper to wrestle with now, for one thing. Returned home to sad news in the KDE community. I will remember Matthew as the guy who inexplicably got me not one, but two horse whips — which I take to most conferences ever since.
I didn’t take the whips to OSiMWorld, though, because that didn’t seem like the right kind of event. More suits and ties, less silliness. Although Lefty tried, with his pub quiz. Last year, the Roaming GNOMEs won, this year it was the “Intelligents” — big Intel / Atom presence at the show. The European Legal Network team came in third, which is reasonable. The available knowledge on the team was dramatically skewed: sports were clearly our worst category.
For the OSiMWorld conference itself, I must say it was fun to meet some more Trolls and troll-alikes, chat with a bunch of people from GCDS, like the Igalia guys. Saw some very nice Linpus desktops. What impressed me most was the attention to detail — the visual feedback on user actions, the clear organization of the desktop. Something that comes from understanding the target audience and the limitations of the device. Similar efforts at polishing the user experience are the hundred paper cuts. Chatted a bit with the Canonical folk about that. But the attention to detail and tailoring for more specific uses is something that takes a way a bit from the general purpose computing model, and moves towards appliances. When I was shown a nice Atom-based MID (mobile Internet device), my response was “ooh! cluster of x86 build machines!” which is very much not their purpose. Pointing to Lefty again, he summarizes arguments against the Desktop, some of which were presented at the conference itself.
One of the things that surprised me at the conference was the number of people who “get it” from a Free Software and business perspective. Free Software asks you to play by the rules (that’s a link to the GPLv3, but of course there are other rules you can agree on: MIT/X11 rules, or APLv2, or others). Many of the people I spoke with at the conference understood the importance of licensing and of working with — or at least not against — the communities that produce the Free Software they use. It struck me that there is an increase in what I’ll call “business-led Free Software” alongside “community-led”, and that the management styles and processes of the two are quite different. Heck, talking about management in a community context always makes me a little queasy, call it leadership instead.
I had a nice chat with Peter Vescuso of Black Duck about license compliance and processes. We seem to have a common desire for understanding of licenses and license interactions and working with the implications of license terms for projects and businesses. For Free Software projects — community-led — the desire is for long term safety and stability and protection of the principles that the members of the community around a project want. Pragmatism is necessary to understand how people in multiple fields of endeavour interact. Idealism is needed to start the ball rolling.
It’s planned to be a busy week or three for me with conferences and articles, so somewhere in between I hope to write about some of the other interesting technical and legal stuff that is happening.
Reading through John O’Mill’s Puure Piffel, I found
Homer never wrote a line,
nor Buddha, Christ or Constantine,
but you – poor pen and paper clown,
you cannot wait to write it down.
O’Mill – pseudonym for Jan van der Meulen – wrote nonsense rhymes; to him the EBN owes the word “omphaloskepsis”. There’s no date in the book, but it seems that it was published in 1965, and this rhyme remains the same.
Woke up from a very convincing dream featuring a book – well worn and from the style printed mid-’70s – describing revolutionary Lego CAD / CAM techniques. Woke up with back pain, unsure if that’s related, so it was a matter of packing the kids off, painkillers, and back to bed until they started working. Reading the diary of Ludwig Wittgenstein, found a quote applicable to blogorrhea (loosely translated into English from the Dutch version I have):
Some people like to hear themselves talk. Is it possible I like to hear myself write?
A Chinese colleague of mine — Ling, since moved to Boston I think — taught me to make won tons. It’s the kind of meal that is therapeutic in its preparation, because you can spend about an hour folding these little dumplings. Mira, who is six, just loves helping in the kitchen, so she climbs up on a stool and helps with all the steps of preparation except for the chopping-things-with-a-big knife.
Random idea: Since people keep suggesting KRecipes as an outlet for these cookery entries — and folk should be pestering Ariya about it as well — perhaps someone would like to announce that they will maintain a KDE-contributors-cookbook? Collect recipes from as many KDE contributors as you can, covert to KRecipes (it doesn’t run at all on my Kubuntu box) and publish somewhere.
Faux won tons, Dutch style: makes 75 dumplings, which will be enough for a family of four if you add some more steamed veggies. Get 75 won ton skins — these are sold in packs of about 50 at eastern stores all over the Netherlands, not sure how to get them elsewhere. For the filling, two chicken breasts (about 400g), four large carrots, three cloves of garlic, a tsp. of laos (is that galanga?) and a tbsp. of soy sauce (the thin salty kind; I’m partial to Pearl River Bridge brand). Chop chicken very fine, grate carrots, dice garlic. Mix together and knead until carrots and garlic are eveny spread out. Drop tsp. sized balls on to middle of won ton skin, then fold: wet two adjacent edges, fold corner across, seal edges; if you leave it like that, you can pan fry them; otherwise fold the other two corners to the middle corner again and make sure it’s well sealed. Won tons can be boiled – about five minutes – and served with soy sauce and koriander dip.
Yes, it’s probably offensive to 1 billion food purists, but I like it this way. Amiel said “eww, that looks funny” and Mira only eats the skins, and still it’s a good recipe.
The Sun Ray thin client is a nifty piece of hardware, especially when it’s painted with a KDE Oxygen logo. It’s a thin client with USB forwarding and sound and session management and smartcard support (but it does not support the FSFE’s Fellowship smartcard). You can put the roughly the same thing together with Free Software, starting with LTSP, but I’ve been a fan of this largely-hardware solution for years. Unfortunately, it has been a poor platform for KDE4 — I’ve blogged about this in the past.
There’s new Sun Ray server 5 coming up, and one of the features it has is Xrender (finally!). You need to enable it after installation and there are warnings about performance, but with a small deployment things should be just fine. I deployed it on my desk, with a single DTU with a single 1280×1024 monitor attached, running on an amd64 X2 with 6GB of RAM. Crunchy, but then again I was also building KDEtoys and KDEpim in parallel on it alongside a local GNOME session and a KDE 4.3.1 session on the Sun Ray.
Wait, 4.3.1? Wasn’t it just yesterday that I posted about the availability of KDE 4.3.0 on OpenSolaris? Yes, true. Bumping KDE up one minor revision did not take all that long, although I had to bump Akonadi to 1.2.0 in the process.
We use the gstreamer backend for Phonon on OpenSolaris, because gstreamer is installed anyway — or maybe it’s the Sun native audio backend? I don’t know and I don’t even know how to check. Suffice to say that whatever the default build picked out, sound works. Now, that might not be all that impressive at first thought, but that means that the thin client is receiving whatever audio output KDE is generating. I have not tried Amarok yet (that port needs a little more work still) on OpenSolaris, but that offers new realms of network-transparent desktop use.
The performance work done in Plasma over the past release cycle(s) has been impressive, and it just feels much snappier; Plasmoid handles show up like they should. This is a world of difference with my old laptop and KDE 4.1 which I was not-exactly-showing-off in London last year. Kudos to the Plasma team (and I’m truly looking forward to the results of Tokamak 3). The screenshot here is KDE 4.3.1 running on a Sun Ray, with whatever theme and decoration I ended up with while fiddling around (although Fluffy Bunny is listed in the “Get themes” widget, it doesn’t seem to work). There is a rendering issue with the text in systemsettings, where white-on-white isn’t all that useful, but on the whole it seems to work well enough graphically. A quick test using qgears gets 20fps on the Sun Ray, versus 30fps on the local display of the same machine (Radeon X1200).
There are some functional bugs, though. Many applications do not start up from the K menu, although they do start from the command line (and they do start up if I log in on a local display instead of the Sun Ray). Konqueror takes forever and a day to start or respond to keypresses — this is not production ready, but it is debug-ready, for anyone with a DTrace hammer. There’s a good chance, actually, that the issues are all related to threading problems deep within the C++ libraries. I know there are some newer patches available for it, and I think the library has been fully integrated into Solaris Nevada as of this week (presumably with those patches), which will make our own packaging of those C++ libraries superfluous. Hunting these issues down and integrating some feature work for OpenSolaris will be the KDE4-OpenSolaris team’s focus for the coming release cycle. It’s coming closer.
This week I’ve spent a few late nights working on the OpenSolaris packaging of KDE 4.3.0 — since 4.3.1 is out, it’s just about time, don’t you think? FreeBSD has the good stuff already.
New development repositories: we have been using Mercurial for a while for maintaining the specfile repositories that drive the packaging of KDE4 on OpenSolaris, which — like any DVCS — makes branching and merging and opening up development a breeze. That also means some unrestricted growth in the number of repositories and sometimes feature creep on individual repo’s, so we’ve stopped for a moment to consider what’s what. There are now five repositories, of which one is legacy, two deprecated for being too confused (but kept for a bit just in case someone is using them), and two repositories that are in current use.
The KDE 4.3.0 repository has specfiles for KDE 4.3.0 (this should not be a surprise) and the dependencies that we have built. Those include Qt 4.5.2, BOOST, Apache stdcxx and lots more. This repository is considered stable and should not change any more. The 4.3.1 repo is not stable, and is under construction.
Things that will go into the 4.3.1 repo are an update of poppler to 0.10.7 (current version) and of course updating KDE to 4.3.1; this also means adding the new KDEpim-runtime module to the set of packages. We don’t package it for 4.3.0 and that doesn’t seem to hurt KMail. We hope to improve collaboration with Belenix by stealing all of their updates to the dependency tree, while we’re at it.
[[ And there was a Qt security announcement on September 1st — that one is in both repositories and applies to the packages that are available as well. ]]
New IPS package depot: in the past three months or so we have accumulated a crufty set of packages on various IPS servers; these have been knocked down and a fresh set of IPS packages is available from the publisher http://pkg.bionicmutton.org:10000/ (also supports port 8080, by popular request).
These packages are the ones built from the 4.3.0 repository using Sun Studio Express on OpenSolaris 2009.6 and are supposed to “just work.” As usual, people with the initials MS will find out that they don’t — honestly Michael, what do you do to those poor install images.
Tools usage: the KDE4 packages are still not built using Source Juicer. This is easy enough to explain: because it’s a family of 122 packages which share settings and common files, it’s difficult to merge into Source Juicer effectively. We have tried, and SJ does drive us to do some simplification and a reduction in the number of files used for the build, but we are not there yet.
Instead, packages are built on a stock amd64 (an X2 4850e w/ 6GB RAM under my desk) OpenSolaris 2009.6 install, then tarballed using the tools from the IPS best practices wiki, archivepkgs.py in particular. These are copied to the actual server which then needs to be restarted every time we import new packages — wanting to avoid the restart is what led to our wild growth of IPS servers.
One tool I’m missing (lazyweb wishlist warning) is one that cleans up the on-disk pkg depot; I’d like to be able to strip out all but the most recent version of every package from a depot. I have an inkling of how this would work (determine what’s “latest”, flag all the files it uses; later walk the filesystem tree and remove all non-flagged files), but I don’t feel like going the destructive route myself right now.
There’s a problem in pkg(1) with large file uploads, so publishing the packages directly to the server is infeasible; that’s something that we need to fix with a nice workflow and one appointed person to kick the depot server when needed. This will happen once we have KDE 4.3.1 packages built and somewhat tested.
Stability: There are some known crashes; Dolphin has some threading issues and KMail crashes on exit, for instance, but the overall impression I get from running KDE 4.3.0 as my desktop on OSOL is pretty good. Even with an underpowered X1200 onboard video. With a proper video card (e.g. the GF9600 512MB on my laptop) things are much nicer.
Feedback: Please use the kde-discuss forum/mailing list or file bugs in the regular KDE bug tracking system and set the Operating System to Solaris in your report. We appreciate bug reports (if you can, check that they are Solaris-specific by comparing with, say, FreeBSD behaviour) and appreciate patches even more. Remember, the specfiles are open and everything can be built from source by following the instructions on the KDE TechBase page on OpenSolaris (and that’s a wiki, so if the instructions are not clear, you can help improve them!).
The Free Software Foundation Europe (FSFE) has got an infestation of interns. Under Matthias Kirschner’s lead, they should be blogging and denting away — as well as getting actual work done instead of exchanging witty banter on IM networks. Welcome to Hugo and Lena. If you look closely you can see the current chaotic status of the new FSFE office in Berlin with, as Lena puts it, wires all over the place and no comfy chairs. Maybe you need to be staff to have a comfy chair, eh.
I wrote recently about a little machine logbook I found in a disused storage cabinet in the old science building. The machine it refers to might be one produced by Floating Point Systems, Inc., since I found a processor manual (part #860-7259-003) in the same cabinet, and some of the instructions seem similar. The manual was published in 1979 (heck, I don’t think I had even seen a computer at the time) by FPS Inc. of Beaverton, Oregon. The manual starts out promising:
Historically, array transform processors have been largely integer-arithmetic devices, since the slower processing rate of floating-point arithmetic was undesirable when working with large arrays of data. However, integer methods have problems which make programming awkward due to the limited dynamic range of integer arithmetic. Array scaling and block floating-point techniques either allowed human and other errors to creep into the results or were costly and time consuming. Further, as processing became more sophisticated, even 16-bit integer data words were insufficiently precise for preserving the accuracy of simple 8-bit analog-to-digital converted input data. This is because the many multiplications and additions in typical cascaded array processing can cause the propagation of truncation errors.
You know, I think the exact same paragraph (well, ok, let’s increase the numbers from 16 to 64, for instance) could apply today. Paging forward, we find that the floating-point representation used in this machine is “..a true 10-bit binary exponent, which has more dynamic range than the standard 7-bit hexadecimal or 8-bit binary exponent. FPS then uses a 28-bit mantissa, plus three guard bits in the adder and a double mantissa at the multiplier output, …” Count ’em, a 38-bit floating point representation. Bear in mind that IEEE 754 was created in 1985, with a 32-bit format.
Moving on to the functional units of the processor, we find both a main memory (MD) of up to 64k words (each 38 bits) plus a faster memory (167ns cycle time) called the table memory (TM) of 512 words, each 38 bits. The idea is that you store constants in table memory and use an index into the table memory instead of direct mode. There’s two banks of accumulators, 32 in each bank, so one might speak of having 64 floating point registers. There’s some data path fiddly bits here, and anyone who has read Tanenbaum’s computer design books will understand the trade-off between bus width, control line count and ease of (micro-)programming. The adders and floating-point multiplier are pipelined, with two and three stages respectively.
The processor has DMA capability — not within its own memory, but to the memory of a host machine. In other words, it hooks up to the memory bus of some other processor, can copy blocks of data to the local memory, do computations, and then move them back. So it’s a co-processor.
And the whole thing fits in 16U of 19″ rack space and draws 1200W.
This goes to show that we (as in computer science and the computer industry) have come a long way since 1979. It also shows that there’s very little truly new stuff — stream processors in your graphics card are similar in many ways to this old beast. Also, in the best style of wikis everywhere, the manual ends up with a “help us improve this manual, send in comments on the following postage-paid form.” See, everything old is new again.