At FOSDEM 2009 (Free and Open Source Software Developers' European Meeting) in Brussels, there were a number of interesting talks about the state of power management in Linux. Matthew Garrett from Red Hat talked at length about aggressive power management for graphics hardware. People tend to forget that graphics hardware is more than a processor: it is not just the GPU that draws power, the graphics card's memory, outputs, and, of course, the displays themselves all draw power as well. Until now, most of the work on power management has focused on the GPU, but if you want really good power management, you have to attack the problem on all these fronts. And that's what Garrett is doing at Red Hat and shared in his FOSDEM presentation.
The power consumption of the GPU can be decreased by two techniques: clock gating or reclocking. Clock gating means that different bits of the chip are disconnected from the clock when not in use, and thus less power is drawn. However, this functionality has to be hardwired in the chip design and it must be supported in the graphics driver. And that's where Linux is still lagging behind, according to Garrett: "For a long time Linux graphics support has focused on getting a picture. We can go further now, but we just need the documentation to adapt the drivers." Clock gating has no negative effect whatsoever on the performance of the GPU.
Reclocking is another story: when the GPU is running at a frequency of 600 MHz and you reclock/underclock it to 100 MHz, this results in a massive reduction in power usage, but it also means that the performance is reduced accordingly. Garrett cited a difference of 5 W if clock gating and reclocking is combined on Radeon graphics hardware.
The second component that can be optimized is memory: each memory access draws power. So what can we do about power consumption of memory? Read less often (which is essentially reclocking) or read less memory. Reducing the memory clock can save you again around 5 W, but it introduces visual artifacts on the screen if reclocking happens while the screen is being scanned. The other interesting route (read less memory) comes down to compressing the framebuffer. Most recent Intel graphics chipsets implement this by a run length encoding (RLE) of the screen content on a line-by-line basis. Garrett notes that this means your desktop background can make a difference in battery life: vertical gradients compress very well using this scheme, but horizontal gradients do not.
Another interesting consequence of the memory component is that periodic screen updates are really bad for power consumption. According to Garrett, moving the mouse cursor around has an instantaneous increase of power consumption by 15 W. A blinking cursor draws 2 W, and also the display of seconds or a blinking colon in the system tray clock draws unnecessary power. Garrett adds philosophically: "The whole point of a blinking cursor is attracting your attention. But when you're typing, your attention is already going to your text input, and when you're not typing, it doesn't need your attention. So is it really needed to blink the cursor?"
The third component where power management can make a difference are the outputs. Just powering off an unneeded output port saves around 0.5 W. If you know for sure that you don't need the external output on your laptop, you can safely turn it off and gain a bit of battery time. However, if you need to connect an external monitor or video projector afterward, you will first need to power on the output port explicitly. It all comes down to a tradeoff between functionality and power consumption.
The last (but not least) component of graphics hardware is the displays. This is another place were reclocking can save some watts. For example, the LVDS (Low-voltage differential signaling) link to a laptop's LCD screen uses power at each clock transition. Reducing the refresh rate reduces the power consumption. While CRT screens begin to flicker if the refresh rate is too low, TFT's don't have this problem. According to Garrett, most TFT screens can be driven at 30 Hz, but then they tend to display visual artifacts. Garrett only recommends this LVDS reclocking when the screen is idle, which saves around 0.5 W. If the screen becomes active again, the system should return to a normal refresh rate of 60 Hz. Another solution is DPMS (Display Power Management Signaling): just turn off the screen when it's idle. Even a screensaver drawing a black screen draws power, while DPMS really turns off the output.
So what's the current state of this "aggressive power management"? Dynamic clock gating is implemented in most recent graphic cards. Future developments will implement even more aggressive dynamic state management: graphics hardware will power on functionality when the system needs it and power it off when it's not used. Graphics drivers and the operating system should control this without irritating the user. Garrett stresses that power management has to be as invisible as possible, otherwise the user will not be happy and stop caring about "green" computing. Garrett is now working on the Radeon code to get some prototype functionality. As it stands now, the combination of dynamic GPU and memory reclocking can save 10 to 15 W, and LVDS reclocking can save 0.5 W. For a laptop, this doesn't make a huge difference, but it is still a significant increase in battery life.
In the embedded track of FOSDEM, Peter De Schrijver of Nokia gave an insightful but very technical talk about advanced power management for OMAP3. This integrated chip platform made by Texas Instruments is based on an ARM Cortex A8 processor and has a GPU, DSP (digital signal processor) and ISP (image signal processor). Because the chip is targeted at mobile devices, some advanced power management functionality is built-in: the chip is divided in different voltage domains, and in each module the interface clock and functional clock can be turned off independently.
Nokia used an OMAP1 chip in the N770 internet tablet, and an OMAP2 chip in the N800 and N810 internet tablets. The devices use Nokia's Maemo platform, based on Debian GNU/Linux. Last year Nokia executive Ari Jaaksi revealed that their next Maemo device would use an OMAP3 chip. De Schrijver talked about the power management architecture of OMAP3, but also about the Linux support Nokia is developing for this functionality.
Power management on the OMAP3 can be subdivided into two types. On the one hand, there is active power management. It's essentially the same principle as reclocking in graphics hardware: with a lower clock frequency, the chip is running on a lower voltage, resulting in less power consumption. With dynamic voltage frequency scaling this can be handled automatically. In Linux, the frequency scaling of the CPU is implemented in the cpufreq driver, while for the core (the interconnects between different blocks of the chip and some peripherals) there is a new API call for drivers, named set_min_bus_tput(), which sets the minimum bus throughput needed by a device.
On the other hand, when the chip is idle, there are solutions such as clock control, which can be implemented in software (by a driver) or hardware (an auto idle function). Moreover, clocks of different modules of the chip can be turned off selectively: if the interface clock is off, the core can sleep; if the functional clock is off, the module can sleep. The implementation of clock control in the OMAP3 chip is done in the clock framework of the linux-omap kernel, and Nokia is adding the patches to linux-arm now.
The OMAP3 chip knows four power states per domain: "on", "inactive", "retention" and "off". In the "inactive" state, the chip works at normal voltage but the clocks are stopped, while in the "retention" state the chip works at a lower voltage. This means that the "inactive" state uses more power than the "retention" state, but has a lower wakeup latency. The shared resource framework (SRF) that determines the power state for each domain of the chip is implemented by Texas Instruments and is hidden from the driver programmer by an API. This API has to be implemented by the power management framework and has to be used by the drivers. The API documentation is not yet released, but De Schrijver said this will be added into the kernel Documentation directory soon.
The "off" mode has some challenges: while the power management framework can handle saving and restoring the state of the cpu, memory controller and other components, each driver has to handle its module. This means: reinitialize the module when the functional clock is enabled and save and restore the context and shadow registers in memory.
In his talk, De Schrijver also gave a status update of the work. The "retention" state works. Basic "off" mode works on most development boards; drivers are being adapted for "off" mode now and will be ready at the end of February. All this code is being merged in the linux-arm kernel tree, but eventually it will be merged in the mainline kernel. According to De Schrijver, all these power management techniques will be used in the next Nokia Maemo device: the long-awaited successor of the N810.
Release engineering for a large project is always a tricky task. Balancing the needs of new features, removing old cruft, and bug fixing while still producing releases in a timely fashion is difficult. Python is currently struggling with this as it is trying to determine which things go into a 3.0.1 release versus those that belong in 3.1.0. The discussion gives a glimpse into the thinking that must go on as projects decide how, what, and when to release.
It is very common to find bugs shortly after a release that would seem to necessitate a bug fix release. Ofttimes these are bugs that would have been considered show-stopping had they been found before the release. But what about features that were supposed to be dropped, after having been deprecated for several releases, but were mistakenly left in? That is one of the current dilemmas facing Python.
One of the changes made in Python 3.0 was a change to comparisons and, in particular, removing the cmp() function. That function takes two arguments, returning -1, 0, or 1 based on whether the first argument was less than, equal to, or greater than the second. Python 3.0 set out to clean up some of the "warts" of the language; cmp() could be handled in other, more efficient ways. The only problem is: cmp() didn't really get removed from the Python 3.0 release in December.
It was recognized quite quickly (the bug report shows it being reported three days after the release), but it wasn't exactly clear what to do about it. There may now exist "valid" Python 3.0 programs that use cmp() and function correctly. This led Guido van Rossum to say: "Bah. That means we'll have to start deprecating cmp() in 3.1, and won't be able to remove it until 3.2 or 3.3. :-)" He seems to have only been half-serious, as the smiley might indicate, eventually concluding: "OK, remove it in 3.0.1, provided that's released this year." Unfortunately, the "this year" he was referring to is 2008.
Because Python 3 was such a major shift in the language, the 2to3 tool was created to help fix old code to work with the new interpreter. But, 2to3 did not change calls to cmp(), so code created using that tool will run in Python 3.0. That makes for a bit of a tangle as van Rossum explains:
As of this writing, Python 3.0.1 is intended for release on February 13 with the removal of cmp(). There seem to be a number of reasons that the release slipped into 2009, not least is the holiday season that tends to eat up a fair chunk of December. But it was also more complicated to remove cmp() than it at first appeared. There were several standard libraries and tests that were still using it as well Python internals that still referred to it. Inevitably, as those things were getting worked out, other problems cropped up.
There are some fairly serious performance problems with the new I/O library, with some experiencing read performance three orders of magnitude slower on Python 3.0. There are also problems with chunked HTTP responses when using urllib. Both of these require fairly extensive fixes, though, which also requires lots of testing. It all adds up to a lot of work, so folks start to wonder if much or all of the work shouldn't get pushed into the 3.1 release which is targeted at an April or May time frame.
There are others who argue that the 3.0 series should be abandoned entirely in the near term. Rather than have a 3.0.1 with substantial changes from 3.0—including the incompatible removal of cmp()—3.1 should be released quickly so that it is the release targeted by developers. As Raymond Hettinger put it:
There are some fairly important new features—notably moving the new I/O to C for performance reasons—that will not make it for a release in February, though. Since a 3.2 release would be quite a ways off, those features would languish for too long. 3.1 release manager Benjamin Peterson would would rather see an immediate 3.0.1 release:
There are also concerns that an immediate release called 3.1 might lead to confusion and unhappiness for users. Martin Löwis voiced those fears to general agreement:
Part of the problem is the "no new features" rule for bug fix releases—those that are typically numbered by bumping the third digit of the version number. Python established that rule in the 2.x series, to try to protect the "most conservative users" as van Rossum points out. Those users have not moved to Python 3 yet, so van Rossum argues that the rule can be suspended:
This argument seemed to help crystallize a consensus of sorts. There were some other discussions of exactly which "features" should make an appearance in 3.0.1, but the push for numbering the bug fix release as 3.1 seemed to fade. The 3.0.1 release is currently scheduled for February 13th, while other new features—undoubtedly along with additional fixes—will come with the 3.1 release in April or May.
Part of what was considered in the deliberations was the impact on users and what they will expect from how the releases are numbered. It is a difficult problem, as KDE found out a year ago. Users have certain expectations based on release numbering, which are largely outside of a project's control. But, some kinds of changes, especially those that are not backward compatible, necessitate a "large enough" numeric change to indicate that.
It is a fine line, which is why Python has struggled with it. One hopes that any development for Python 3—a large, incompatible language overhaul itself—avoided using cmp(), and will then be unaffected. If not, the relatively small window in time should keep the number of affected programs to a minimum.
KRunner and GNOME's Do are both descendants of the Run tools that have been part of desktop environments for years. However, instead of allowing you to enter a single command, both Do and KRunner are rapidly evolving into full-scale application launchers that rival main menus as a tool from which to control the desktop. Both require practice to use well, but, their compactness on the screen may appeal to intermediate to advanced users — especially those who prefer keyboard shortcuts to using the mouse.
A new version of KRunner has just been released along with KDE 4.2, and should be available soon in your distribution's repositories along with the rest of the new version, although some distributions may not include it in the default KDE installation.
By contrast, Do is less tightly integrated into its desktop's development cycles, but version 0.8.0 of Do was released in late January. You can find installation instructions on the Do project site. However, many of the distributions listed do not yet have the latest version in their repositories, so, in many cases, the best option is to compile the source code, after first installing Mono support.
Like Do, KRunner opens in a small window. To use it, you press Alt+F2 to start the program, then start typing. In response, KRunner displays a list of programs that could complete your input, rather like tab completion in the BASH shell, except in visual form.
In the simplest cases, what you type can be a command. On this level, KRunner differs little from a Run command, aside from the fact that you can tab to a selection or click it with the mouse. However, two dozen plugins that are installed along with the basic program extend KRunner's capabilities far beyond those of a Run command. Provided that the calculator plugin is installed and enabled, you can enter basic calculations in KRunner, using an asterisk (*) for a multiplication sign and a forward slash (/) for division along with the plus and subtraction signs. Similarly, you use KRunner to convert units of measurement, or to open a web site for currency conversion. Other plugins allow you to open a web search or to search bookmarks, contacts, recent documents or your web browser history.
The one catch with many plugins is that you need to learn a simple syntax in order to use them. For example, if you want to do a web search for "LWN" using Google, you would enter "gg:LWN". In much the same way, if you wanted to convert the average human body temperature from the Fahrenheit to the Celsius scale, you would enter "98.8 F. in C.". Fortunately, KRunner is well-documented, so you should have little trouble learning the syntax for your favorite commands.
A small complication is that KRunner includes task-oriented and command-oriented views. But apart from the positioning of suggestions, the difference is chiefly what sort of completions KRunner offers. The main advantage of the different views is that by carefully selecting them and enabling or disabling plugins, you can make the completions more likely to be the ones you want.
In addition to the two views, KRunner also offers a view of currently running processes that you can use to kill misbehaving applications. Short of a link to other system settings, KRunner could hardly be more of a command center for desktop activities.
Do works in approximately the same way as KRunner, differing mostly in the details. To invoke Do one generally uses the "Super + Space" (typically Windows key along with space bar) combination. Like KRunner, Do works on the most basic level by suggesting completions for the shell command, binary, or task that you type. When the completion you want appears, a Run button opens in a right-hand pane that you can navigate to via the Tab key.
One of Do's main differences from KRunner is in some of the plugins you can use. As you would expect, Do uses GNOME applications like Evolution and Rhythmbox to handle requests, while KRunner uses KDE choices such as KMail or Amarok. Besides having thumbnail file previews, Do is also noticeably more web-oriented than KRunner, with plugins for blogging, RSS feeds, and Google Contacts. In fact, if you choose, you can even use Do to write a tweet or short email.
The latest version of Do also includes support for themes. One of the most useful of these themes is Docky, which converts Do into a launchpad with configurable application icons, making it more of a main menu replacement than ever.
Both KRunner and Do are convenient tools, and run almost as well under other desktops as they do on their native ones. Both, too, amount to a centralized control center that is often more convenient than hunting down the individual program in the sub-menus.
All the same, neither is a tool for a beginner. True, both support task completions, so that you can, for instance, write an email without having to remember what program is the default for emails on your desktop. However, I suspect that most users are oriented to programs more than tasks. Since neither of these programs offers a complete list of available programs, new users may find either KRunner or Do hard to use.
While a traditional menu can be cumbersome, it does have the advantage of displaying a complete list of possibilities. By comparison, in KRunner or Do, you need to already know the possibilities. Otherwise, you can hardly begin to enter one or search for it. And, to further complicate matters, some users may not remember the necessary syntax to use certain plugins unless they use the plugins constantly. This limitation affects both KRunner or Do, although Do has a simpler interface.
But for more experienced users, after a brief learning period, programs like KRunner or Do are probably more efficient than menus — not least because you can use them while keeping both hands on the keyboard rather than one straying to the mouse. You might compare the two programs to learning touch-typing: Although neither is immediately accessible, the way that a mouse and a menu are, once you are comfortable, both offer significantly enhanced ease of use and efficiency.
In recent months, growing recognition for OpenStreetMap has led to an explosion in imports of public and private data. Mapping every street, lake, skiing piste and pizza takeaway in the world might sound like a fun hobby, but being able to pull in your government's basic street network makes the job a whole lot easier. This mix of "crowd sourced" map data from volunteer efforts, private and public donations of data, and commercial developments based on the results, is a classic open source story.
OpenStreetMap was founded by Steve Coast in 2004, borne of a frustration with the prevailing preference for proprietary data in the UK. The Ordnance Survey, which can trace its roots back to 1747, is the part-government funded agency with some of the world's most detailed and best loved maps. Unfortunately they charge you an arm and a leg to get the underlying vector data. So out stepped Coast, equipped with a GPS, notepad and pen, followed by tens of thousands of volunteers all manually gathering the data to enter into OpenStreetMap's database. To get a feel for the explosion of data over the past year, look at this great video.
Thankfully, help for the crowd was at hand from the start. Coast quickly secured an import of GPS traces from a courier company for central London; the donation cost the courier company nothing but was very helpful for OpenStreetMap. Much more impressive imports began more recently, with the US census bureau's TIGER database bringing data for the entire street network for the United States of America in late 2007. The Netherlands appeared in even finer detail around the same time, thanks to a donation by Dutch company AND.
This process has now rapidly accelerated. You can get an idea of the scale of the import activity from these incomplete wiki pages on importing government data, the catalogue of major imports and the enormous list of potential data sources. These imports vary from quite comprehensive -- such as the Canadian Geobase -- to very specific datasets like NAPTAN (UK public transport access points) and UK oil wells. Importing vectors for buildings in addition to roads has been popular, examples include Boston in the USA and Naga City in the Philippines.
Of course, most of these imports have come from governments and public agencies who are empowered or required to release the data into the public domain. Any import needs to be carefully reviewed to ensure that copyrights - and database rights in Europe - aren't infringed. For those of us mapping in countries like the UK, this means more walking and cycling, with only occasional negotiations opening up niche data such as oil wells and bus stops. Politics still holds the project back -- or makes for more fun, depending on your perspective.
Politics was a driving force behind one of the most interesting recent collaborations between volunteers and public / non-governmental agencies. Whilst the world was watching the Israel-Palestine conflict on TV, long-time OpenStreetMap volunteer and geospatial activist Mikel Maron was attempting to produce high quality maps of the Gaza strip. Maron worked with UN and aid agencies to obtain data, gain the funds to buy aerial imagery that volunteers could trace, and locate Palestinian expatriates who could fill in details from memory.
With commercial uses for OpenStreetMap emerging, such as the recently unveiled CloudMade developer products, and free software projects like Marble integrating the maps into their interfaces, OpenStreetMap is gaining clout. In the country that started it all, a government-commissioned study found that there would be more economic benefits for the UK if map data was released into the public domain than under the current proprietary model. Under pressure from a growing campaign, and these compelling examples of the benefits of open collaboration, we might just see the terrain shifting from a few interesting imports to a major change in mainstream attitudes towards public data.
At the very least, you'll have a lot of high quality map data to play with at your leisure in the future.
(Interested in adding data to OpenStreetMap? Tom Chance will be returning in the near future with a look at how that process works.)
A recent thread on the desktop-architects mailing list touched on a subject that tends to generate strong feelings: automatic, silent updates for security issues. At first blush, it is an attractive idea that might help slow down or stop a fast-moving virus or other malware. It also would help protect users who might otherwise ignore or delay updating their system. On the other hand, there are lots of concerns about whose decision it is to have a "mandatory" update, what else might be contained in such an update, as well as how to ensure that the update doesn't break the user's machine.
Dan Kegel kicks off the discussion by asking:
This goes not just for distros; any ISVs is on the hook for rapid security updates these days, I would think.
While there are attractions, one of the immediate downsides was noted by KDE hacker Aaron Seigo: "distro Q/A resources would have to _significantly_ increase for this to work reliably. too many updates still break too many systems on too regular a basis." The first time a silently applied "fix" breaks someone's system, there will be a serious outcry. Microsoft and others have broken people's systems before with security updates, but that doesn't seem a good example to follow.
But, even with additional QA, there are plenty of reasons that a user might not want to get an update. GNOME foundation member Dave Neary presents several scenarios:
A kernel reboot or even application restart are definitely problem areas. There are many reasons a user might need to continue using a buggy application or kernel, even if the bug exposes them to an exploit. Some users have enough information to make that kind of determination, but others most definitely do not. How does the distribution or software package determine that? Presumably there will have to be settings to govern the behavior, which then begs the question: what is the default setting?
An additional problem is that users are training themselves—or the desktops and distributions are training them—to ignore pop-ups of various sorts. So suggestions like the one made by Ritesh Raj Sarraf: "For updates with priority 'security', I think it should just pop-up more often" are met with skepticism. Kegel opines:
That provoked a rather boisterous response from Linus Torvalds. His argument is that you can't trust the developers of various projects to determine what fixes should be applied. He is concerned that projects might want to slip other things into a "security" release:
His point is that he, and by extension other sophisticated users, are never going to turn over their systems to the whims of outsiders. He is willing to let distributions or even some software packages make that kind of decision, but only if things are not done silently. "There are programs that I trust to do their auto-updates, and I'm perfectly happy having firefox check for extensions automatically, for example. But even in the case of firefox, I want to _know_ when it does so."
Any kind of automated, silent upgrade feature from either a particular package or a distribution would be an enormous target for those with a malicious intent. It would be a kind of dream exploit to be able to inject malware into millions of unsuspecting systems—silent and unnoticed. A break-in to a distribution server might lead to an incredible malware outbreak, though the same thing could be accomplished today; it would just take more time.
But, the problem remains that there are lots of systems that are not getting updated and are thus vulnerable to a wide variety of exploits. As part of its Collaboration Summit, the Linux Foundation would like to have a meeting to discuss the issue. It is certainly an area where more thought is needed.
Brief itemsa weblog posting by "foobar" describing an attack vector for desktop Linux systems. "When you save an email attachment under Linux, the execute flag is normally NOT set and thus, the file can't be executed just by clicking on it. So, no luck? Not so fast. Modern desktop environments, such as Gnome and KDE, conveniently offer a nice 'workaround' called 'launchers'. Those are small files that describe how something should be started. Just a few lines that specify the name, the icon that should be displayed and the actual command to execute. Conveniently, the syntax of those launcher files is the same for Gnome and KDE. And those launchers don't have to have any execute permissions set on them!" Your editor can't resist pointing out that this problem was covered here back in 2006. (Thanks to David Skoll).
|Package(s):||firefox||CVE #(s):||CVE-2008-5510 CVE-2009-0357|
|Created:||February 11, 2009||Updated:||February 16, 2009|
|Description:||Firefox 1.5 (and later) suffers from a pair of vulnerabilities. CVE-2008-5510: escaped null characters are not properly handled, allowing script sanitizing processes to be bypassed. CVE-2009-0357: access to cookies is not properly restricted, creating an information disclosure vulnerability.|
|Package(s):||gnumeric||CVE #(s):||CVE-2009-5983 CVE-2009-0318|
|Created:||February 5, 2009||Updated:||April 3, 2009|
|Description:||gnumeric has an arbitrary code execution vulnerability. From the CVE entry: Untrusted search path vulnerability in the GObject wrapper around Python interpreter allows local users to execute arbitrary code via a Trojan horse Python file in the current working directory, related to an erroneous setting of sys.path by the PySys_SetArgv function.|
|Package(s):||gpsdrive||CVE #(s):||CVE-2008-4959 CVE-2008-5380 CVE-2008-5703|
|Created:||February 5, 2009||Updated:||February 11, 2009|
|Description:||gpsdrive has multiple vulnerabilities that involve insecure temporary file usage. From the Fedora alert: This update removes several helper scripts: geo-code, geo-nearest, and gpssmswatch, which have been removed upstream due to security issues.|
|Created:||February 6, 2009||Updated:||April 6, 2009|
|Description:||An array indexing error was found in the GStreamer's QuickTime media file format decoding plug-in. An attacker could create a carefully-crafted QuickTime media .mov file that would cause an application using GStreamer to crash or, potentially, execute arbitrary code if played by a victim.|
|Created:||February 6, 2009||Updated:||July 13, 2009|
|Description:||A heap buffer overflow was found in the GStreamer's QuickTime media file format decoding plug-in. An attacker could create a carefully-crafted QuickTime media .mov file that would cause an application using GStreamer to crash or, potentially, execute arbitrary code if played by a victim.|
|Package(s):||gstreamer-plugins-good||CVE #(s):||CVE-2009-0386 CVE-2009-0387|
|Created:||February 6, 2009||Updated:||December 22, 2016|
|Description:||Multiple heap buffer overflows and an array indexing error were found in the GStreamer's QuickTime media file format decoding plugin. An attacker could create a carefully-crafted QuickTime media .mov file that would cause an application using GStreamer to crash or, potentially, execute arbitrary code if played by a victim.|
|Created:||February 5, 2009||Updated:||February 11, 2009|
|Description:||openjdk has a privilege escalation vulnerability. From the Fedora alert: This fixes a default security policy, that allowed unsigned applets to access the gnome-java-bridge, allowing a privilege escalation.|
|Created:||February 10, 2009||Updated:||May 7, 2009|
|Description:||From the Red Hat advisory: A memory leak in keyctl handling. A local user could use this flaw to deplete kernel memory, eventually leading to a denial of service.|
|Created:||February 11, 2009||Updated:||February 11, 2011|
|Description:||The mod_auth_mysql module has a flaw in how it escapes multi-byte-encoded strings, enabling SQL injection attacks.|
|Created:||February 5, 2009||Updated:||March 18, 2009|
|Description:||nss has a rogue CA vulnerability. From the Fedora alert: This updates adds protection against rogue CA that was generated as a proof-of- concept of the MD5 collision attacks against X509 signatures.|
|Created:||February 5, 2009||Updated:||February 11, 2009|
|Description:||roundcubemail has a cross-site scripting vulnerability. From the CVE entry: Cross-site scripting (XSS) vulnerability in RoundCube Webmail (roundcubemail) 0.2 stable allows remote attackers to inject arbitrary web script or HTML via the background attribute embedded in an HTML e-mail message.|
|Created:||February 10, 2009||Updated:||March 25, 2009|
|Description:||From the Mandriva advisory: Due to an internal error Squid is vulnerable to a denial of service attack when processing specially crafted requests. This problem allows any client to perform a denial of service attack on the Squid service.|
|Created:||February 10, 2009||Updated:||April 10, 2009|
|Description:||From the CVE entry: The DBus configuration file for Wicd before 1.5.9 allows arbitrary users to own org.wicd.daemon, which allows local users to receive messages that were intended for the Wicd daemon, possibly including credentials.|
Page editor: Jake Edge
Brief itemsreleased on February 8. It contains a long list of fixes merged over the course of a week and a half. The short-form changelog is in the announcement, or see the full changelog for all the details.
The current stable 2.6 kernel is 220.127.116.11, released (along with 18.104.22.168) on February 6. Both updates contain a long list of fixes. The 22.214.171.124 and 126.96.36.199 updates - with yet another long list of fixes - are in the review process as of this writing; they will most likely be released on February 12.
Kernel development news
On the assumption that it has failed to coerce the spirits of our ancestors to land among us, I'll create a patch to remove it.
The use of git (and BitKeeper before it) has brought an end to that era. Once a change gets into somebody's tree, it is relatively unlikely to be lost. It's a much better way of doing things for everybody involved; important fixes no longer get lost, and developers, rather than checking for their patches and resending them, can now devote themselves to the creation of new bugs to be fixed.
Beyond that, though, things have changed in that, for most developers, the way to get a patch into the kernel is no longer to send it to Linus. Instead, they will pass their work through a subsystem tree. This mechanism is reasonably well understood, but, to your editor's knowledge, nobody has taken a hard look at what the flow of patches into the mainline looks like now. With that in mind, your editor set out with the complementary goals of (1) charting the paths patches take on their way to Linus, and (2) figuring out how Graphviz works. A certain amount of success was achieved on both fronts.
Back in the BitKeeper days, your editor asked Larry McVoy if there was any way to track which repositories a specific changeset had passed through; unfortunately, that information was not preserved by BitKeeper. As it turns out, git does a better job of keeping that information around - though it is not a perfect record keeper either. When Linus pulls a tree from some other developer, git will (usually) add a "merge commit" to the repository which indicates where the other tree came from. This commit has (at least) two parent commits; one is whatever was at the tip of Linus's tree prior to the merge, while the other points to the tip of the stream of changesets which came from the pulled tree. Multiple trees can be merged at once; in this case, there will be more than two parent commits.
By following the links from each commit to its parent, one can determine which tree each commit came from. Merges, too, are propagated up through pull operations, so it is possible to follow this history back through an arbitrary number of trees. The gitk tool does a nice job of displaying how the various paths come together into a given repository; the resulting graph can be quite complex. What your editor has done is to generate a statistical view of this process; this view loses information about specific patches, but provides, instead, an overall view of how patches get into the mainline.
A piece of the resulting graph can be seen on the right; click on the thumbnail to see the whole thing, which is quite large. It is, arguably, a messy picture, but some interesting things jump out of it. At the top of the list is the fact that the graph is quite shallow: it shows 107 trees, almost all of which feed directly into the mainline. For the 2.6.29 development cycle, only a handful of trees are pulled into a separate subsystem tree before going to Linus, and exactly one tree feeds patches through two other layers. For the most part, subsystem maintainers are going straight to Linus without dealing with middle managers.
975 of 11,260 changesets went directly into the mainline without existing in any subsystem tree at all. Some of those are the merge changesets created by Linus as he pulls trees; many of the rest are the patches which go by way of Andrew Morton. Linus wrote a very small number of them himself. And, occasionally, Linus merges a patch sent directly from a developer, but that is a relatively uncommon occurrence.
When interpreting these numbers, there is one important thing which must be kept in mind: by default, git will not record merge information when it is doing a "fast forward" merge. If a developer pulls down the current mainline repository, adds some patches on top, then gets Linus to pull the patches before anything else changes in the mainline, those patches can be added directly to the mainline without the need for a merge commit to hold things together. Fast-forward merges into the mainline are (probably) fairly rare, but they may well happen more often at the subsystem level. So this kind of information, when generated from a git repository, will never be 100% complete; some merges (and the repositories they came from) will be invisible.
For 2.6.29, two networking trees maintained by David Miller were the biggest waypoint for changesets (1910 of them) headed into the mainline; of those, many came from John Linville's wireless tree. After that, the "linux-2.6-tip" tree (the tree maintained by Ingo Molnar and company for a few subsystems, including the x86 architecture and the scheduler) contributed 1270 changesets to this development cycle. Other large sources of changes were the btrfs tree (910 changesets - the entire btrfs development history), the Video4Linux tree, the sound tree, and the ARM architecture tree. At the other end of the scale, twelve trees were the source of five or fewer changes.
For the curious, the statistics are available in text form along with the full names of the relevant git repositories. The code which generated this information is available as part of the gitdm repository at git://git.lwn.net/gitdm.git. An obvious place for future improvement is to track information about branches within repositories; this would increase the resolution of the whole picture. But that's for another development cycle; stay tuned.
Android, of course, is Google's platform for mobile telephones. The initial Android stack was developed behind closed doors; the code only made it out into the world when the first deployments were already in the works. The Android developers have done a lot of kernel work, but very little code has made made the journey into the mainline. The code which has been merged all went into the staging tree without a whole lot of initiative from the Android side. Now, though, Android developer Arve Hjønnevåg is making an effort to merge a piece of that project's infrastructure through the normal process. It is not proving to be an easy ride.
The most controversial bit of code is a feature known as "wakelocks." In Android-speak, a "wakelock" is a mechanism which can prevent the system from going into a low-power state. In brief, kernel code can set up a wakelock with something like this:
#include <linux/wakelock.h> wake_lock_init(struct wakelock *lock, int type, const char *name);
The type value describes what kind of wakelock this is; name gives it a name which can be seen in /proc/wakelocks. There are two possibilities for the type: WAKE_LOCK_SUSPEND prevents the system from suspending, while WAKE_LOCK_IDLE prevents going into a low-power idle state which may increase response times. The API for acquiring and releasing these locks is:
void wake_lock(struct wake_lock *lock); void wake_lock_timeout(struct wake_lock *lock, long timeout); void wake_unlock(struct wake_lock *lock);
There is also a user-space interface. Writing a name to /sys/power/wake_lock establishes a lock with that name, which can then be written to /sys/power/wake_unlock to release the lock. The current patch set only allows suspend locks to be taken from user space.
This submission has not been received particularly well. It has, instead, drawn comments like this from Ben Herrenschmidt:
There's no end of reasons to dislike this interface. Much of it duplicates the existing pm_qos (quality of service) API; it seems that pm_qos does not meet Android's needs, but it also seems that no effort was made to fix the problems. The scheme seems over-engineered when all that is really needed is a "do not suspend" flag - or, at most, a counter. The patches disable the existing /sys/power/state interface, which does not play well with wakelocks. There is no way to recover if a user-space process exits while holding a wakelock. The default behavior for the system is to suspend, even if a process is running; keeping a system awake may involve a chain of wakelocks obtained by various software components. And so on.
The end result is that this code will not make it into the mainline kernel. But it has been shipped on large numbers of G1 phones, with many more yet to go. So users of all those phones will be using out-of-tree code which will not be merged, at least not in anything like its current form. Any applications which depend on the wakelock sysfs interface will break if that interface is brought up to proper standards. It's a bit of a mess, but it is a very typical mess for the embedded systems community. Embedded developers operate under a set of constraints which makes proper kernel development hard. For example:
One could argue that Google has the time, resources, and in-house kernel development knowledge to avoid all of these problems and do things right. Instead, we have been treated to a fairly classic example of how things can go wrong.
The good news is that Google developers are now engaging with the community and trying to get their code into the mainline. This process could well be long, and require a fair amount of adjustment on the Android side. Even if the idea of wakelocks as a way to prevent the system from suspending is accepted - which is far from certain - the interface will require significant changes. The associated "early suspend" API - essentially a notification mechanism for system state changes - will need to be generalized beyond the specific needs of the G1 phone. It could well be a lot of work.
But if that work gets done, the kernel will be much better placed to handle the power-management needs of handheld devices. That, in turn, can only benefit anybody else working on embedded Linux deployments. And, crucially, it will help the Android developers as they port their code to other devices with differing needs. As the number of Android-based phones grows, the cost of carrying out-of-tree code to support each of them will also grow. It would be far better to generalize that support and get it into the mainline, where it can be maintained and improved by the community.
Most embedded systems vendors, it seems, would be unwilling to do that work; they are too busy trying to put together their next product. So this sort of code tends to languish out of the mainline, and the quality of embedded Linux suffers accordingly. Perhaps this case will be different, though; maybe Google will put the resources into getting its specialized code into shape and merged into the mainline. That effort could help to establish Android as a solid, well-supported platform for mobile use, and that should be good for business. Your editor, ever the optimist, hopes that things will work out this way; it would be a good demonstration of how embedded community can work better with the kernel community, getting a better kernel in return.
A longstanding out-of-tree kernel feature—used by half-a-dozen or more virus scanners—Dazuko has recently changed its modus operandi in an effort to be included into the mainline. Dazuko, and now DazukoFS, are mechanisms to control access to files, which are generally used to stop Windows viruses from propagating on Linux servers. The goal is similar in many ways to that of fsnotify/fanotify/TALPA, but the DazukoFS implementation as a stackable filesystem is a completely different approach.
The Dazuko project started almost exactly seven years ago as an effort to allow user-space programs—Windows-style anti-virus scanners mostly—to make file access decisions. One of the reasons to have the scanning in user space—aside from the zero probability of getting one added to the kernel—is to keep it vendor-neutral by not favoring any particular anti-virus engine. But the means to that end was system call hooking, which is a technique that is seriously frowned upon by kernel hackers. Dazuko made an abortive move to the LSM API, but ran into various problems, including the inability to stack multiple security modules. Eventually, the project started looking at a stackable filesystem as a solution that would be palatable for moving into the mainline.
Originally suggested for Dazuko by Christoph Hellwig in 2004, a stackable filesystem has a number of advantages over the other solutions. It is a self-contained solution that won't require core kernel code changes if anti-virus developers wish to add new features. It also would add another stackable filesystem to the kernel, which may help foster a more general stackable filesystem framework. But the main reason is that the project sees it as the most likely path into the mainline. Main developer John Ogness explains:
DazukoFS is mounted atop an already-mounted filesystem in order to handle file access decisions for files in the underlying filesystem. For example:
mount -t dazukofs /opt /optsets up the /opt filesystem for checking by user-space processes that open a special /dev file. All of the scanning application interaction with DazukoFS is done through /dev files, all of which is documented in Documentation/filesystems/dazukofs.txt
File access decisions are made by processes or threads which make up a "group". Groups act as a pool of available scanners to allow multiple outstanding file access decisions. Once the pool is fully occupied, file accesses will block until one becomes available. Groups are registered by writing "add=MyGroupName" to /dev/dazukofs.ctrl. A group id will then be assigned, which can be parsed from the output of reading the dazukofs.ctrl file. Group ids are then used to access the proper device for providing access decisions.
Based on the group id (N), a /dev/dazukofs.N file is created. Each process in the group registers itself by opening that device. It should then block in a read of the device waiting for a file access event. Each event has three pieces of information that are read from the device file: an event id, the process id of the accessing program, and the number of an open file descriptor that can be used to read the contents of the file. The scanning process should then perform whatever actions it requires to make the decision whether to allow or deny the access.
Because it gets passed an open file descriptor, the scanning process does not need any special privileges beyond those required to access the /dev/dazukofs* files. Once it has made the decision, the scanning process writes a string indicating the result to the device. It is then responsible for closing the file descriptor for the accessed file.
There are a few additional things that can be done via the user-space API: deleting groups, providing for some crash protection within groups, and handling accesses to protected files from within DazukoFS, all of which are described in the Documentation file.
There is also a major caveat that goes with this release of DazukoFS:
That is done, at least partially, to avoid race conditions where a malicious program overwrites the file contents between the scanning and the actual access. This is a general achilles' heel for virus scanning mechanisms, but silently ignoring writes to mapped files is a rather extreme reaction to that problem. TALPA, which has subsequently become fanotify, defines this problem away as not being a part of the threat model it is handling. Perhaps DazukoFS should do something similar.
It would seem likely that only one of the two proposed solutions for user-space file scanning will end up in the mainline. Ogness mentions fanotify in his patch submission:
So far, there has been no comment on the v2 patch submission, but there were some suggestions to the first submission back in December. The kernel filesystem hackers are pretty busy folks in general, but right now there are numerous filesystems in various states of review: btrfs, POHMELFS, DST, FS-Cache, and others. Those may be using up all of the available review bandwidth. Ogness recently announced that he will be dropping support for the 2.x version of Dazuko—based on system call hooks—to focus on DazukoFS. In it he notes the lack of review:
From the announcement, it seems clear that Ogness has the patience necessary to shepherd DazukoFS through the kernel inclusion process. It would seem that spending some time working with Eric Paris to try to find some common ground between their two solutions might be time well spent as well.
Patches and updates
Core kernel code
Filesystems and block I/O
Benchmarks and bugs
Page editor: Jonathan Corbet
News and Editorials
Forget everything you ever knew about KNOPPIX because 6.0 is different from anything you've ever seen before. KNOPPIX was once a complete desktop distribution featuring KDE, lots of applications, and superior hardware detection. It was even one of the first to be delivered as a bootable live CD/DVD. Back then it was one of the most popular distributions available, but with the ease of making live CDs came lots of competition and KNOPPIX lost many of its users to the likes of MEPIS, PCLinuxOS, or Ubuntu. However, KNOPPIX developers are innovating once again, this time with a lightweight distribution offering accommodations to those with visual impairments.
The accessibility goals are being met through ADRIANE, the compilation of programs designed to help those with visual challenges navigate a system by sound-directed keyboard input. With ADRIANE, individuals with diminished visual skills can surf the Internet, read and write emails, text message, listen to music or videos, read and construct office documents, and more.
The changes are apparent from the start of the CD. The default boot brings the user to a plain text menu with items such as WWW, Multimedia, File Manager, Graphical Programs, and Setup. ADRIANE reads these items in a robotic British voice to the user as the cursor is moved up and down. <Enter> opens various programs such as Links for Web navigation, Mutt for e-mail, or Midnight Commander for file management. Graphical Programs will bring a submenu for OpenOffice, Iceweasel, or start the full LXDE desktop environment.
The screen reader seems to do an admirable job of reading off menus, window titles, bash prompts, key inputs, web pages, documents, or just about anything that appears on screen. It did have some difficulty keeping up with fast typing and at times just cut out all together. It can be customized for several preferences such as default language, function keys, Braille devices, and to start at login.
Using Iceweasel is an exercise in patience as the NoScript plugin output preempted anything on the web page. With today's CMS software, every web site has a ton of headers on every page which is kindly re-read with each click. Same holds true for multicolumn sites whose first column is static and chocked full of links. Due to this there may be only a very few sites that people with visual impairments might find enjoyable.
Menu navigation is confusing at first as well because the screen reader recites "Menu, Menu-Item, Sub-menu Item, Program, keyboard shortcut" for each move of the cursor or highlight. A certain amount of self training may be required before one can tune out the repetition.
The reader didn't seem to have much difficulty translating text to speech. Some words are pronounced unconventionally, with the accent on the wrong syllable or literal reading of some letter combinations, but very few words were skipped or botched completely. It actually did a very good job on a computer with lots of processing power and memory. It stopped speaking on a machine with lower resources much more often. It was also a bit unstable, especially on the slower machine. Iceweasel crashes and OpenOffice.org freezes were not uncommon and root applications were excluded altogether.
KNOPPIX is now shipping with the lightweight but capable LXDE. It strives to be a pretty, fast performing, customizable, and energy saving desktop. It is being seen in more and more distributions lately as an alternative GTK+ 2 interface due to its lower system requirements and dependencies.
KNOPPIX isn't just for the visually impaired. It can be used by anyone wanting a light desktop with a few popular applications. GMPlayer resides in the menu for audio and video playback, The GIMP manipulates your images, and GPicView provides basic image viewing. Iceweasel, Icedove, ELinks, and Pidgin network for you and the OpenOffice.org suite puts you back to work. There are a several system accessories such as Leafpad, Xarchiver, and PCMan file manager. A few system configuration tools have made it into this release such as Network card configuration, Wavelan configuration, and Synaptic software manager. Multimedia codecs are present but Flash isn't. Ironically, KNOPPIX also ships with Compiz and Compiz Fusion plugins enabled by default on supporting hardware as well as several nice screensavers. Linux kernel 2.6.28 and Xorg X server 1.4.2 form the foundation and GCC 4.3 is installable.
Missing from this release is the KNOPPIX hard drive installer, although it does have a script for installing onto a USB memory stick. Many tools and utilities that didn't make into this release are being planned for the next and hopefully the installer is on that list. Live CDs are nice, but without a hard drive installer KNOPPIX may not be feasible for daily use.
Hardware support with this release is very good for devices known to work well with the standard Debian kernel. A basic DHCP network connection is available at boot with supported hardware. Graphics detection and configuration is good, even with an antique 13 inch monitor saved from the refuse pile. Without proprietary drivers, most NVIDIA and ATI/AMD graphic chips will not be able to utilize the Compiz screen effects.
The screen resolution was correctly configured on the 15.4 inch widescreen LCD of an HP Pavilion laptop. However, KNOPPIX doesn't ship with any proprietary drivers or Ndiswrapper, so some wireless network devices may not work such as the one on this laptop. The wired network card worked fine as did most of the other common devices.
Tests here showed that, despite a light desktop environment, the system requirements are a bit higher than one might think. The ADRIANE applications in combination with many of the graphical programs seem to require a recent processor and approximately a gigabyte of RAM. Although KNOPPIX did function on slower machines, more instability surfaced.
This release of KNOPPIX 6.0 "ADRIANE" is an admirable first effort. Although ADRIANE has been in development since 2007 and was included in KNOPPIX 5.3.1, this is the first release to build completely around it. The underlying system has been rebuilt from scratch, so all in all it's shaping up nicely. The ADRIANE components aren't perfect and need a few bugs squashed, but overall it was quite amazing with its accuracy.
However, some of its quirks might keep someone with visual issues from just inserting the CD and working entirely on their own, at least until they have been trained. This would be especially true for someone new to requiring accommodations such as text-to-speech and screen readers. In tests here, our brave blindfolded guinea pig became lost and stuck within a matter of minutes in the graphical environment. On the other hand, everyone in our test lab with unobstructed sight was completely impressed with the ADRIANE technology and appreciate the work done by Klaus Knopper and his lovely wife Adriane.
Overall, it's a great first showing and subsequent releases are bound to be even more exciting. If you know someone with vision impairments, it might be worth their while to give them and walk them through a copy of KNOPPIX ADRIANE.
New ReleasesUbuntu Customization Kit is a tool that helps you customize official Ubuntu Live CDs (including Kubuntu/Xubuntu and Edubuntu) to your needs. You can add any package to the live system, for example language packs, or applications. Version 2.0.8 has been released.
Debian GNU/LinuxThe Debian Project has lost an active member of its community. Thiemo Seufer died on December 26th, 2008 in a tragic car accident. Thiemo was involved in Debian in many ways. He maintained several packages and was the main supporter of the Debian ports to the MIPS architecture. He was also a member of our kernel team, as well as a member of the Debian Installer team. His contributions reached far beyond the Debian project: he also worked on the MIPS port of the Linux kernel, the MIPS emulation of qemu, and far too many smaller projects to be named here."
Fedoraannounced the Fedora 11 alpha release, complete with the requisite doggerel poetry. It is definitely early-stage software, but the announcement helpfully notes that it "should boot on the majority of systems." This is a good chance for those who are interested in the upcoming Fedora release to help find bugs.
Fedora has also brought in Adam Williamson as a community liaison. "I am working for Red Hat as of this Monday. I have been hired into the Fedora QA team essentially to drive community involvement in the Fedora QA process. RH - and, to put a more personal touch on it, Jay Turner, who's responsible for Fedora QA - felt that Fedora could really benefit from more community involvement in the QA process, so my role is to try and help develop that." Adam previously did community work for Mandriva.
New DistributionsJarro Negro (English version) hails from Mexico. Its goal is to produce servers of different architectures (including SPARC). Jarro Negro is a 'built from scratch' distribution which recently added support for RPM package management. 2.0.2 is the current version.
Distribution NewslettersDistroWatch Weekly for February 9, 2009 is out. "The netbook market is not just limited to the Eee PC any more, now every major manufacturer has a netbook of some description. The software arena hasn't stood still either with many custom distributions having been created to accommodate these little machines. Intel sponsors the Moblin project which has just released a new alpha, and we take it for a test run. In the news section, the creator of Puppy Linux explains his new project called Woof, Mandriva finalises the structure for their new Assembly, things heat up in BSD land with new releases on the way, the unofficial Fedora FAQ provides updates to version 10, Fedora causes a stir after disabling the popular 'kill X' feature, and a new online Slackware package finder is made public. Also in this issue are links to two interviews - the first with a KDE developer and the second with the creator of Xfce." This week we're happy to announce the return of several beats: Marketing reports on following Fedora activity via Twitter; Ambassadors tantalizes with some Fedora polo shirts and the news that "North American Ambassadors Take Reins of XO Program"; Infrastructure notes a possible "Public Calendaring System" for the community; SecurityWeek shares an xkcd comic in "Encryption Security". Announcements highlights the K12Linux Fedora 10 Live Server in "Technical Announcements", PlanetFedora rounds up a lot of must-read blogs, Developments clarifies that "Fedora 11 Will Support i586 Instruction Set", Translation links to the "L10n Infrastructure Roadmap Proposal", Artwork suggests some "Context Free Art", SecurityAdvisories lists packages you really, really want, Virtualization defies easy summary but one exciting tidbit is "Merging KVM and Qemu Packages", and finally we have another AskFedora concerning the possibility of a "Standardized Package Format"." OpenSUSE Weekly News looks at Adrian Schröter: More efficient Factory Development, FOSDEM, Larry Finger: Getting Your Wireless to Work, Martin Schlander: Use Oxygen Icons In App Menu, Joe Brockmeier: More FOSS security scare-mongering and several other topics.
Newsletters and articles of interestwalk down memory lane for anyone who has been using Linux since 2000 (or before). It is re-running an article from from the first issue of Linux Format magazine that reviewed the top distributions of 2000. "Remember that nine years is a long time in the computing world -- and even more so for Linux. [...] Corel Linux is long dead, despite a high-profile entrance into the distro scene, while Caldera Linux occupied a healthy position (before the SCO shenanigans busted it up). SUSE, Mandrake, Red Hat and Mandriva are still alive in various flavours, while the British Definite distro bought the farm and WinLinux only made it to a 2003 release."
Page editor: Rebecca Sobol
For a long time, your author has been searching for a low power music playing computer for use in an off-grid solar and wind powered mountain cabin. The desire was to have a player with capabilities that were similar to the grid-powered system used at home. This consists of a library of over 5000 FLAC-encoded audio files that are either randomly or sequentially played by one of several Python scripts. The audio is fed from the computer's sound card to the auxiliary input of a stereo amplifier.
The current off-grid audio system uses a car stereo deck with a built-in CD player driving three stereo speaker sets, all running on 12V DC power. Power consumption is in the range of 5-10 Watts, depending on volume. The car stereo deck has an auxiliary audio input for connecting external sound sources, such as a computer. After one becomes used to a Linux-powered music system with unattended playback of a large music library, manually swapping individual CDs every 45 minutes seems like a lot of trouble.
Initially, a stripped-down desktop computer was considered for the job, but the power consumption was a bit too high for continuous off-grid use, especially when powering the machine equipment through a DC to AC power inverter. A number of mini-ITX systems were considered for the job, but their prices were high, power consumption was still moderate, and an external monitor, with more power consumption, was required.
A laptop computer seemed like a better platform for building such a system. Taking the small system idea one step further, it was decided that a palmtop computer would be a good candidate for the task at hand. The ASUS Eee PC was chosen because it was inexpensive, common, tiny, self-contained and would run on low power. Also, another LWN editor had an Eee PC model 4G (701) that he was willing to part with. This machine uses a solid state flash drive for its primary filesystem.
One might ask, why not just get an iPod? In short, your author does not like the sound quality that comes from highly compressed audio formats, and the ability to create custom software was desired. Also, the price of large capacity hard drives has come down enough that high volume storage is no longer an issue.
The newly acquired Eee PC needed a fresh operating system installation. Ubuntu was a logical choice since it was already being used for the home-based music player. Easy Peasy 1.0 (Ubuntu 8.10) was the first Ubuntu-based distribution that was found for the Eee PC platform. The EEEBUNTU distribution also looks like a good candidate for running Ubuntu on the the Eee PC. Installing the operating system on a machine that lacked a CDROM drive involved downloading the appropriate ISO image and installing it on a USB memory stick. Creation of a bootable USB memory stick is explained in this article.
The Easy Peasy installation worked the first time, the only annoyance involved the appearance of the Ubiquity system installation window upon logging in. The Easy Peasy forum had an article on Common issues and fixes that had the solution to that problem, and some additional post-installation suggestions. An article about optimizing Linux on a solid stated drive suggested some additional tricks for improving the life of the solid state memory. The folks who put Easy Peasy together did a good job customizing Ubuntu for the Eee platform, all of the various Eee PC peripherals have worked with no problems.
A Seagate FreeAgent 320GB USB drive was chosen to hold the music collection, it is small, frugal with power and gets its operating power from the USB port. The drive required installation of an EXT3 filesystem. The entire music collection was copied over by installing the new drive on the home system and running an rsync command to populate the filesystem. As the master music archive grows, it will be simple to synchronize it with the USB drive using another rsync operation. The USB drive also provides an off-site backup for the main music collection.
A small amount of software had to be installed on the machine. The Ubuntu vorbis-tools package contains the ogg123 command line FLAC file player. Two custom Python scripts, RandFlacPlay.py and Playflacs.py (available here) use ogg123 to do the rest of the work. The music is organized in a hierarchy of directory trees categorized by genre, artist and recordings. The recordings of CDs, vinyl disks and tapes each get their own directory. RandFlacPlay.py is run with the primary music archive as an argument, it picks random selections and plays them. It can also be run on subsets of the entire collection or on directories full of symbolic links to specific groupings of recordings. Playflacs.py is used to play all of the songs in one particular directory. Both Python scripts can be invoked multiple times inside of a bash script for a wide variety of programmability.
Using the Kill-a-watt meter that was discussed in the aforementioned power consumption article, data was taken for various modes of Eee PC operation. With the USB hard drive connected and the screen on, the worst-case AC power usage was in the 17-21 Watt range while playing music. This is about four times better than the best power consumption achieved with the desktop machine, not counting the desktop video monitor. When the Eee PC screen is closed, power consumption drops by about 2 Watts. Removing the USB hard drive causes the power consumption to drop by around 4 Watts. Running from the AC charger, the Eee PC can play music using only 11-15 Watts. This number can likely be shaved by another 5 watts or so if the machine is powered directly from 12V DC using a car cigar lighter adapter, the AC adapter generates a lot of heat.
In the above example, minimum power usage was achieved with the hard drive disconnected. However, a music player without music isn't of much use. A bit of software solved the problem. The RandFlacPlay.py script was modified so that instead of playing the random music selections, it copies the songs from the hard drive to a specified directory on the flash-based filesystem. Flash space on this system is in short supply, so an external 4GB USB memory stick (1 Watt) was added to the machine. The memory stick can be loaded with many hours of music and the system can play without the hard drive. Since this mode of operation involves no spinning drives, operating the system in a car becomes a practical option. A common iPod FM transmitter would allow the player to be used in an automotive setting where no auxiliary audio input is available.
In all, this project went together rather easily, no major problems were encountered. Audio quality could likely be improved by adding an external USB sound card. A remote control device such as the Wii Remote (covered here) would be a nice addition. The Eee PC features a large amount of hardware capability in a tiny enclosure. It makes an excellent platform for a music player and is capable of much more.
Audio ProjectsD-Bus modifications add optional autodetected support for the D-Bus based server control system. D-Bus is object model that provides IPC mechanism. D-Bus supports autoactivation of objects, thus making it simple and reliable to code a "single instance" application or daemon, and to launch applications and daemons on demand when their services are needed."
Database SoftwareThe PostgreSQL Project today released updates to all active branches of the PostgreSQL object-relational database system, including versions 8.3.6, 8.2.12, 8.1.16, 8.0.20 and 7.4.24. These updates include two serious fixes, for autovacuum crashes in version 8.1 and GiST indexing data loss in 8.3, and those two versions should be updated as soon as possible. These update releases also include patches for several low-risk security holes, as well as up to 17 other minor fixes, depending on your major version of PostgreSQL." web2py 1.56 is out, including a new web site with better documentation".
Embedded Systemsannounced, several new platforms are now supported, among other improvements. FreeRTOS is a: "Mini RTOS kernel for small embedded systems. Preconfigured demo programs are included for lots of microcontroller architectures - ARM7, ARM CORTEX M3, PIC32, PPC405, 8051, AVR (MegaAVR), x86, PIC18, PIC24, dsPIC, HCS12, H8S, RDC, ColdFire, Fujitsu, etc."
Package ManagementThe primary focus on this release has been cleaning up the code-base to make it more maintainable and robust, and also more approachable to invite more community involvement. Code duplications, memory handling and various code pieces have been cleaned up. The local copies of system libraries like db4, lua, popt and libmagic were removed. New APIs have been established and dozens of old bugs have been fixed. A several obsolete features have been removed from the code base. There also have been a number of visible improvements."
TelecomOpenSIPS. "OpenSIPS is an GPL implementation of a multi-functionality SIP Server that targets to deliver a high-level technical solution (performance, security and quality) to be used in professional SIP server platforms. A new module is available in OpenSIPS (called closeddial module). This module is intended to offer a functionality similar to Centrex to OpenSIPS, allowing to define groups of closed dialling, using abbreviated codes."
Audio ApplicationsOn behalf of the developer team, it is my pleasure to announce the latest release of Aqualung, an advanced cross-platform gapless music player. This release is the result of a year's work, much of which has been done by our newly joined developer Jeremy Evans." New interactive commands have been added to query and manage JACK port connections. More options are also now available for setting up ecasound's own JACK ports. Severe bugs in 'playat' and 'select' objects have been fixed. A refactored ECI C implementation fixes bugs and provides improved performance for ECI apps. Many minor bugs have been fixed."
Business ApplicationsThis new version comes with a full review of the web site giving access to more then 1500 pages of documentations on business management and a reorganization of the community sources build upon the Open Object framework. Free cycles of conferences are planned with the version 5.0 release of Open ERP."
Data Visualizationpython-graph is a library for working with graphs in Python. This software provides a suitable data structure for representing graphs and a whole set of important algorithms."
Desktop EnvironmentsThis is the sixth development release, and the first beta, towards our 2.26 release that will happen in March 2009. By now most things are in place, and your mission is easy: Go download it. Go compile it. Go test it. And go hack on it, document it, translate it, fix it."
Gamesannounced. "WFMath, or the WorldForge Math librarys main focus is geometric objects, and it has classes for several shapes as well as the basic math objects, points, vectors, matrices and quaternions. It is required by all WorldForge components. This release is aimed at all developers. Changes in this version: * The headers have been cleaned up to include fewer system headers and dependencies, and keep the namespace a bit cleaner. "
Geographical Softwareannounced. "traveling-salesman is a GPS -route-planning and -navigation -system based on libosm and the OpenStreetMap. LibOSM of Traveling Salesman contains the reference-implementation of the OSMbin file-format. As our implementation now has advanced far enough I am happy to announce the final OSMbin file-format on the OpenStreetMap -dev and -osmosis -mailing lists."
GUI Packagesannounced. "The goal of AnyScreen is to allow simple development of OpenGL applications running on a wide range of modern output devices. Currently, AnyScreen is capable of rendering on multiple displays settings and offers various stereoscopic rendering modes."
Instant MessagingFinally gozerbot 0.9 has been released. This is a huge step forward to version 1.0 and contains a number of changes".
MultimediaElisa is an open source cross-platform media center connecting the Internet to an all-in-one media player. It is written in python using twisted, gstreamer and pigment among others, and runs on GNU/Linux and Microsft Windows (XP and above)."
Music ApplicationsA new version of QJackMMC / JackCtlMMC has been released today, sporting the new ability to select a device ID, a new help system, and several bug fixes. If you have a MIDI device capable of sending Midi Machine Code commands, you can use QJackMMC / JackCtlMMC to control all your JACK-based programs with your external hardware, or even internal ALSA programs that emit MMC."
Office ApplicationsVersion 1.4 of Resolver One, our Pythonic spreadsheet, uses our Ironclad project to provide (alpha-level) support for numpy in a IronPython application. You can put numpy matrices in spreadsheet cells and manipulate them like any other data".
Scienceannounced. "Stellarium renders 3D photo-realistic skies in real time with OpenGL. It displays stars, constellations, planets, nebulas and others things like ground, landscape, atmosphere, etc. This is the first stable version featuring the new Graphical User Interface. It contains all features introduced in 0.10.0 beta (with much less bugs!) as well as: a new script engine (in testing), new translations in Albanian and Bosnian, an improved grid rendering, the possibility to download extra star catalogs in 1 click, and various performance improvements."
Web Browserscovers the release of Firefox 3.0.6. "The sixth minor update to Mozilla Firefox 3 has been released. Firefox 3.0.6 fixes security vulnerabilities, improves stability, improves the ability for scripted commands to work properly with plugins and resolves a handful of other small bugs."
MiscellaneousBleachBit is a Internet history, locale, registry, privacy, and temporary file cleaner for Linux on Python v2.4 - v2.6. Notable changes for 0.3.1: * Clean the cache and temporary files of Acrobat Reader, GIMP, Google Earth, Second Life Viewer, and winetricks. * Clean Firefox version 3's URL history without deleting the entire places.sqlite file (which also contains bookmarks). * Clean more localizations. * Vacuum the Firefox databases (which becomes fragmented). * Fixed bug that blocked cleaning of some localizations for some using Ubuntu 8.04. * Fixed bug that prevented starting BleachBit when the language was not set. * Fixed bug that prevented cleaning of the clipboard." announced. "Tools for localization: Pootle, a web based translation management system. Virtaal, a powerful desktop CAT tool and Translate Toolkit, providing QA, format conversion and support (PO, Java .properties, OpenOffice, Mozilla, XLIFF, TMX, TBX, CSV, Qt .ts) There are far too many improvements to list, but some of the new features include..."
Languages and Tools
CTrunk remains in Stage 4 (regression and documentation fixes mode). GCC 4.4 will be branched when there are no open P1 regressions for 4.4 and the runtime library sources have been converted to GPLv3 with the new licensing exception; the number of P1, P2 and P3 regressions has been below 100 for some time. The licensing exception is waiting for the FSF to confirm to the SC exactly what wording should go in source files using the exception and whether any changes to the exception are to be made to address the possible issues discussed on this list."
JavaThe GNU Classpath developer snapshot releases are not directly aimed at the end user but are meant to be integrated into larger development platforms. For example the GCC (gcj) and Kaffe projects will use the developer snapshots as a base for future versions."
PythonA Python package to parse and build CSS Cascading Style Sheets. (Not a renderer though!)" HDF5 for Python (h5py) is a general-purpose Python interface to the Hierarchical Data Format library, version 5. HDF5 is a versatile, mature scientific software library designed for the fast, flexible storage of enormous amounts of data." itools is a Python library, it groups a number of packages into a single meta-package for easier development and deployment". SciPy is a package of tools for science and engineering for Python. It includes modules for statistics, optimization, integration, linear algebra, Fourier transforms, signal and image processing, ODE solvers, and more. This release comes sixteen months after the 0.6.0 release and contains many new features, numerous bug-fixes, improved test coverage, and better documentation."
Cross CompilersArduino, a development system for the Arduino board, has been announced. "Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments. Arduino can sense the environment by receiving input from a variety of sensors and can affect its surroundings by controlling lights, motors, and other actuators." See the release notes for more information.
IDEsthis is to inform all of you about the immediate availability of the long awaited 4.3.0 release. It includes enhancements in nearly every area. Please see for yourself by downloading it from http://eric-ide.python-projects.org/index.html eric4 is a Python (and Ruby) IDE written using PyQt4 and QScintilla2. It comes with batteries included and is extensible via a built-in plug-in system." announced. "On behalf of the KDevelop team I am happy to announce that we have reached the next milestone on our way to a final release, KDevelop 4 Beta 1. We feel that KDevelop 4, although in no way feature complete, is now usable and stable enough to get first feedback from a somewhat wider audience. Being a beta there are of course still bugs and missing functionality, but we have excellent language support for C++, integration of the CMake buildsystem, subversion, git and even starts of Qt GUI designer integration."
Test SuitesThis release features number of important breakthroughs in LDTP as well as in the field of Test Automation. This release note covers a brief introduction on LDTP followed by the list of new features and major bug fixes which makes this new version of LDTP the best of the breed. Useful references have been included at the end of this article for those who wish to hack / use LDTP." announced. "TestLink is leading open source Test management tool. The fourth 1.8 Release candidate improves stability and usability of TestLink. We solved 38 issues and requests within this build (especially installer and localization). New feature: User notification on testing assignment via e-mail."
MiscellaneousI'm pleased to announce a significant new update to PLY---a 100% Python implementation of the common parsing tools lex and yacc. PLY-3.0 adds compatibility for Python 2.6 and 3.0, provides some new customization options, and cleans up a lot of internal implementation details."
Page editor: Forrest Cook
Linux in the news
Recommended Readingreflects on the issue of insufficient FOSS support from the hardware industry. "They all have some people inside their own organization, most often actual engineers or even engineering managers up to the very senior R&D managers who understand the FOSS model and the benefits that this would or at least could bring to their products and their organizations. They want to release the source, they want to push mainline, and they might even want to release the user manuals. But inside the industry, nobody listens to what their own R&D department or event some external entity - even the very representatives of the operating system they use (Linux). The chip makers will only listen to one thing: Demand from their tier-1 customers. Whatever is in the spec of those who buy their components in millions of units will get implemented. Only those maybe biggest five board-makers are considered 'customer'. Everybody else is not." (Thanks to Paul Wise).
Trade Shows and Conferencespart two of its coverage of the Camp KDE Talks "Sunday again had talks about a large range of topics. The day started a bit late, but Guillermo Amaral really made up for it by providing us with a funny and interesting talk about the opportunities for the Business use of KDE in Mexico. He pointed out how important it is to handle cultural differences well, continuing the theme set by Pradeepto Adriaan and Till." covers Camp KDE. "Camp KDE, the KDE community event of North and South America, has finished. Similar to the European KDE meeting, Akademy, the first two days were based around a series of talks on various topics. After that we moved towards BOF sessions, local discussions and programming. We had a trip to the Appleton Estate, visited Rick's café and had a lot of fun. The following article details some of the things that kept us busy."
Companiesexamines the patent deal between Brother and Microsoft. Given that Microsoft doesn't make printers or even printer drivers, the Brother deal is puzzling. "Slowly, behind the scenes, Microsoft continues to try to portray Linux as risky and Microsoft's patent coverage as insurance. Given that the company selling the insurance is also the one threatening a lawsuit, however, Microsoft needs to step very carefully to avoid the 'extortionist' label. I personally believe that it has already crossed the line and needs to get back to competition between products, not lawyers." reporting that MySQL founder Michael "Monty" Widenius is leaving Sun. It was rumored to be happening last September, but Widenius and Sun worked out an agreement for him to stay for three months at that time—which stretched to a few extra months. "Now, by agreement, and apparently on good terms, Sun and Widenius have parted. 'I still think that Sun was the best possible buyer for MySQL and I feel sad that things didn't work out together', he said, 'I will be available for Sun in helping them with their goals in the open source space'." provides a brief "State of the Union" for Red Hat. "I've been on the job at Red Hat since December 2007, and have had the opportunity to meet hundreds of Red Hat customers, partners, associates and industry leaders. In keeping with the U.S. presidential State of the Union address, I'd like to touch on plans for the upcoming year while also reflecting back to share a few observations from the past 13+ months." (Thanks to Rahul Sundaram) reports on Red Hat's new MRG 1.1 platform. "Linux vendor Red Hat is out today with its newest Real Time Linux platform, MRG 1.1 boasting new performance, messaging and grid computing (cloud) capabilities. The new MRG 1.1 platform marks the debut of Red Hat's commercially-supported grid technology, which helps users create their own enterprise clouds as well as leverage the power of Amazon's EC2 service. Red Hat is also claiming significant performance gains with a new Real Time Linux kernel and improved messaging speeds in a bid to appeal to unique sectors such as government, military and financial services." covers a partnership between Vodaphone and Azingo. "Vodafone has picked U.S. software firm Azingo to develop Linux-based applications, the latest sign the world's largest wireless operator by sales is keeping Linux operating system LiMo as one of its key choices. Privately held Azingo unveiled the deal on Thursday. Vodafone, one of the founding members of mobile Linux foundation LiMo, has stressed the importance of cutting the number of different operating systems, raising some media speculation it could dump LiMo support."
Interviewsan interview with Olivier Fourdan, creator of Xfce. "As Intel's investment into the Moblin OS gets increasing attention, and more non-technical users are introduced to Linux-based platforms in the shape of low-cost netbooks, 2009 will see open-source become more mainstream than ever before. Under the hood there's much that makes Linux safer, more efficient and secure than rival systems, but for most new users it's what they can see on-screen that counts. SlashGear caught up with Xfce creator Olivier Fourdan, whose desktop environment has not only been selected by Intel for Moblin but can be found on many existing Linux netbooks, and talked Intel, Moblin, the future for netbooks and what challenges he sees for open-source newcomer Android." an interview with Colin Turner. "Colin Turner is a dedicated Free Software activist and Fellowship member, working as a scientist and teacher at the University of Ulster in Northern Ireland. He has been advocating Free Software in schools and universities for many years and generously shared some of his experiences with us in this fourth instal[l]ment of our Fellowship interview series."
Resourcesthis overview by Matt Helsey looks at the LXC toolkit, while this article by Serge Hallyn focuses on security issues. "A common response when someone first hears about containers is 'How do I create a secure container?' This article answers that question by showing you how to use Linux Security Modules (LSM) to improve the security of containers. In particular, it shows you how to specify a security goal and meet it with both the Smack and SELinux security modules." updated list of Linux-compatible CRM systems on Linux Journal. "Back at the 2003 OSCON, r0ml Lefkowitz gave a talk called "Six Missing Open Source Projects".The next year he gave a talk titled "More Missing Open Source Projects". At the top of his first list was CRM, or Customer Relationship Management, systems." advice on using both GPL and proprietary software, particularly in mobile phones. He looks at the reasons for keeping some parts closed (DRM or regulatory compliance for example), then offers suggestions on how to handle that safely. "Also, don't look for, and use loopholes in the Open Source licenses. Nothing makes your company look worse than taking unfair advantage of people who provided their work to you without charge, expecting in good faith that you'd honor their license. It also tends to make Open Source folks reluctant to cooperate with your company, the next time you need help with their software."
Reviewscovers HP's release of the Mini 1000 Mi netbook, which features a customized version of Ubuntu. "The operating system is based on Ubuntu 8.04 Hardy Heron, and can run pretty much any application that normally runs on Ubuntu, including OpenOffice.org, Firefox, Thunderbird, Pidgin and so forth with which the OS conveniently comes preloaded. (Youll have to install GIMP, though.) On the other hand, the GUI hardly resembles Ubuntu, according to DownloadSquads Brad Linder." look at new features in Krita 2.0, the KDE painting and image editing application. "In KOffice 2.0, KParts have been replaced by Flake Shapes, as an end result Krita 2.0 has vector layers where you can add any combination of KOffice shapes. Examples of KOffice shapes are vector drawings, text objects or even musical notation objects. These shapes are then rendered at the image resolution and blended with your pixel layers. The same technique is used for vector selections." reviews the Miro 2.0 release. "A major new version of the open source Internet TV and video podcast player brings support for a variety of Web services like Hulu, YouTube, and Legaltorrents.com, a separate video playing window, and a more polished UI. Most of Miro's key drawbacks, however, still remain."
Miscellaneoustakes a look at the new Compiz Council. "Compiz — the compositing window manager responsible for more than a few dropped-jaws — has a long history of ins and outs, not the least of which includes more forks than at a garden club lunch. It seems, however, that things always come back together, and such was the case on Tuesday, as the Compiz community announced the imminent re-merger of several well known forks." covers the demise of the One Laptop Per Child "Change the World" program. "The "Change the World" program, variously known as "Give a School" and "Give 100, Give 1000," offered individuals and groups the opportunity to donate one hundred or more laptops to children in the developing world, and designate where they should be deployed. Through the program, those with ties to particular areas — a sister organization in a developing nation, for example — were given the opportunity to have their donation directly affect children in that area. Morgan Collett, a developer at OLPC, was among the first to report the news, and wrote that several hundred XOs have already been deployed in South Africa through the program, with more in the works."
Page editor: Forrest Cook
Non-Commercial announcementsArdour multi-track audio recorder project has announced a loss of corporate sponsorship. "SAE announced today that they will no longer sponsor the development of Ardour. This puts me (Paul, Ardours lead developer) in the position of being paid solely by the donations and subscriptions made by the Ardour community. This is obviously insufficient to support myself, let alone my family, so I am obviously looking for other opportunities to earn a living. Although I intend to try to improve the revenue that Ardour itself generates, this is unlikely to be sufficient for some time to come." In public comments submitted to the FTC today, EFF explained how DRM, backed by the anti-circumvention provisions of the Digital Millennium Copyright Act (DMCA), impedes innovation and thwarts consumers' rights to make full use of their digital music, movies, software, and videogames. EFF urged the commission to study DRM's effect on competition in the marketplace, investigate whether the effects of DRM are fully disclosed to consumers, and promote a set of "Best Practices" that, if followed, would help alleviate the burdens of DRM for consumers." We are proud to announce that a new GNOME team has been created, focused on desktop testing automation. If you have ever wondered how could you test your application writing scripts that mimic what a normal user would do, join us in this new effort. We have a mailing list, a wiki page with documentation and a SVN module with the initial work that we have done, but we need more people to get involve to make GNOME better and better."
ResourcesThe Python 2.6 Quick Reference is available in HTML and PDF formats at http://rgruet.free.fr/#QuickRef."
Meeting MinutesThe minutes from the January 7, 2009 Perl 6 Design Meeting have been published. "The Perl 6 Design Team met by phone on 07 January 2009. Larry, Jerry, Allison, Patrick, Jesse, and chromatic attended."
Calls for PresentationsWe have also extended the conference by two days so that we can have sprints. The dates are now as follows: May 4th - 6th (Main conference) May 7th - 8th (Sprints) Call for participation ends on 1st March, so please ensure you have submitted your talk before then".
Upcoming EventsCloud Slam 09 has been announced. "The world's leading experts and authorities in cloud computing to convene on April 20-24 at Cloud Slam 09 to analyze and uncover top trends and challenges." announced. "Lend Your Voice to this Crucial Discussion as America Transitions to a New Era Arguably, the unique elements of the 2008/2009 recession combined with a change in administration and governing philosophy constitute a unique historical moment as demonstrated by ongoing events..." The event takes place on February 20 in Los Angeles, CA. The Free Software Foundation has announced LibrePlanet 2009, an expansion of its traditional annual meeting to a two-day event. The event will be held in Cambridge, MA, on March 21st and March 22nd, 2009, and in addition to presentations from FSF staff and board members will include a full "unconference" day of work oriented toward progressing free network services and other areas important to the free software community as outlined on the FSF's High Priority Projects list." From hackathons in Africa to a neutrino detector at the South Pole; from massive multicore machines to tiny embedded wireless devices; and from mobile phones to distributed heterogeneous networks, talks at Pycon 2009 demonstrate how Python is being used in places and in ways that will startle even longtime Python users. Python continues to branch out across software platforms as well, with several talks covering the growing use of IronPython and Jython on the .NET and Java platforms." Free and Open Source software can save you money. Whether you're running a business or are a computer user, FOSS software is high-quality software that can be quite inexpensive. Smart organizations know that, and they come to SCALE, and sponsor SCALE. And because the FOSS community continues its vibrant growth unabated, there were more than enough organizations to fill the "dotORG" booths at this month's Expo: SCALE is full!" announced the SOA in Healthcare conference. "OMG, Health Level Seven (HL7), and the SOA Consortium announce the SOA in Healthcare: Value in a Time of Change, conference held June 2-4, 2009 at the Hyatt Regency OHare in Chicago, IL. Registration details may be found online at http://www.omg.org/hc-std." The conference will take place three days after the most insane street carnival in the world in Recife, Brazil, on 28th February 2009 and will also feature trainings sessions on 26th and 27th. If you are outside Brazil and plan to attend to uCon, please contact us if you need any assistance on your travel. Carnival and hacking in a row, rather unique. Don't miss the chance." Google, as part of Google's ongoing commitment to encouraging women to excel in computing and technology, we are pleased to announce the 2009 Google UKUUG Student/Developer Conference Grant to encourage more female computer scientists to attend and participate in the UKUUG 2009 Conference, 24-26 March, London."
|Black Hat DC Briefings 2009||Washington, D.C., USA|
|February 20||Demonstrating Open-Source Health Care Solutions||Los Angeles, CA, USA|
|Southern California Linux Expo||Los Angeles, CA, USA|
|VMworld Europe 2009||Cannes, France|
|German Perl Workshop||Frankfurt Main, Germany|
|February 27||PHP UK Conference||London, UK|
|February 28||Belgian Perl Workshop||Leuven, Belgium|
|February 28||uCon Security Conference||Recife, Brazil|
|Global Ignite week||Online|
|CeBIT 2009||Hanover, Germany|
|DrupalCon DC 2009||Washington D.C., USA|
|March 6||Dutch Perl Workshop||Arnhem, The Netherlands|
|March 7||Ukrainian Perl Workshop 2009||Kiev, Ukraine|
|Bossa Conference 2009||Recife, Brazil|
|Advanced Ruby on Rails Bootcamp with Charles B. Quinn||Atlanta, GA, USA|
|O'Reilly Emerging Technology Conference||San Jose, CA, USA|
|Pingwinaria 2009 - Polish Linux User Group Conference||Spala, Poland|
|March 14||OpenNMS User Conference (Europe) 2009||Frankfurt Main, Germany|
|Chemnitzer Linux Tage 2009||Chemnitz, Germany|
|Android Bootcamp with Mark Murphy||Atlanta, USA|
|CanSecWest Vancouver 2009||Vancouver, BC, Canada|
|March 18||Linuxwochen Österreich - Klagenfurt||Klagenfurt, Austria|
|Libre Planet 2009||Cambridge, MA, USA|
|iPhone Bootcamp||Atlanta, Georgia, USA|
|Google Summer of Code '09 Student Application Period||online, USA|
|ApacheCon Europe 2009||Amsterdam, The Netherlands|
|UKUUG Spring 2009 Conference||London, England|
|PyCon 2009||Chicago, IL, USA|
|Free Software and Beyond The World of Peer Production||Manchester, UK|
|March 28||Open Knowledge Conference 2009||London, UK|
|Solutions Linux France||Paris, France|
|Web 2.0 Expo San Francisco||San Francisco, CA, USA|
|PostgreSQL Conference: East 09||Philadelphia, PA, USA|
|Flourish Conference||Chicago, IL, USA|
|CELF Embedded Linux Conference||San Francisco, CA, USA|
|Linux Storage and Filesystem Workshop||San Francisco, CA, USA|
|Linux Foundation Collaboration Summit||San Francisco, CA, USA|
|April 14||OpenClinica European Summit||Brussels, Belgium|
|April 15||Linuxwochen Österreich - Krems||Krems, Austria|
|Nordic Perl Workshop 2009||Oslo, Norway|
|Linux Audio Conference 2009||Parma, Italy|
|Linuxwochen Austria - Wien||Wien, Austria|
If your event does not appear here, please tell us about it.
Web sitesA new site, "http://www.openproofs.org/", has been set up to encourage the development of "open proofs". The site defines "open proofs" as "software or a system where all of the following are free-libre / open source software (FLOSS): * the entire implementation * automatically-verifiable proof(s) of at least one key property, and * required tools (for use and modification)"".
Page editor: Forrest Cook
Copyright © 2009, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds