Open Source

Open Source LogoFree and Open Source Software is not just a means to get software and support without having to pay for it! Free and Open Source Software burdens a responsibility upon those who use it: To be open to learning new things and to contribute back. If you can’t or don’t want to do that, then you should probably rather use closed source software. See also the “official” definition of Open Source.

I consider Free and Open Source Software to be a chance to work on great projects with lots of skilled people all over the globe. I consider it being the only sane chance to enforce a high quality for certain kinds of projects… operating systems come to mind, but not only these.

All my contributions to the following Free and Open Source projects have been done in my spare time. If you like the idea of community-developed software, if there is a project that is relevant to you, or if you just want to support these kind of activities, then donating via PayPal is a good means to say “Thank you!”

Ångström

Ångström was founded in 2005/2006 as a new Linux Distribution dedicated to embedded devices like handhelds, smartphones and set top boxes. Ångström was started by a subset of people working on the OpenEmbedded, OpenZaurus, Familiar Linux and OpenSimpad projects. The idea is to unify release efforts to create a stable and userfriendly distribution tailored for devices running a modern Linux 2.6 kernel.

I used to work on OpenEmbedded integration, device customization, and GUI tools for a rich user experience. After having too many other projects, I have resigned from the core team in 2009.

OpenEZX

The OpenEZX project aims to provide a 100% free software stack for the Motorola EZX GSM Phone platform.

I have ported the Opie Hardware Abstraction Layer to the EZX platform and integrated the phones into the OpenEmbedded build system. I also used to work on peripheral kernel drivers like LCD backlight control, LEDs, keyboard, touchscreen, etc.

These days I’m working freesmartphone.org support for the OpenEZX kernel.

Enlightenment & EFL++

The Enlightenment Foundation Library (EFL) contains solutions for almost any graphical interface task, far beyond just rendering images:

  • Eina is a data structure library.
  • Evas supports a highly optimized canvas.
  • Ecore provides a simple and modular abstraction interface and advanced event management including timers.
  • Eet is an integrated and flexible container that ends the traditions of providing themes in tarballs.
  • Edje provides a revolutionary library and tool set for completely abstracting application interfaces from their code, including a complex and flexible method of designing interfaces.
  • Elm provides a complete widget library built on top of the EFL core libraries, optimized for modern, finger-usable interfaces.

The graphical libraries are not only usable with X11 but also with a barebones frambuffer, which makes them very attractive for lightweight utilities and applications targetted at embedded systems.

I have contributed a tslib touchscreen driver backend to ecore and have created C++ bindings for the major EFL components. These days i’m concentrating on the Vala programming language, hence I maintain the Vala bindings for the EFL.

OpenSIMpad

OpenSIMpad was a Linux Distribution for the SIEMENS SIMpad family of devices, a web pad with a 800×600 touchscreen. SIEMENS sold these devices with a customized WindowsCE version, but due to their questionable marketing and pricing, the devices more or less didn’t succeed on the market.

I did the OpenEmbedded integration and worked on porting Qt/Embedded and Opie to the SIMpad.

Because of the disappointingly low community activity, I sold my SIMpad and quit working on this project. As a last contribution, I helped to integrate the SIMpad device specifics to the Familiar Linux distribution where it found a good home.

OpenEmbedded & BitBake

OpenEmbedded is an award-winning set of recipes and metadata to build Linux distributions for embedded devices from scratch. OpenEmbedded uses the BitBake build system which is a highly configurable, flexible dependency parser, and task execution tool.

I’m one of the three OpenEmbedded founders. I have been working on the BitBake core and am responsible for a number of build classes in the OpenEmbedded metadata repository, most notably opie.oeclass, palmtop.oeclass, module.oeclass, and distutils.oeclass. I’m also listed as the maintainer of too many build recipes :)

The interactive BitBake Shell (bitbake -i) is my baby as well and I’m advocating the use of OpenEmbedded to other groups and companies that are still using limited hand-crafted build systems to build their distributions.

OpenZaurus

OpenZaurus is an award-winning alternative Linux Distribution for the Sharp Zaurus PDA family. OpenZaurus is built from the ground and contains only free software. It incorporates a modern Linux 2.6 kernel and is built with modern compilers as opposed to the proprietary Sharp Embedix based on Linux 2.4 kernel and gcc 2.95.3. OpenZaurus offers a variety of console tools and GUI environments, e.g. GPE, Opie, Enlightenment, and XFCE.

I joined the OpenZaurus team in 2002 and have been developing and maintaining OpenZaurus from 2003 to 2005. In order to get the new unified Ångström Distribution off the grounds, I handed off the OpenZaurus release maintainer position to Marcin ‘hrw’ Juszkiewicz, who did a good job until OpenZaurus was deprecated in favour of Ångström.

PyQt

PyQt is a set of Python bindings for Trolltech’s Qt application framework and runs on all platforms supported by Qt including Windows, MacOS/X and Linux.

I contributed minor patches to PyQt including support for Qt/Embedded 2.x and embedded build configurations that involve builds leaving out optional features in Qt. I’m also maintaining the PyQt recipes in OpenEmbedded.

Python

Python® is a dynamic object-oriented programming language that can be used for many kinds of software development. It offers strong support for integration with other languages and tools, comes with extensive standard libraries, and can be learned in a few days. Many Python programmers report substantial productivity gains and feel the language encourages the development of higher quality, more maintainable code.

I am maintaing an own fine granular package based Python distribution tailored for embedded systems.

OpenWinCE

The openwince project collects free open source software tools, modules, applications, drivers, etc. for Windows CE platform developers. Some of their tools, i.e. the openwince JTAG utility, are also useful for Embedded Linux programmers.

I have contributed a JTAG utility chip driver for a rare variant of Xilinx XCR3128Xl-VQ100 flash chips with Philips manufacturer ID.

Opie

The Open Palmtop Integrated Environment (Opie) is a framework and a collection of applications for Embedded Linux devices. Opie started out as a fork of the TrollTech Qtopia (former QPE) environment when it was showing that the development model was not open enough to allow a cooperative developed platform.

After I bought my first PDA, the Sharp Zaurus SL-5500G, I joined the Opie Team 2002 with my first contribution to opie-sysinfo. Later, I added a wireless signal strength monitor applet to the Opie taskbar. Subsequently I became involved in certain parts of the Opie core and started work on the next generation libopie which was supposed to become a part of the Opie Development Platform 2.0. Besides that I was responsible for

  • Wellenreiter II : (a wireless security auditor),
  • Opie-Camera (a photo and video capturing application), and
  • Opie-Networkapplet (a soon-to-be-versatile network applet).

From 2004 until 2006, I co-maintained the project and updated the community by participating on mailing lists and forums plus keeping an eye on the integration of Opie into the OpenEmbedded build system and its distributions. Due to my increasing amount of “professional” activities and the frustrating non-cooperation with upstream (read: Trolltech), I stopped contributing to Opie.

Vala

Vala is a new programming language based on the syntax of C# and the semantics of the G object model. It combines the speed of a compiled language with the elegance of a high level language — without any runtime penalties or requiring support libraries.

I have contributed a number of bindings such as for alsa, libcanberra, libnl, EFL, and linux. I’m also helping with testing bleeding-edge stuff in my own projects.