LWN.net Logo

A linux.conf.au wrapup

[LCA] linux.conf.au might appear, at first glance, to be an event condemned to amateurish disorganization. This conference moves to a different city every year, where it is organized by a fresh crowd of volunteers with little or no previous experience in putting together this sort of event. Under the guidance of Linux Australia, a working formula appears to have been found. By bringing in previous years' organizers to give advice and oversight to the current event's team, linux.conf.au manages to benefit from its past experience while simultaneously giving each set of organizers an opportunity to experiment and bring in new ideas. The result is, arguably, the best set of Linux conferences offered anywhere on the planet.

linux.conf.au 2005 was no exception. A few weblog entries hint at a bit of behind-the-scenes turbulence, but, to an attendee (or a speaker), this conference was flawlessly organized. The facility worked well, the talks were (mostly) great, the wireless network was ubiquitous and highly [Steven Hanley] reliable, and, yes, the coffee was good. The technical content was solid, but the event was also filled with a uniquely Australian sense of humor and fun. This year's organizers, led by Steven Hanley (picture at right) did an outstanding job.

Some of the talks have been covered in other LWN articles. Here are some quick notes on a few other talks that your editor was able to attend.

The GNOME miniconf covered many themes, but seemed to be dominated by two in particular: marketing the project and future development directions. The GNOME developers look, with a certain degree of envy, at the amount of publicity that Firefox has received, and wonder how they can get some of it for themselves. Part of the problem, as they see it, is that GNOME is not a nice, simple download like Firefox; it's more like a big, sprawling mess. The GNOME live CD project could help in this regard; it got some attention at LinuxWorld, but it needs some work and nobody has taken it on.

The other issue on the GNOME developers' minds is the GNOME 3.0 project. A 3.0 release gives the project the opportunity to break API compatibility, something it has carefully avoided doing across 2.x. The only problem is that the project does not really seem to have any idea of what it wants to accomplish in 3.0. The developers had a clear vision of usability which (whether you like their approach or not) carried them through a successful set of 2.x releases. An upgraded vision for 3.0 does not yet exist.

[Jeff Waugh] Perhaps the most interesting idea came from Jeff Waugh. There is much potential for network-enabled collaborative technologies - especially if you resist the temptation to call them "groupware." Some cool ideas are likely to see implementations in the next few months. The massive nature of OpenOffice.org makes it a difficult platform for this sort of experimentation, however, so much of the interesting work is happening with tools like AbiWord and gnumeric. We may soon see a time when OpenOffice.org, while remaining good at what it does, has been surpassed by its competitors, which make better platforms for playing with new ideas.

Andrew Tridgell's keynote covered more than the simple cloning of BitKeeper; the bulk of it related, instead, to the increasing use of advanced software development techniques in the free software community. The community is now at the forefront in many areas.

One example is the increased use of static analysis tools. For years, lint was the state of the art; now the gcc suite itself incorporates a wide variety of static checks beyond the standard warnings. Tools like "sparse" have helped the kernel developers to find many problems before users are bitten by them. The most notable thing, though, is that the development projects are actually using these tools. Runtime analysis has also come a long way; Tridge singled out valgrind as being one of the most important advances in a long time.

Automatic code generation is coming into its own; something like half of the Samba 4 code is created in this way. The trouble here is that it is difficult to create general-purpose code generation tools which produce what various projects really need. Samba ended up creating its own IDL compiler to generate much of its protocol code, and other projects may well end up doing the same. The effort paid off quickly: the resulting code is more robust, more correct, easier to instrument and debug, and easier to change.

Some time went into the "asynchronous server" problem: how does one write a server which deals with asynchronous requests from the outside world? None of the alternatives appeal: threads are evil, processes are ugly, and state machines "send you mad." For Samba 4, all of these techniques have been combined in a user-configurable way. Embedded users can collapse the whole system into a single process, while a multi-process, multi-thread configuration can be used on monster servers. The Samba hackers have managed to reduce the single user connection overhead to less than 20KB, a massive improvement from previous versions. State machines have been tamed with "composite functions," which take much of the hard-to-debug indirection out of the code.

