A Brief Moment of Magic
Now that I'm settling in here in Cardiff, it's time to look back at the very busy past year or so.
Back in August 2006 Familiar 0.8.4 was released. I had been working effectively full time towards that release for a couple of months (apart from RoboCup induced interruptions). It was a fairly successful maintenance release which added support for several new hardware platforms. I'm well aware of a number of issues with 0.8.4 but it's basically as good as an OE-using niche-distro gets. Sure, you can upgrade stuff here and there, fix the one or the other bug, but at the same time equally many pending upgrades and bugs pop up at the other end of the tree.
Note that I was one of the most enthusiastic proponents of OE in a discussion earlier in 2006 but handling most of the builds for the 0.8.4 release changed my perspective quite a bit and made it perfectly clear to me that for significant improvements Famliar would need something different.
The post-0.8.4 period also marked the end of the first year of my two year project at university. There, it was similarly clear that a change in direction was needed (never underestimate a robotics problem...) and that it would require significant efforts to turn the (then vague) plan into reality. I basically put all non-university activities on hold as a result.
I was involved in some of the planning for Familiar 0.9 though and I do indeed have a fairly precise idea of how I would like to see it implemented (from scratch by the way). Those plans, however, rely on infrastructure bits which as of today haven't fallen into place yet. The distro-engineering parts as such could be done fairly quickly - I do have a working (significantly improved) new base system which took 3 evening sessions to put together. From there it's probably just a matter of a week all the way up to X (including window manager, etc.). Oh, and we'd get virtually any piece of non-handheld-specific software packaged for free.
Why haven't those plans taken off yet? Honestly, I don't know. It's probably a combination of a lack of time and an after-you-after-you problem among the involved developers. Certain other events of this past year have destroyed a bunch of trust relationships and made communication difficult.
At the same time in a different universe... We made excellent progress with the two year project at university. The project schedule was ambitious, but apart from a few minor issues we successfully reached our goal and presented our results in mid-July. The project report is now also finished and the only thing left for me to do for my degree (Diplom) is writing my thesis. I've even talked to a potential supervisor already and we've agreed on a (rough) topic. I just love it when a plan comes together.
At the same time in yet another universe... I decided to spend two semesters at a university in a foreign country through the Erasmus programme. That also worked out just fine in the end and I'm now studying Computer Science with Distributed and Mobile Systems at Cardiff University. So far, lectures have been interesting and nicely complement stuff I've already done at my home university in Bremen.
So, what about Familiar? I've had a few days off during Freshers' week (I'm taking 3rd year modules) and used a tiny fraction of that time to catch up on what's happened in the Linux-on-handhelds realm during the past 6 months. And, yeah, I still believe there's a need for a distro like Familiar - with a strong focus on end users, secure, reliable software and working upgrade paths. This is especially true since projects that set out to replace Familiar simply don't appear to deliver. Quite frankly, I hate to see so many users left out in the cold. Realistically, however, my schedule here isn't much less busy than back in Germany. And I also have to prepare stuff for my thesis.
Long story short, I'm going to continue concentrating on my studies and no longer consider Familiar a project I'm actively involved with. I wish the remaining Familiar developers and competing projects all the best. Put out some great products for me to find when I check back after graduation!
New toys for the RoboCup community
I noticed today that the Four-Legged-League has been renamed to Standard Platform League and will be using a new humanoid robot at future competitions. There isn't a whole lot information available about the Aldebaran Nao but it definitely makes me wish I was starting with my 2 year project now (rather than being almost finished) so I could join the local team.
Why is a standard humanoid platform so exciting? If you've ever worked with robotics hardware and prototypes in particular, you'll know only too well that you rarely get to do the stuff you want to. There's always one hardware component or another that fails on you, not to speak of the usual pain of (systematically) incorrect sensor readings. A standard platform makes sure that everyone has the same starting point and (ideally) allows people to concentrate on algorithmic work rather than developing and fixing hardware.
I've recently been doing algorithm prototyping in GNU Octave. Although not fully compatible with Matlab, it usually interprets code written for Matlab correctly. Some functionality (specialized functions) is missing but usually slightly different but equally capable replacements are available.
I must say I'm impressed with how quickly you can develop mathematical algorithms in Matlab/Octave. Basically, you're all done at about the same time you'd start debugging your matrix library in any other language. It's definitely an approach people in computer science in general and robotics in particular should use more often.
Octave uses gnuplot for plotting but hides the gory gnuplot details from you which is really pleasant. On the other hand, if you're used to computer algebra systems such as Maple or GNU Maxima it feels a bit odd to plot a set of points rather than a (symbolic description) of a function. Considering the internal representation of a function in Matlab/Octave it does however make sense the way it's implemented.
Now on to the next algorithm on the list of algorithms to evaluate...
I don't know how many people read this or how many care, but I'm in fact very much alive. I'm in the process of finishing off the second last assigment for this semester (apart from a to-be-written report for my 2 year project and the usual exams). The weird thing is it's actually the last regular semester for me, afterwards I'll just have to write my thesis.
What else have I been up to? I've accepted a job at the robotics lab for the next couple of months, where I'll be doing some interesting probabilistic robotics and vision stuff, apart from (real) embedded development. Real as in not just another PC crammed into a cubic inch which is a more adequate description for most consumer devices that people like to label embedded.
Speaking of which... I stopped reading mail on my personal account (the one that receives mail from mailing lists and anything open source related) months ago. I haven't decided whether to get back into the loop yet. Given the fact that my schedule for the next months won't leave much spare time it's at least not going to happen very soon.
Of course there's also a good side to this break, in fall it will hopefully be clear whether a bunch of other projects will be able to deliver what they promise or not. Once that's out of the way it will be a lot easier to evaluate the purposefulness of my involvement in Familiar and related projects.
PS: All courses and the final presentation of our 2 year project went well. So, yeah, life is good :)
I noticed this while including stuff by line numbers (using lstinputlisting from the excellent listings package) in a LaTeX document. Should I be worried now?
$ wc -l kernel/bs2_syscalls2.c 666 kernel/bs2_syscalls2.c
Update: After a cleanup the code is now a bit shorter.
This morning, my spontaneous response to a guy complaining about the first rainy day after weeks of sunshine and temperatures >25C was: "The day will come when you'll be very happy about every single raindrop."
A true but scary thought.
Keep up with the latest Advogato features by reading the Advogato status blog.