Although I’ve been a regular at FOSDEM for a few years now, I’ve been rather poor in ensuring my notes got onto this blog. In advance of FOSDEM 2012, I’m publishing previous years’ notes. Here’s 2010.
The Free and Open Source Developers’ European Meeting (FOSDEM) is an annual free and non-commercial event organized by the community, for the community. It’s a two day event organized by volunteers to promote the widespread use of Free and Open Source software and to provide Free and Open Source developers a place to meet. The event takes place in Brussels and has been running since 2000. In recent years attendance has been in the region of 4000, and in 2010 the attendance was closer to 6000. The event is hosted by the Université Libre de Bruxelles.
I presented two LiMo talks: “LiMo Platform and Mobile Linux” and “Mobile distributions and upstream challenges“. I also attended a good number of talks, which – due to my employer at the time – mostly had a strong mobile and embedded focus. Some of the highlights included:
Embedded software development best practices (Adrien Ampelas)
Adrien gave a complete end-to-end guide on how to do embedded platform development. He covered everything from source control, to build mechanisms and quality, to code review and distribution. The talk identified many issues that open mobile platforms do not address.
One slide in particular that appealed to me on build processes applies equally well to any software development environment: how long does it take a developer to get up and running?
FreeSmartphone.org and D-Bus (Michael Lauer, OpenMoko)
OpenMoko was hardware and software combined in a single device. The device is now dead, the software lives on. FreeSmartPhone.org (FSO) is the community software platform that has developed out of the ashes of OpenMoko.
What is FSO intended to be? A collaboration platform, a bottom-up stack, and a reference implementation. The heavy focus is on working software in real hardware with constant innovation/improvement on top. The goal is to close the middleware gap. ie. “middleware for mobile phones”. It is deliberately not positioned as a standards effort like LiMo Foundation/LiPs.
There’s heavy reuse of pre-existing components both within community source and old OpenMoko (eg. phone stack). D-Bus facilitates good architecture because it permits separation of business logic from UI. Lightweight, language independent UI independent, P2P and P2M IPC process communication enabler. D-Bus architecture involves a system bus and per user session bus. Methods and signals handle P2P and P2M. Get/Set for fast operations, list/retrieve for slow operations.
- > “mdbus -s” to enumerated system bus services
- > “mdbus -s org.freesmartphone.ogsmd” to talk to SIM app toolkit
One D-Bus interface can expose multiple objects.
- > “cli-framework” gives you a Python command line to D-Bus operation on FSO
Using it everything you can do programmatically with D-Bus can be done interactively which is very cool for demos.
Python D-Bus support: “One small step for programming, one giant leap for middleware”. FSO has control logic all written in Python for faster development time. BUT Python is slow! Also, an interesting comment: people are afraid of using scripting languages in embedded devices. FSO2 has been entirely rewritten in Vala – a high level language that can be compiled to generate C. FSO2 has libmsmcomm (Qualcomm MSM) and libgsm0710 modem (from OpenMoko). The OpenMoko team are looking in 2010 to port FSO2 to OpenMoko Neo FreeRunner, Palm Pre, and HTC Dream.
FSO2 initiative is very interesting – they’re focussing on how to build a mobile Linux platform not as a bunch of disconnected static APIs but as a living system of methods and signals mediated via IPC. The “APIs” are entirely exposed through D-Bus and developers interact with system components/services through D-Bus.
SHR (Thomas Zimmerman)
Stable Hybrid Release (SHR) is the Reference UI for FSO1/2. It’s gradually going to phase over to FSO2 (Cornucopia) in 2010. You build an SHR-based image with a single makefile. There are a set of user side daemons:
- phoneuid: UI daemon which caches views for performance
- libphone-ui-shr: main UI library providing dialler, contacts, messages
It’s based on X.Org Xserver 1.7.4, E17 Illume (Enlightenment).
An FSO-SHR Conference was planned for 2010.
hackable:1 (David Wagner)
hackable:1 is a Debian distribution for ‘hackable’ devices. It works by maintaining patchsets and building debian packages by downloading vanilla upstream, applying patches, and compiling for specified target. The focus is on providing a stable and easy to use development environment. It provides a much cleaner way of maintaining downstream changes. It provides a basic platform including simple UI. It’s supported by a Parisian openmoko reseller and ISP.
Tracker and SPARQL (Rob Taylor, CodeThink)
Tracker is an RDF semantic store. ie. a “nosql” approach to data storage – even though today it has an sqlite backend. Metadata is associated with a file through tags which can then be queried to present data in interesting ways. Rob demoed a clutter-based applet that was sorting/sifting photos and twitter feeds. It was written in 200 lines of js and backed by a tracker database being queried using SPARQL. See labs.codethink.co.uk.