Hire Me!

Dreambox 8000


written by Mickey on 2009-07-22 Click to comment

After the sudden death of my Dreambox 7025, the new OE-based device in the living room is a Dreambox 8000 -- simply the best set top box money can buy these days. Yes, it's quite expensive, but the hardware is fully loaded (heck, there's even WiFi) and the freedom to install what you want is invaluable.





Openmoko Workshop in Munich


written by Mickey on 2009-07-02 Click to comment

I'll be present at the first Openmoko Workshop in Munich, gracefully organized by Dr. N. Schaller (Goldelico) hosted at the University of applied science in Munich. Topics will be developer-oriented, but beginners are also invited. There are only few seats left, so please contact Dr. Schaller via the freeyourphone.de forum, if you want to be on board.

I'll be talking mainly about freesmartphone.org -- the beginning (2002-2008, from handhelds.org to openmoko.org), the present (2009, how to program with FSO), the future (2010-, what the Vala rewrite will bring and how we get FSO to more hardware).

This is just a loose gathering to get started. If there is sufficient interest, we will consider turning this into a more formal (professional) training course in the future. Hope to see you there!





POS will die


written by Mickey on 2009-06-27 Click to comment

From everywhere you hear the whining and complaints of local points of sale that the internet is taking away their business foundation. Whenever I buy a new device, I try to countervail this effect by going to my local shop to buy it there instead of doing the couch potato buying it over the internet. However 9 out of 10 times I get disappointed by them not having what I want in stock. If I wanted to order it to get it later, I had ordered it online in the first place :(

This morning I went to a local shop to buy a new communications device with a contract -- these point of sales get quite a nice provision when people buy contracts. To my surprise, they had the device I wanted in stock and I felt growing excitement. Then I grabbed a piece of paper showing them a special employee rebate code I got from another employee and guess what... "oh, with these kinds of rebates devices can only be ordered at the support hotline"... WTF?

With this policy, points of sale will die -- it's inevitable. They are digging their own grave and I have no more symphathy.





LinuxTag 2009


written by Mickey on 2009-06-24 Click to comment

I'm on my way to LinuxTag 2009. Instead of a "real booth" like last year, we settled on a developer table in the hacking area -- there we can present our Linux on mobile projects such as

in a more relaxed way -- giving room to dive into some technical issues, when interested folks come around.

Find me there, if you're interested in any of the aforementioned projects. I'll be there until Friday afternoon.





Sid Player 1.2.49


written by Mickey on 2009-06-12 Click to comment

We have just submitted Sid Player 1.2.49 to Apple. Highlights of changes in this revision include:

and finally the first step towards the #1 wanted feature...

Although we wanted to ship more smaller updates, this one has become a major update and took us a while. I hope it gets past the review pretty fast, so you can enjoy our latest work!

NB: The newest iPhone 3G[S] excited us a lot, especially since we already max out CPU power on the current models. We're looking forward to enabling stereo and to add some nice post processing effects in a special Sid Player version once this model is out. Stay tuned!

NB2: Yes, we know that the HVSC team has released v50, however they have substituted a lot of PSID versions with RSID versions, which -- although they might sound better -- do no longer play given the limited CPU power of the iPhone and iPod Touch. I'm sorry, but until faster models appear, we can not ship the updated SIDs...





I'm in love


written by Mickey on 2009-05-13 Click to comment

10 years of sound modelling research have just been unleashed:

Roland V-Piano -- No Samples Inside!

Roland V-Piano. No Samples Inside!





Resigning from OE Core Team


written by Mickey on 2009-04-25 Click to comment

I have just sent a mail to the OE core team that I'm resigning as a member of said "core team". I will also give up administration of mailing lists, my position as OpenEmbedded e.V. board member, and taking care about the git/web/etc. services machine.

I have been with OpenEmbedded since the beginning, together with Chris and Holger I founded it in 2002/2003, and although we had our ups and downs, over the years we always managed to keep the spirit of openness and friendlyness alive. However -- over the last 12 months, I have experienced some very unpleasant incidents in how certain members are treating other contributors, scaring them away, coldheartedly enforcing policies that are meant to be bendable guidelines, etc.

This is no longer a project where I feel my contributions are welcome. The core team failed to do its job as a moderate and balanced steering committee -- it is apathetic and just bows down to the will of the most vocal single indviduals. I'm utterly disappointed by the amount of carelessness.

Whether I will fork OE as a whole or maintain my own branch on the main server or somewhere else I have not decided yet.





Back from Switzerland


written by Mickey on 2009-04-04 Click to comment

Just came back from Berne where the bi-annual OpenExpo was held. The OpenExpo is one of my favourite conferences, since it's very professionally organized, has a rich mix of interesting topics and talks while retaining the very friendly characteristic spirit of switzerland -- which I like a lot.

Sean Moss-Pultz from Openmoko Inc gave a talk in the "business" track, while I gave a talk in the "technology" track. Videos of both tracks are available here [actually, the business track is still missing, the technology track is already there though] -- please watch them before continuing reading. Sean "shocked" the world with a very honest retrospective and a description of the state of Openmoko right now, while I layed out the fragmented state of Linux on mobile and the way freesmartphone.org attempts to improve this situatin.
Most facts have been detailed elsewhere, so I will not just repeat these, but rather state what it means for the movement of Linux on open mobile devices.

Neo 1973 and the FreeRunner

There is absolutely no reason to worry about support for the existing devices. Both the Neo1973 and the FreeRunner are in pretty good shape these days and will be supported by the forthcoming operating system upgrade, Openmoko 2009. Plus you have access to half a dozen of community distributions. If you happen to be plagued by the gsm-buzz problem on the FreeRunner, please join one of the de-buzzing initiatives -- there will be multiple ones. Other than that, the FreeRunner and parts are still in stock in high numbers.

Openmoko, Inc.

I have been with Openmoko, Inc. since the beginning. In fact, I'm employee number #3, #2 being Harald 'LaF0rge' Welte, who quit in 2007, #1 being Sean Moss-Pultz himself. I'm sad that things needed to be put on hold, but there are no hard feelings whatsoever towards Openmoko. In fact, I hope that the new product will be a huge success (I will buy one or two), so that the open phone can be restarted -- and if so, I would not mind to be a part of it again.

freesmartphone.org

As the FSO team is now without funding, we will continue working on it in our spare time, as much as we did work before Openmoko came around. We will however, a) look for new funding and b) slightly change priorities to support more other hardware, like the HTC anti-vendor-ports. All of us 100% believe in the ideas of