Memory management is another area which has seen improvements; Tridge was especially pleased with the version of talloc() used in Samba 4. This memory allocation library allows dynamic memory allocations to be organized in a hierarchy; an entire subtree of the hierarchy can be freed (calling optional destructors) with one call. This scheme gives most of the advantages of a fully garbage-collected language without the associated overhead.

Finally, Tridge noted that projects are actually starting to use test coverage tools. The combination of static analysis, runtime analysis, and test coverage can be very effective in completely eliminating certain classes of errors (such as leaking data by writing uninitialized data to the net).

Keith Packard and Carl Worth talked about work in desktop graphics. Keith's discussion of the reworking of the X Window system has been covered on LWN before. Carl gave a good overview of the Cairo vector graphics library. Cairo, he notes, is being used in upcoming or test versions of dia, evince, gtk+, mozilla, scribus, and more. Most of these projects are still not using Cairo by default; it's too slow, still, for comfortable use. Cairo is headed toward a 1.0 release with a final API shakeup and the beginnings of the necessary performance work.

What audiences will likely remember from these talks, however, are the demonstrations. This year's eye candy is the rubbery window which distorts realistically when dragged across the screen. These windows can also be spun around and literally thrown three virtual desktops away. Anybody who has seen one of Keith's talks can imagine how much fun he was having flinging windows around. The funnest Cairo demonstration may well be roadster, a free map generation utility.

Elizabeth Garbee discussed her experiences in avoiding homework by designing tuxracer courses; she then proceeded to create a brutal new course in front of the audience. Not everybody can get away with creating a talk around playing games in front of a crowd. Her talk complemented an issue raised by Rusty Russell: he has apparently lost much time recently playing The Battle For Wesnoth, and was well impressed by the accompanying artwork and music. To continue to progress, our community will have to do better at attracting other sorts of contributors: artists, musicians, and so on. That means we will need to think about how we can create good tools for these contributors, and help them gently when they run into trouble.

Other stuff. Two other themes resonated through the conference. One is that everybody is concerned about the BitKeeper episode, and amused to learn how little was involved in the infamous "reverse engineering" of its network protocol. The other is that a large number of attendees were running Ubuntu. Even when the Canonical employees are factored out (the company seems to have moved its offices to Canberra for the conference), Ubuntu has clearly claimed a significant part of the distribution "market" among Linux developers.

Your editor gave two talks at the conference; the slides are available online for both: A Linux Kernel Roadmap and Kobjects, ksets, and ktypes. The kernel talk was covered in ComputerWorld, and, subsequently, The Inquirer. It is interesting to compare what was reported against the original slides.

linux.conf.au 2006 will be held in Dunedin, New Zealand, starting January 23, 2006. Your editor hopes to be there.


(Log in to post comments)

A linux.conf.au wrapup

Posted Apr 28, 2005 23:22 UTC (Thu) by njhurst (guest, #6022) [Link]

What are composite functions? Google talks about composition of functions, but I presume that what Tridge is talking about is something different? Perhaps they would make a good article for lwn.

A linux.conf.au wrapup

Posted May 1, 2005 8:53 UTC (Sun) by ab (subscriber, #788) [Link]

Composite functions is a way in Samba 4 to basically construct your application's logic out of lego blocks: i.e., instead of doing everything by yourself, you just call a composite function for logon, then for reading file, then you process that file. Behind the scenes, logon composite function does a number of calls (all asynchronosly), establish SMB session, authenticates, etc. The read file composite function actually connects to the tree, opens a file, reads its content into a memory.

All this is seen as a few-liner but internally it is quite a big execution list for SMB and user is actually free of taking care of the steps she doesn't really implementing.

Composite functions are built on top of Samba4's asynchronous infrastructure, hierarchical allocation (talloc) and what is usually known as continuations -- async functions which are called when particular stage of processing is done so that state machine describing a composite function logic is making a change in its state.

A linux.conf.au wrapup

Posted May 10, 2005 15:00 UTC (Tue) by Jyhem (guest, #29388) [Link]

The trick behind the quality graphics and soundtracks in Battle for Wesnoth is the following one:
Make a multi-platform software which runs natively on Macs as well as Linux and Windows. BoW managed this with the SDL library.
Linux will get you the most coders, Windows will get you beta testers, but the graphics designers and soundtrack creators seem to be mostly from the Mac crowd.

At least, that's my feeling about it.

Copyright © 2005, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds