Hire Me!

Collaboration Launch on PhoneServer and DeviceDaemon

Mickey · November 27, 2007 · Comment

With a subtle delay of something like 11 months, I managed to visit the friendly guys from Kernel Concepts in Siegen last week. The most important subjects were how to move forward with regards to a phone server and device daemon collaboration. Here is a short summary what these two things are, why we need them, and what we are going to do.

PhoneServer

A phone server encapsulates the access to the telephony subsystem. It is necessary to allow multiple clients query the state of the subsystem and to perform operations taking non-functional requirements like concurrent access, security, information caching, and quality of service, etc. into account. Similar components can be found in lots of closed source smartphone platforms. The free software community is still missing such a component. Yes, there are first approaches in OpenMoko (libgsmd), Qtopia unavailable, GPE Phone Edition unavailable, and probably more, but neither one supports all our requirements on such a component.

I have been reluctant to think about a phone server until being more certain about its place in the platform and the way it should talk to both the upper layers and the lower layers. As reported in previous installments of this column, by now I am sufficiently convinced that dbus is the proper abstraction (and collaboration) line, hence the phone server needs to talk dbus.

We will now start to work on a minimal dbus interface specification of the phone server. Since the folks that brought us the GPE Phone Edition have good contacts to the Linux Phone Standards forum, we are expecting input from people who have tons of experience with telephony APIs. However, this will not just be a completely free and open specification process, but also backed up by code – in the good tradition of FOSS projects. So, I’m inviting everyone and their brother to collaborate on this telephony API. Especially application programmers, please tell us which syntax and semantics you prefer. I have just opened the freesmartphone.org wiki and will fill it with some of our initial thoughts soon.

The first milestone will be a phone server that talks to libgsmd, although I’d love to see a backend for the Qtopia gsm code as well. I’m very happy to see Ixonos’ work on gsmd2 unavailable, I’m sure this also will be some valuable input for us – perhaps even an alternative backend or more!

DeviceDaemon

The other thing everyone wants but seems reluctant to work on is a peripheral device daemon. Throughout my involvement in the embedded Linux community I have seen dozens of those daemons in different flavours, all more or less device specific, hardcoded, not extensible, etc. I myself have implemented more than one hardware abstraction layer from scratch. The desktop world has HAL, OpenMoko has neod, GPE Phone has machined unavailable, the Zaurus guys have zaurusd unavailable, Opie had odevice, and more! All that duplicated work should really end now and be consolidated into one extensible lightweight machine and peripheral daemon.

As with the phone server, over the next couple of days I will add some initial thoughts into the freesmartphone.org wiki. Please see Florian’s blog post here and this wiki page unavailable for some more details. Right now it’s not even clear whether we need something completely new – we also consider stripping down HAL or reimplementing it using the same dbus interface to be able to reuse OHM.

Again, I’d be delighted if we can could quickly start adding some real world requirements and dive into coding. Please feel invited to contribute.

Maemo & OpenMoko

Mickey · November 10, 2007 · Comment

I’ve been accepted to the N810 Internet Tablet developer device program – thanks Nokia! I’m going to use this opportunity to work on sharing more technology between the Maemo and the OpenMoko platforms.

OpenMoko Media Player and Web Browser

Mickey · November 1, 2007 · Comment

On the last day I was in the OpenMoko Office, MokoNinja visited me and we recorded videos where I present the state of the OpenMoko Media Player and the Web Browser.

OpenMoko Media Player OpenMoko Web Browser

Almost back in Germany

Mickey · October 28, 2007 · Comment

::: {.img-shadow} Taipei by day{width=“200”} :::

你好! My stay in Taipei is almost over and I want to update you all on some news around my work here in the OpenMoko, Inc. office. During the past couple of months, I have dedicated lots of my resources to improving the current incarnation of the software stack for our existing users, the GTA01 early adopters. We have now come to a point where the OpenMoko SmartPhone Stack is almost there. Especially Telephony, PIM and the mediaplayer have gotten much better throughout the last months. We even have a nice new webkit-based browser with a slick and simple interface. All in all it’s getting better every day and I’m very confident, we’ll iron the last problems out within the next couple of weeks… and this is where the actual fun begins – once you guys can implement all your crazy ideas on top of this platform.