The Openmoko devices are and will remain our reference platform, since they're the only fully open ones. If you want to work on freeing more closed devices, be our guest! We are concentrating on middleware and helping application developers to create compelling applications based on the FSO middleware. We can not cover kernel support though. We will soon come up with a comprehensive table of FSO-compliance levels to indicate what level of support the FSO middleware expectes from the kernel. By that we hope to motivate anti-vendor-port communities (such as OpenEZX, Gnufiish, HTClinux) to uplevel their devices towards standard kernel interfaces and to establish more horizontal communication between those hardware-inspired communities.

Epilogue

Yes, Openmoko halting telephony is slowing the movement down. No, it's not killing it. Neither is it a sign that free software on mobile phones does not work or lacks demand. Many of us want free platforms. And no, Android is not it. Yes, it may be open enough for some people, and it may take lots of developers from Windows Mobile. But it does not bring more free hardware nor free infrastructure.

Cheers,

:M:





Back from Aalborg


written by Mickey on 2009-03-26 Click to comment

Just returned from FOSS.Aalborg '09 where I held a talk about OpenEmbedded. It's been my second time in Aalborg (first time was Mobile Developer Days '07) and it's been a nice and informative experience. Met some folks doing amazing things with embedded. Everything was organized very professional and the presentations were interesting -- particularly the talk about security which was held by two guys from the OpenBSD project. OpenBSD has never really been on my radar, although according to what I've seen in the presentations it seems to be of really high quality. I guess I'll give it a look soon.

Next week I'll be in Bern for OpenExpo '09. In May, the first FSOSHRCON and in June LinuxTag'09 are planned and perhaps FrOSCon again in August, but other than that, I pretty much try to stay at home for the remainder of this year.

Btw., there's free WiFi on Aalborg Airport -- that's the spirit!





Catching up and plans for 2009


written by Mickey on 2009-02-17 Click to comment

I felt it's time to recap the stuff that kept me busy the last months and give you an overview over the achievements planned for this year -- always focusing the free software movement, of course.

freesmartphone.org

Let's start with the major project I've been working on, the freesmartphone.org project, funded by Openmoko, Inc. FSO grows, and it grows in the right directions. We get more API customers -- notably the SHR project and the Paroli project -- and refine our API and the reference implementation. The 5th milestone has just been released and apart from a major foobar with read-only partitions, it's pretty good. We are going to fix this OE-inheritance and release a milestone 5.1 in a couple of days.

fso-abyss (GSM 07.10 Multiplexing)

For some modems -- e.g. the TI Calypso (see my previous post on ogsmd and its modems) -- until now we have relied on pyneo's gsm0710muxd. Over the last weeks we found some severe problems (race conditions, buffer overflows) with this though, so I thought I have a shot at developing my own GSM 07.10 Multiplexer.

The result is called fso-abyss and is -- as with all our software -- available at git.freesmartphone.org under a free software license. The major difference to gsm0710muxd is the architecture (and maintainability). While gsm0710muxd combines talking to the serial ports, the pty's, handling dbus queries, and doing modem specific things, fso-abyss went a different route.

At the heart there is a minimal protocol engine implementing GSM 07.10. Since there was already something available in Qtopia -- even nicely seperated without any external dependencies -- I took that one and factored it out in a dedicated project called libgsm0710 (available in git as well). The idea here is that different interest groups can collaborate on getting the protocol engine right, since not everyone wants a DBus frontend such as implemented in fso-abyss. The next step was writing a VAPI file for glueing the protocol engine to Vala (more about that one in a bit), which has been used to develop the upper layers of fso-abyss.

Last but not least, there was the pty implementation, the serial port communications abstraction, and finally the dbus server. The DBus API originally designed in cooperation with pyneo has been enhanced to feature the additional features (only) present in fso-abyss. Apart from the architecture, fso-abyss also can handle virtual serial port signalling, 07.10 test commands, automatic session handling, has a wakeup service, and more. Next up is adding support for the Cinterion mc75i which has some proprietary extensions to GSM 07.10 Basic Multiplexing.

dbus-hlid (DBus High Level Introspection Daemon

Modern DBus APIs are pretty dynamic, i.e. objects can come and go at any time. Depending on the hardware, you may find more or less objects of a certain kind. You can now add infrastructure to query the objects (essentially a duplication of what DBus should provide), or just rely on the existing DBus introspection API. Unfortunately this API is missing some critical features to make it really usable, such as querying objects that implement a certain interface.

So I took the plunge and factored this out of the freesmartphone.org frameworkd, since it has broader use. This is the API for it (as introspected by mdbus):
root@om-gta02:~# mdbus -s org.freesmartphone.DBus /org/freesmartphone/DBus [METHOD] org.freesmartphone.DBus.ListBusNames() -> ( as:result ) [METHOD] org.freesmartphone.DBus.ListObjectPaths( s:busname ) -> ( ao:result ) [METHOD] org.freesmartphone.DBus.ListObjectsByInterface( s:busname, s:iface ) -> ( ao:result )

Here are examples of how you can use it (demonstrated within a Python shell):
>>> hlid.ListBusNames() [ 'org.freedesktop.DBus', 'org.freesmartphone.omuxerd', ':1.21', 'org.bluez', 'org.tichy.launcher', ':1.13', ':1.0', 'org.freesmartphone.frameworkd', ':1.14', ':1.1', ':1.2', ':1.3', ':1.4', 'org.freesmartphone.ogsmd', ':1.6', 'org.freesmartphone.DBus']

>>> hlid.ListObjectPaths("org.freesmartphone.ogsmd") ['/org/freesmartphone/GSM/Device', '/org/freesmartphone/GSM/Server']

>>> hlid.ListObjectPaths("org.freesmartphone.odeviced") [ '/org/freesmartphone/Device/Audio', '/org/freesmartphone/Device/CPU', '/org/freesmartphone/Device/Display', '/org/freesmartphone/Device/Display/0', '/org/freesmartphone/Device/Display/gta02_bl', '/org/freesmartphone/Device/IdleNotifier/0', '/org/freesmartphone/Device/Info', '/org/freesmartphone/Device/Input', '/org/freesmartphone/Device/LED/gta02_aux_red', '/org/freesmartphone/Device/LED/gta02_power_blue', '/org/freesmartphone/Device/LED/gta02_power_orange', '/org/freesmartphone/Device/LED/neo1973_vibrator', '/org/freesmartphone/Device/PowerControl/Bluetooth', '/org/freesmartphone/Device/PowerControl/UsbHost', '/org/freesmartphone/Device/PowerControl/WiFi', '/org/freesmartphone/Device/PowerSupply/ac', '/org/freesmartphone/Device/PowerSupply/adapter', '/org/freesmartphone/Device/PowerSupply/apm', '/org/freesmartphone/Device/PowerSupply/battery', '/org/freesmartphone/Device/PowerSupply/usb', '/org/freesmartphone/Device/RealTimeClock/0', '/org/freesmartphone/Device/RealTimeClock/rtc0']

>>> hlid.ListObjectsByInterface("org.freesmartphone.odeviced", "org.freesmartphone.Device.LED") [ '/org/freesmartphone/Device/LED/gta02_aux_red', '/org/freesmartphone/Device/LED/gta02_power_blue', '/org/freesmartphone/Device/LED/gta02_power_orange', '/org/freesmartphone/Device/LED/neo1973_vibrator']

fso-monitord

While working on implementing GSM time(zone) support for ogsmd, we found we had too few samples, especially since time(zone) information are only sent by few providers all over the world. Moreoever, we missed a generic means to record all the data the frameworkd is sending out via its signals, such as:

To support this (and more), we came up with fso-monitord, which is available from git as well. fso-monitord logs its data to a flat file format that you can send to us to improve our databases or for debugging. We also figured this would be the best place to add a generic frameworkd watchdog -- monitoring all fso components -- shutting down or restarting components as necessary and also logging incidents such as API violations.

What's next in FSO?

For milestone 5.5 (due end of march), we have two major features on the roadmap, namely bluetooth networking (headset profile) and extended PIM support. Milestone 6 will then sport full-fledged networking.

Beyond milestone 6 -- apart from one major thing, which I'll cover in a second -- we only have some rough plans, such as revamping or refining the subsystems we're not perfectly happy with (oeventsd and opreferencesd come to mind). Also, alsa audio scenario handling is broken by design, but this is something we have to take up with upstream.

The freesmartphone.org reference implementation has been progressing incredibly fast. This is partly due to choosing Python as the implementation language (which has been a wise choice) of our DBus APIs. Now you all know that although I truely love Python (I even wrote a book about it) and try to use it everywhere it fits, I'm very well aware that for the future of the freesmartphone.org project, it might be important to come up with a frameworkd reimplementation in a compiled language -- to reduce the footprint and squeak every possible bit of performance out of the (embedded) system.

This is why I have decided to encourage a second reference implementation. This one will be written in Vala (I might have mentioned it before, did I?) which is an incredible combination of elegance and performance, featuring a complete lack of any runtime penalties and additional dependencies. It's simply amazing and I'm seriously thinking about writing an introductionary book about Vala later this year.

Anyways, back to the topic, the first bits of this Vala implementation has landed in the freesmartphone.org git in the form of the very successful GSoC project odeviced, written by Sudarshan S. Stay tuned for some amazing FSO runtime speedups coming in autumn and winter this year to your device.

XeTex

Next to writing software for the freesmartphone.org project, I also found some time to pick up working with my favourite writing tool LyX. LyX, which could be described as a LaTeX frontend, nowadays features integration with the new LaTeX variant XeTex. In contrast to other incarnations such as pdfLaTeX, XeTeX can utilize system fonts such as AAT or OpenType, which are the latest technology in computer-assisted typesetting.

I can now use my "corporate" fonts FF Meta and FF Meta Serif from LyX -- amazing!

Conferences

Although still working on cutting down my travelling, I can't miss some conferences this year. I managed to skip FOSDEM, which made me a bit sad, but I'll be compensated by attending

and possible some more... This year my main topics will be OpenEmbedded and freesmartphone.org -- both dedicated to reducing the fragmentation of Linux-based embedded systems and to ease writing software for mobile devices running free and open source software. I hope we'll bump into each other at one of these occasions.

Stay tuned!