Towards the end of 2011

Tempus fugit. I can tell you. Even more so, if you have a baby. I must confess I somewhat underestimated the impact the baby would have on my spare time. In some weird mindset I really thought I could continue working as usual on my open source projects… as we know now I couldn’t. I completely lost track and have to catch up with all changes that happened over the last 6 months.

The first bunch of weeks with the baby were really demanding. I mean, really. She screamed a lot and could only sleep in our arms. Boy, were we tired. We carried her around so much we have Schwarzenegger arms now. But it’s great to see her developing, err… growing up, of course. With 6 months now she is a very interested baby, eager to learn new things and always trying to become more mobile.

Luckily both my wife and me are self-employed. It so much easier when you can skip some hours at the usual start of the workday and also at the usual end. Of course, the work needs to be done, so we have to compensate when she’s in bed. But still, it’s very satisfying being able to see her twice a day for a couple of hours — not all families have this luxury. Plus the existence of our two invaluable grandmas… it’s great.

Company-wise, the Lauer & Teuber GbR had an amazing year with many interesting iOS (and some Android) projects. We have reached the maximum we can do with the two guys we are, so we decided to grow and hire our first regular employee who’s going to start in 2012. We also rented another office and are already moving.

I’m slowly getting back into some of my beloved open source projects… it’s great that work on e.g. FSO did not stall at all, but continued while I was “away”. Last week, I attended the 3rd installment of the Open Hard- and Software Workshop in munich, where the latest development of the very promising GTA04 mobile phone was presented. I had a talk about Vala which was well received. By the way, my Vala-book plans are not dead yet… just in parking position :)

Next week I’m attending the FSOSHRCON, a joined conference with the people working on the freesmartphone.org middleware and the SHR software. It’s going to be great seeing all the folks again, concentrating a full weekend to agree on some important issues laying the path forward for the next year. Can’t wait to be there.

What’s left is the feeling that an extremely busy year has passed by, spiced with incredibly intense emotions. I’m a happy man and I love my life. I’m given exciting opportunities, but also challenges – and I plan to accept everything :)

All the best to you guys!

The Eagle Has Landed!

After letting us wait for a bit longer than scheduled (13 days), the hospital initiated the contractions. For the first couple of hours, everything went just perfect, but then the little one got stuck on the way and we had to resort to a cesarean section. Lara Marie Lauer was born 8th of June at 04:41 (AM) with 3460 gramms and 49 cm.

Mummy was still on intensive care and so they gave her to me. I can’t express the feelings I had in this very moment. I’m still kind of overwhelmed every time I see her. Thanks for all of you who waited anxiously with me and those who prayed for us. The most important tasks for the near future is getting Mummy to recover and Lara Marie to become accustomed to us and the rest of the outside world.

Please bear with me if in the next time I’m not as responsive as usually :)

Lara Marie Lauer

Towards the end of 2010

Howdy, dear reader!

It’s been a while on this blog, mainly due to the fact that many short status updates are better twittered than blogged. Then again, as promised / threatened in last year’s installment of this column, I had to spend most of the time this year with iOS development, rather than with FOSS — and it doesn’t look like this will change much (you know, food and things…). Still I do care a lot about projects like OpenEmbedded, Vala, freesmartphone.org, and the like, so here’s what has been going on this year:

OpenEmbedded (www.openembedded.org)

OE moved along quite well this year. I did not have much time for it — other than taking care about a couple of Vala and FSO recipes — but I’m especially pleased that the community finally embraced major clean up. Thanks to Frans, Richard, and all others involved, OE is improving heavily — although it wasn’t easy: Over the last couple of years, the OE core contributors developed a resistance against any changes affecting more than a handfull of recipes, however in order to make OE handle even more contributors and various use cases, we had to do some substantial cleanups. This will reduce maintenance and improve the overall quality of recipes in OE, which is the #1 complaint I hear.

Vala (www.vala-project.org)

During the first half of the year, Vala went through some extremely tiring phases of non-activity, which improved vastly when its main developers opened up a bit, i.e. giving more developers access to the tree, adding branches, etc. There have been many changes in the Dova profile, but also the GLib profile has seen an incredible amount of work, bugfixes, some new features, and more.

The pace of changes that affect basic things had also impact on my vala-book plans; apart from a severe lack of time on my side, I think it’s better to wait until Vala is closer to 1.0. Otherwise I risk describing a moving target, which — considering the time I have to work on that project — would effectively kill it. That said, it’s great to see that Vala is getting better every day and gains more and more popularity from all kinds of developers.

FSO (freesmartphone.org)

The progress on freesmartphone.org is two-fold; on one hand, we have seen quite a nice amount of work to support more devices. On the other hand though, in contrast to all the work I did in 2009, there has been a severe lack of development of the core in 2010. This I plan to change as soon as possible. For 2011, I see myself continuing to develop FSO in the following three dimensions; internal, external, and integration.

  1. Internal | FSO is a heavy DBus consumer. I think by now we are one of the largest projects using DBus, at least considering the amount of API and running processes that communicate with each other via DBus. We always had our share of problems with DBus, especially some concurrency problems and race conditions are still haunting us. Both libdbus and dbus-glib exhibit their own share of problems, obviously this is not much of an issue on the desktop, but it turns out to be a major PITA on embedded systems, such as a phone. That’s why I have been excited since I heard that the glib team planned to write their own DBus backend and put it right into the glib. This work has now been released as of glib 2.26. Over the next weeks, I will port FSO to using gdbus in a branch.
  2. External | DBus-signals have some problems. That’s why some big projects (BlueZ and ConnMan, to name two of them) adopted an agent-style of API, where the clients have to implement a server API which is being called by the actual servers. While this means some more work for client developers, it has major benefits. I’m going to change some of our APIs to adopt this style.
  3. Integration | To deliver an integrated solution for today’s mobile phones, FSO needs to add more glue to work with existing services, such as BlueZ (bluetooth connectivity), Connman (ethernet and wifi connectivity), and some VoIP services. While these services work fine on their own, FSO lacks an API that uses these individual services in combination to achieve higher level tasks.

All this means that I will not be working much on the actual ports, but rather use my — very limited, did I say that yet? — time to drive the core forwards. I still believe that we will have full FOSS phones — other than the Openmoko devices — soon. Please help to make this dream a reality. (And no, please don’t talk to me about Android…)

Cheers,

:M:

Volksradio: Just Radio!

Every now and then you come to the comfortable situation that a client requests you to develop a technology for a product of theirs, which you can then use in your own productions as well. This happened to us in the last couple of months, when we had to create an audio streaming engine for iOS for an internet radio app.

Now the internet radio app market on iOS is completely saturated. We browsed through the AppStore and found hundreds of radio station apps, half of them for free, half of them between 1 and 3 EUR. We downloaded quite a bunch and analyzed what we liked and what we didn’t like. With regards to the latter, we have seen splash screens, click-through ads, complicated UIs, and — most annoying of all — broken stations. Only a few apps actually do well in what they advertise… streaming radio!

This is what lead us to the development of Volksradio: Just Radio! A no fuzz no buzz streaming radio app. This is what it looks like:

Volksradio Now Playing Volksradio Channel List

A clean uncluttered UI that focuses on what the app does best… streaming radio. While we have refrained from feature overload, we put a couple of goodies into it, such as:

  • HiFi streaming engine, even via EDGE
  • Headphone remote control support
  • iOS4 background streaming and multimedia dock support
  • Automatically picks up playing the station you last heard
  • Order channels alphabetically or by rating — either just your own or total rating of all users.

We even did a small video to show the features, which you can see by clicking here. Note that right now we focused on german radio stations, so if you don’t like german radio, don’t buy! :-) If you are missing your favourite channel, please mail us to support app-developers.de. Thanks for listening!

Sid Player Pro goes iOS4

Despite being incredibly busy due to some nightmare project I have been working on for the last couple of months, I have managed to sneak in some time to update Sid Player Pro to catch up with iOS4’s idea of multitasking.

Sid Player Pro now can stream audio in the background, just as the iPod application can. Moreover, it also reacts to headphone remote control events and hooks itself with the lock and multimedia dock screen controls.

The update has been submitted to Apple for review and we expect it to be posted very soon. Once Sid Player Pro appears in the AppStore, Module Player and Pokey Player will also be updated.

Here’s a video that demonstrates the new features in Sid Player Pro for iOS4.

Updated Sid Player, Module Player, and Website

New versions of the Sid Player and the Module Player are now available via the AppStore. While Sid Player just received a minor update with some performance tweaks, Module Player received a major content and performance update. Here’s the changelog:

  • Artwork: Module Player has a blueish tone now which leads to better identification if you also own Sid Player and Pokey Player.
  • Performance: Database access has been completely rewritten for improved performance and less impact on the audio engine. It also helps with battery life.
  • Database: Module Player now doubles the amount of available songs, we have added 70.000 songs in multiple new formats, such as 669, ABC, AMF, AMS, DBM, DMF, FAR, IT, J2B, MDL, MID, MT2, OKT, PSM, S3M, STM, ULT, UMX, WAV, and XM. The database has also been updated to incorporate new MOD songs uploaded since the last release.
  • Authors & Songs: The number of songs per author is now being displayed next to the composer. Since there are so many song formats now, the type of song is shown next to the song title.
  • Playlists: Double tapping on a song moves you into the author’s view where you can see all songs of said authors. You can shuffle any of the playlists now. The random playlist will come up with new titles on every query.
  • Player: The currently played pattern and row is now shown. Release notes longer than the screen width are now presented in old-style scrolltext fashion. We also added a seek bar (#1 feature wish), so you can jump to your favourite parts of the songs. The Oscillator view has been rewritten in OpenGL for improved performance. If you still experience audio glitches, you can turn off the Oscillator in the settings.

I also finally took the time to work on an updated website for our team. Since I do not fancy direct HTML or CSS editing any more (I’m a big fan of frontends of all kinds), I did a small survey on website creation tools. I have settled down on Freeway Pro now, which is really amazing and allows me to realize my layout without having to care about the nitty details.

Update: Sid Player Pro has just been updated as well, receiving all the internal goodies from the Mod Player plus an update to HVSC.52+PSID

F(SO|OS)DEM 2010

Just came back from FOSDEM 2010, which — after skipping the last incarnation — was a great inspiring and productive event. The Openmoko devroom we originally requested was declined, however thanks to the initiative of Serdar Dere, it turned out we could snatch a last minute 3 hours timeslot that was left open by the Xorg guys. Very shortly we prepared a schedule and managed to get a nice program which was very well received.

Openmoko Devroom @ FOSDEM 2010

Due to the short notice, we could not manage to create a video recording infrastructure, so I’m afraid this year we can only provide the slides — which are a notoriously bad substitute for real talks though. We try to improve for next year — if we can get a devroom again. The pictures you are seeing are courtesy Dr. Nikolaus Schaller from Goldelico, btw. — thanks!

The FOSDEM team did certainly improve its organization over the last years, I was very pleased to see some of my criticism being taken into account. Apart from the lack of good coffee in Brussels (which the FOSDEM team probably is unguilty for), I can’t complain about anything. Even WiFi worked tremendously well on saturday. I still think due to the size of the ever growing interest in this conference that the ULB as location should seriously be reconsidered though. The special service transport on sunday to the main station is a great idea, folks — thanks a lot! Funnily enough, half of the ICE that took me to/from Frankfurt/Main to Brussels Zuid was filled with hackers, btw. :)

Openmoko Devroom @ FOSDEM 2010

I have met some interesting people working on mobile devices, such as dcordes, leviathan, GNUtoo, cr2, larsc, heinervdm, etc. It’s great to see there is still momentum in real mobile FOSS architectures (i.e. something besides the Android, Maemo, or WebOS systems). I’m glad to tell you that this year we will see an exciting breakthrough in freesmartphone.org middleware supporting new platforms, i.e. progress on the HTC Dream and the Palm Pre is looking _very_ well. Stay tuned for more details appearing here soon.

Openmoko Devroom @ FOSDEM 2010

I wish every conference would be like that. The only slightly disappointing thing was the cross-buildsystem-session in the embedded room. Just when I was expecting the discussion about the problems and potential collaboration to start, the time for the session was over. :( Rather than wasting time watching Andy Green telling us that our projects will die soon and we should all start using Fedora/Embedded now, we could have had some progress… Oh well, perhaps next year.

iPad? I’m loving it!

Sad to see that a lot of people are not getting it. The iPad is a revolutionary device — it is the manifestation of transit, the transit from the classical desktop paradigm over to the new wave of ubiquitous computing.

Applications like iWork for the iPad and the OmniGroup products are going to make a substantial difference. Software developers will now stop with overloading their apps with features (of which the typical user rarely uses more than 20%), but concentrate on streamlining the human computer interaction instead — hence improving productivity and… fun with computers!

We — the LaTe App-Developers — are embracing change and will create software for the iPad. Exciting times to live in!

Update: Matt Gemmel got it, see his blog post with great insight into the relevance of the iPad.

Update II: Joe Hewitt as well, see his blog post.

Liar’s Dice XMas

In-between coding FOSS middleware such as the freesmartphone.org software stack, my colleague and me are working on iPhone OS projects. After a bunch of retro players (Sid Player, Module Player, Pokey Player), we did a small fun game for christmas. Here’s the video of us playing it (sorry for the german voices… didn’t have time to do sub titles ;)

Liar’s Dice is available on the App Store. Enjoy!

Towards the end of 2009

I just came back from the annual OpenEmbedded Developer Meeting (OEDEM) which happened to be in Cambridge, UK. It was a very productive meeting and we agreed on some important things to move OpenEmbedded forward as a whole. Please see the mailing lists for meeting minutes and summaries. We also elected a new board for the e.V. and despite the grief that led to me leaving the OE core team (which subsequently lead to the dissolving of it), I have volunteered (and been reelected) to serve a 2nd year as board member.

As written in a previous installment of this column, I have dedicated the lion’s share of 2009 to the reimplementation of the freesmartphone.org APIs in Vala. Please see the wiki for architectural details, as I don’t want to repeat this here. This is an overview of the current status:

fsousaged

fsousaged has been fully completed and is being used for quite a while now in distributions. All of the plugins are working:

  • dbus_service: Implementation of resource handling as per org.freesmartphone.Usage.
  • lowlevel_kernel26: Low level suspend/resume handling for Linux 2.6.
  • lowlevel_openmoko: Low level suspend/resume handling for Openmoko Smartphones GTA01/GTA02.

fsodeviced

fsodeviced has been fully completed, but is not yet being used in any distributions. All of the plugins are working:

  • accelerometer: generic accelerometer handling, needs one of the device-specific accelerometer plugins.
  • accelerometer_lis302: lis 302 accelerometer support.
  • alsa_audio: alsa audio PCM output and routing (scenario) support.
  • kernel_idle: system idle notifications.
  • kernel_input: system input handling.
  • kernel_info: kernel information.
  • kernel26_display: display class-device based brightness control.
  • kernel26_rtc: realtime clock, wakeup alarm.
  • kernel26_leds: LED class-device based brightness control.
  • kernel26_powersupply: peripheral power supply control.
  • openmoko_powercontrol: device-specific power supply controls for Openmoko devices.
  • thinkpad_powercontrol: device-specific power supply controls for IBM Thinkpad devices.

fsotimed

fsotimed is about half-way complete compared to frameworkd. The working plugin is:

  • alarm: DBus alarm service as per org.freesmartphone.Time.Alarm.

fsonetworkd

fsonetwork is done with the same level of functionality as in frameworkd. The working plugin is:

  • sharing: internet connection sharing.

fsogsmd

fsogsmd has been on hold since end of April due to waiting for more Vala language features. When they finally appeared in September, I picked up where I left and furiosly worked on what i perceive as the prime subsystem of FSO :)

The basic infrastructure is more or less complete now and we cover about 50% of the DBus API as per org.freesmartphone.GSM.*, i.e. device info, sim access, network registration, sms, and call handling is working. All work has been done in a generic way, i.e. without taking any care of modem specifics yet — which is what will be my next task before I go on covering the missing API.

fsogpsd

I have added a skeleton of that to the repository and adapted some lower-level classes in libfsotransport to work both for fsogsmd and fsogpsd. I would have done more work, but I’m not keen on implementing the Gypsy API, since I think it’s not a particular good DBus API

fsopreferencesd / fsopimd / fsoeventsd

All these have not been started, not even been thinking much about ‘em. fsopreferencesd will probably have to wait until dconf / gvariant / gsettings have finally landed in glib. fsopimd is waiting for a redesign of the opimd API. fsoeventsd needs a new architecture, but I have to discuss this with the others before we can start cranking.

2010

will be a very interesting year for Linux on mobile devices, even more so for freesmartphone.org. Due to the lack of someone funding FSO, I will probably not find much time to work on FSO in 2010 — that’s why I’m so furiously working on getting most of it to a state where others can jump in before the end of this year.

Apart from that, I hope we can get FSOSHRCON’10 happening very early in 2010 and uplevel kernel support for some of the more interesting semi-open devices such as the Palm Pre, Nokia N900, and the HTC family. FSO would be more than happy to add device-specific support for this hardware once the kernel is up to par.

Cheers!