::: {.img-shadow} Fun in the OpenMoko Apartment{width=“200”} :::

To support this, the management and me agreed that for the remainder of this year, I suspend my position as overall platform architect to become the head of the new tools group. As such, I’m going to concentrate on improving and streamlining the developer’s experience (read: SDK). Once the most important problems in this field have been solved, I will get back to my original role. As for the future of GTA01, we have yet to ship a GSM firmware update and a working GPS driver. This is pending some legal issues at our end which I would have hoped were resolved by now, but once the ball is in the court of the lawyers, it’s rolling very slooooooooooow.

Structure-wise there has been a lot of friction – disagreement, fear, uncertainty, doubt, you name it – while OpenMoko migrated from being that crazy open source project inside FIC to being an independent 50-something-people-company whose upmost priority is to stay in business. We grew so fast that we couldn’t scale, hence the only way that got us back to operational mode was to impose a renewed and improved structure on it. I guess this is an almost inherent effect of rapid growth.

::: {.img-shadow} Taipei by night{width=“200”} :::

The actual outcome of it is that we engineers can now safely step down from being part-time network administrators, product managers, marketing experts etc., since we now co-work with dedicated people that perform these tasks. Which is good. Even better is that I really enjoy working with the local engineers. It took us a while to get started communicating well, but now it’s great. We have so many bright guys in this company that I’m proud of being a part of it. With the improved structure and a respectful passing of ideas, specs, and code forth and back, our engineering teams will perform much better implementing exciting new software products for OpenMoko.

All in all I have enjoyed this stay in Taiwan very much, a lot of my pleasure courtesy to the great weather, my health, and all the nice buddies in the OpenMoko Apartment and the Office. Thanks guys, you know who you are – 谢谢! :D

On to Taipei

Mickey · October 17, 2007 · Comment

Tomorrow, I’m heading over to Taipei for a while. I have mixed emotions here, on one hand I’m really looking forward to meeting all the guys again and seeing the shiny new OpenMoko office – on the other hand, there is quite a bit of internal disagreement which may only be resolved by some serious discussions. Being the optimist though, it is my hope and utter belief that I will return from this journey with a renewed vision and plan for the next 12 OpenMoko months.

Back from OEDEM'07

Mickey · October 13, 2007 · Comment

::: {.img-shadow} OEDEM07 photo unavailable. :::

The second annual OpenEmbedded DEvelopers Meeting took place in Berlin from the 6th to the 10th of October 2007. Due to the slight overlap with my vacation in Portugal, I couldn’t attend the coding sprints on 6th and 7th, however I could make it to the technical discussion days on 8th and 9th. On 9th, the generous folks from Tarent sponsored our dinner for which I’d like to say a big “Thanks, folks!!!”

This time we not only had the core developer team on board, but also key people from the various communities and interest groups, i.e. Stelios from Digital Opsis, Robert from Tarent, Graeme and me from OpenMoko, Florian from Kernel Concepts, Uli from ROAD, Philip for the Gumstix unavailable community, and more.

I’m not going to repeat all of the discussions we made (that’s what we have the meeting minutes unavailable for), however this is the executive summary from my point of view:

::: {align=“left”} OpenEmbedded has four major issues that prevent even more wide spread acceptance. In a nutshell, it boils down to :::

::: {align=“left”}

  1. Too much progress: org.openembedded.dev keeps constantly changing and (temporarily) breaking.
  2. Too much flexibility: If you want to use it as the base for your product, you’re overwhelmed by the amount of options.
  3. Not enough documentation: The reference documentation is nice, but it lacks actual workflow based tutorials and a general overview.
  4. Bad reputation about being too complex: If all you want is building applications, the learning curve is a killer. :::

::: {align=“left”} We sat together to come up with a plan of action to fix most of these issues. Briefly: :::

::: {align=“left”}

  1. Last year we agreed to releasing metadata snapshots. Most of the infrastructure (autobuilder, regression tests, etc.) is in place now, so we can actually start doing these releases early next year. The snapshots will be known-good for a certain – documented – combination of image targets and target architectures / machines. Once the snapshot gets tagged, we will branch and only apply very critical bugfixes to this branch. People can then base product work on such a snapshot. We believe it’s going to be two or three releases per year.
  2. We will add more product-based templates as examples, e.g. images like wlan-router-image.bb, nas-image.bb, set-top-box-image.bb, …
  3. Once the OE foundation work has been installed, we will use these resources to hire someone for improving the documentation.
  4. At the end of the day, there are lots of people using OpenEmbedded who really shouldn’t. OpenEmbedded gets (ab)used as a development environment, which it is not – although there is the incredibly useful command bitbake -c devshell. This can be fixed by handing out prebuilt OpenEmbedded toolchains to the people. People then can use these for application work without having to deal with OpenEmbedded at all. Alternatively – once they feel more brave – they can again use OpenEmbedded, but speed it up since they won’t have to go through the complete toolchain generation. :::

Once again, the issue of creating a registered non-commercial non-profit foundation was discussed. And this time, we finally agreed on the legal form and the statutes. We will create a german e.V. (eingetragener Verein) and the statutes will be based on the statutes of the KDE e.V.. The actual founding work will take place at FOSDEM’08 in February.

OpenExpo 2007

Mickey · September 22, 2007 · Comment

::: {.img-shadow} [OpenExpo 2007 conference image no longer available - conference website has changed] :::

Just returned to Frankfurt after visiting the OpenExpo 2007 in Zurich/Oerlikon. Benjamin ‘C7’ Hagen organized a small but fine OpenMoko booth (next our friendly GNOME colleagues) and we had two very good days with lots of interested people stopping by. My talk on Thursday also attracted quite some people (as you can see in the photo). To silence all the “it’s cool, but doesn’t work as a phone” nay-sayers, I demonstrated a phone call during the talk :D

::: {.img-shadow} OpenMoko Booth at OpenExpo 2007{width=“200”} :::

On to some bad news… Benjamin got his backpack stolen, including a Laptop and his Neo 1973… *sigh* I will make sure he gets one from the next batch of GTA01.

OpenExpo was very organized and agile. Although it’s just the little brother of the Topsoft business fair – which occupied four times the space – I dare to say, it looked as most of the visitors (me included) found OpenExpo much more exciting than Topsoft ;-)

Leaving to Portugal tomorrow for a two weeks vacation – after that, I’m going to visit the 2nd annual OpenEmbedded developers conference in Berlin. Then back to Taipei for a bit.

Hello (again), Qtopia!

Mickey · September 21, 2007 · Comment

So Trolltech recently ported the Qtopia unavailable application suite to the Neo. Right after the release, the community almost immediately started to join one of three camps – two being huge, one being small. The first camp is the ultra-pro’s: They embrace Qtopia and demand OpenMoko Inc. to halt all efforts working towards a non-Qt/Embedded-based platform immediately. The second camp is the ultra-con’s: They are afraid of C++, have not forgotten the less-than-optimal community relationship during the last five years, or claim Trolltech stealing attention from the “sole real free way to write software” in order to facilitate their “dubiously dual licensed” stack. More modest people join the third camp, the pragmatist’s: They realize that Trolltech has a four year’s advantage with their stack and that this is the very reason for it to be more polished, more complete, and more usable compared to what OpenMoko can offer right now.

If there’s one thing we learned from the GNOME vs. KDE war, then that the overall benefits of the competition (inspiration, innovation, …) outweigh the disadvantages (duplicated work, reinvented wheels, …). We also learned that there are ways to collaborate – see for example all the great work that happens around the freedesktop.org standards, among them Dbus, which Qt recently accepted as the new standard Unix way to do high-level interprocess communication (IPC). I see Dbus being an important technique for the future of the (mobile) Unix ecosystem. It is what I would call the collaboration enabler. Below this dbus line, we can collaborate, above this line we can compete. Once we have agreed about interfaces to all the low-level services we offer (telephony, networking, device control, user preferences, PIM database, you name it…), we can call these dbus interfaces from whatever language or toolkit we can imagine. This is my idea of freedom.

Along this line, I sincerely welcome Trolltech’s initiative. To be honest, it didn’t came as a surprise to me anyways, since all the major free software players kind of stay in loose contact – after all many of us know each other personally since lots of years and while we not necessarily agree about the technical way to move forward, we all share the vision and work towards open platforms. Having Qtopia on the Neo improves the visibility for Linux-based mobile open hardware (read: more demand for FIC) and this draws more of attention to all of us (read: more demand for mobile open source developers). Which is good.

Then again, not yet everything is bright and shiny. Qtopia still is based on Qt/Embedded which in turn means it relies on exclusive framebuffer access thus preventing other UI-toolkits from running in parallel (yes there is an X-server for Qt/Embedded, but this is a scary indirection). Also, it has its own GSM multiplexer code, hardware device abstraction layer, etc. etc. I would really like to see us collaborating in the lower services infrastructure. Being an optimist, I’m sure this will happen eventually.

OpenMoko and OpenEZX at Mobile Developer Days 2007

Mickey · September 4, 2007 · Comment

The Mobile Developer Days unavailable are a new conference aiming to create a platform where developers, network operators, service providers, and mobile manufactures can exchange their ideas and visions in the field of mobile communication. This year was the first shot at what is hoped to be an annual event.

I was invited to give a presentation about the OpenMoko project and the FIC Neo1973 mobile phone. Stefan Schmidt was invited to present the OpenEZX project. Besides performing our talks, Stefan and me installed a kind of an ad-hoc lab in the lobby of the venue at Aalborg University where we worked on OpenMoko (and later OpenEZX), demonstrated the devices, and answered questions for people passing by.

Due to the relatively small scope (~40 participants), it was a very productive gathering focused on direct communication between the participants. We had a pretty good time there and everything was well organized. Since the audience was quite heterogenous, the results of the discussions were quite inspiring. I’m looking forward to the next installation of this conference.

OpenMoko

::: {.img-shadow} !psplash on GTA02v1 unavailable{width=“200”} :::

While we were at MDD, we worked on a lot of OpenMoko issues. We went through the bugtracker, applied some patches, fixed bugs, etc. To improve the OpenMoko appeareance on non-VGA devices, I reworked the panel plugins to scale to different panel sizes. The neod now monitors headphone insertion and removal events and adjusts the mixers accordingly. I also started working on a first-usage wizard to make some of the most important preferences accessible. After switching to mrxvt, we no longer get the automatic opening/closing of the keyboard (since mrxvt is no Gtk+ application). To fix this, I did a new openmoko-terminal application wrapping the VteTerminal widget. This should be useful very soon. Last but not least, we also found time to do some testing on the forthcoming GTA02 unavailable device…

OpenEZX

::: {.img-shadow} !OpenMoko A780 unavailable{width=“200”} :::

As promised to the OpenEZX hacker’s community, Stefan Schmidt and me took a day off to hack on OpenEZX. It’s been a while for both of us and the amount of achieved progress since last year is really cool. Using an OpenMoko root file system, we managed to boot a Motorola A780 via root-over-nfs right into the OpenMoko user interface unavailable. OpenMoko simply rocks on the Motorola Ezx Platform, especially the kinetic scrolling is very fluid and intuitive – even more so than on the Neo1973 GTA01 phone where a slower processor has to take care about 4 times the pixels. Thanks to the new Alsa SoC patch we even heard the A780 playing the OpenMoko startup sound. I added pH5’s work on the QVGA adaptions to the OpenMoko theme into SVN and adjusted some missing things in the OpenEmbedded bugtracker. It is our goal to release an OpenEZX preview image before the end of September. The major showstoppers right now are the missing libgsmd integration for the EZX platform. I’ll post more pictures or probably rather a video of OpenMoko running on A780 and A1200 soon.

Denmark

To close with something completely unrelated… it was my first time in Denmark and this country has a lot of merits – did I mention that I fancy cool blondes? :D

FrOSCon'07

Mickey · August 30, 2007 · Comment

I have seldomly seen a conference that was better organized than this years FrOSCon 2007 in St.Augustin. It was amazing – a good technical program, interesting booths, nice catering, and a solid venue.

One of the notable chats I had was with some guys from Tarent GmbH – they’re doing Java consultancy and already made some good progress in bringing Java to the Neo1973 unavailable.

By the way, since adding a screenshot utility to OpenMoko, people are uploading their screenshots to scap.linuxtogo.org unavailable. Be sure to check it out regularly, it’s amazing what people are running on their Neos – and this is just the beginning :-)