Planet maemo: category "feed:533f5ff8469293460a7e02916e93a7ae"

Henri Bergius

The Universal Runtime

2011-03-09 11:32 UTC  by  Henri Bergius

In the coming years another billion people will get online. They will do it with their smartphones instead of what we consider computers. And their experience will be quite different from ours when we initially started using the internet.

Click to read 1034 more words
Categories: desktop
Henri Bergius

Midgard in 2010

2011-01-11 12:19 UTC  by  Henri Bergius

Wow, 2010 was quite a hectic year in the Midgard world. Here is a quick summary:

Patching Midgard Midgard Gathering in Lodz Special-issue Midgard shirts Midgard in aKademy 2010 Midgard Gathering in FSCONS Discussing Midgard and Tracker

Unfortunately at the same time the Midgard developer community has stayed quite small and insular. This will hopefully improve through easier installation, availability of Midgard libraries in Linux distributions and closer collaboration with the rest of the PHP world as a participant of the Zeta Components ecosystem.

We still also need to solve the project governance question of either running our own association or joining a major organization like ASF. The relation between Midgard and the GNOME project on which we heavily rely on should also be clarified.

See also the Midgard in 2009 post.

Categories: desktop
Henri Bergius

Tablets and the problem of text input

2011-01-08 21:35 UTC  by  Henri Bergius

Tim Bray on the new mobile market:

Tablets and handsets can displace computers as play and reading devices, but they really can't become dominant as work tools until we have a better solution for high-speed low-friction text input. On the other hand, I wouldn’t be surprised to see dramatic progress in this area; it’s so obviously the number-one usability barrier for everything that isn’t badged as a "computer".

I've seen some interesting approaches at solving the text input problem. But the other option is of course that other means of communicating become more prominent: videos, audio messages, etc. A flickr is worth 50 tweets, after all. But how do you program then?

Updated: Alex Payne thinks video will replace textual communication:

My generation will be at something of a loss when this new world comes about. In my life, I’ve been rewarded for communicating effectively online via text. I’m a reasonably effective verbal communicator, but not nearly as good as I’ll need to be to compete with the telepresence-native adults that the children of today will grow up to be.

Today’s digital natives will be tomorrow’s telegraph operators. The only way to survive will be to understand the impact of pervasive video communication before it sweeps us under our keyboards.
Categories: mobility
Henri Bergius

COSS and MeeGo meet in Helsinki on Dec 1st

2010-11-25 17:22 UTC  by  Henri Bergius

Next Wednesday will have the annual Finnish Centre for Open Source Solutions member meeting and the Helsinki MeeGo Network meetup held together in Hotel Scandic Continental. The COSS meeting starts at 4pm, continuing with the MeeGo meetup at 6pm.

The event will be keynoted by Nokia's MeeGo Developer Advocate Ronan Mac Laverty. Register now!


Categories: business
Henri Bergius

We had a session about application QA in last weekend's GSoC Mentor Summit. I explained how the Maemo Downloads approval process works in a completely open, crowdsourced way. This differs from many distributions where approval of new packages involves obscure decisions and secret handshakes.

Some guidelines:

  • Separate your core distribution and application packages
  • Approval process should have three layers: development, testing and stable, individually for each application targeting a particular distribution version
  • Anybody can upload packages to development status, and then promote them to testing
  • On their way from development to testing packages should pass automated tests
  • Anybody can install and test packages that are in testing, and vote for them
  • Testing guidelines should be clear and easily available to anybody interested in testing
  • Quarantine period for applications being tested (ten days in case of Maemo)
  • When quarantine has passed and application has enough positive votes, developer can promote the package to stable

Hopefully these ideas will prove helpful for other distributions like MeeGo, Ubuntu or Debian. See also my slides from an earlier talk on the same subject.

Testing votes for a package

Categories: desktop
Henri Bergius

buscatcher: Never miss another tram

2010-09-02 16:17 UTC  by  Henri Bergius

Opening public data is a hot topic in Finland at the moment. As a small experiment with the data that is available I wrote buscatcher, a simple N900 app that displays Helsinki trams (and some buses) moving on a map in real time. This makes it easy to determine when your next tram is coming to the stop, or where it is stuck.


Click here to install this application

Updated 2010-09-28: Buscatcher now has a stable release that is available from Maemo Downloads with already more than 10,000 installations.

For other platforms, you can grab and run the application from the GitHub repo. It should run on regular Linux desktops, and there have been reports of working on also platforms like the OpenMoko Freerunner.

Categories: geo
Henri Bergius

My interview at dot KDE

2010-09-02 15:55 UTC  by  Henri Bergius

Jos Poortvliet did an interview with me for dot KDE in this summer's aKademy and it has been online for a while now. In it we discuss things like Midgard as a storage engine for desktop applications, and Maemo's open QA process for Downloads applications. Some excepts:

At we have an appstore for FOSS applications on the Maemo platform. This appstore is enabled by default on all Nokia N900s so we wanted to have some quality control. We had to create our own appstore approval process, compatible with the FOSS philosophy. Now any developer can submit an app, and anyone can test and vote. The whole process is completely transparent, auditable and visible. And it also provides a feedback channel from testers and users to the developers!


Midgard is a data storage service. Whether you write desktop or web applications, instead of coming up with your own file format, you just use Midgard. You can work more easily and object-based. Users have many different devices these days, so Midgard has strong replication features to synchronize between different systems. Midgard is built on top of GObject; we provide bindings to a bunch of different languages so developers can choose the tools they like - PHP, Python, Javascript. Currently (as in now, while we're talking) Qt bindings are being developed here at Akademy.

Read the whole interview.

Categories: desktop
Henri Bergius

Frankencamera, or fCam, the open source computational photography platform from Stanford's Camera 2.0 project was unleashed for the Nokia N900 this Wednesday. PhysOrg has a story outlining the significance of this:

Computational photography refers to the ways computers can extend the capabilities of digital imaging by combining multiple photographs taken with different camera settings to create an image that could not be taken in a single shot, or with an ordinary camera.

Some of these new ways of combining images can be done in Photoshop or another such program, but until now they could not be done inside the camera, Levoy said. That's because commercial cameras are closed to development by all but their manufacturers. Frankencamera, on the other hand, brings computational photography directly to the camera, by making the camera a programmable platform.

I installed fCamera and the HDR photo assistant from Maemo extras-devel yesterday, and the results (taking .DNG RAW images, automatically generating HDR pictures) seem quite impressive. Here is a quick example from our office. Sun is shining outside and the office is not lit:


For comparison, here is the same setting with the regular N900 camera application:


It will be interesting to see what developers will come up with, now that all these camera capabilities are available through an open API!

Categories: mobility
Henri Bergius

Zeitgeist, the desktop activity logging engine is now becoming geo-aware. From Seif Lotfy's blog:

It allows you to ask Zeitgeist stuff like

  • “Get me the recent files I edited at university”
  • “Who do I contact most when I am at School?”
  • “Which pictures did I take in Brazil?”
  • “Where was I when an Email came in?”
  • “What files did I open during the conference?”

As I've been advocating since 2006, location is important for making applications smarter. While you might not remember where you stored some file, you probably remember where you were when working on it. Then Zeitgeist's location features, powered by GeoClue, will be able to get it for you.

This is especially cool since Zeitgeist is coming for Maemo as well. My laptop is quite mobile, but the N900 is even more so.

Categories: desktop
Henri Bergius

Meet Midgard and GeoClue in aKademy 2010

2010-06-28 12:54 UTC  by  Henri Bergius

We tried to get the combined GUADEC and aKademy conferences to Tampere in 2009, but a warmer place unfortunately won. However, we will be hosting this year's aKademy so at least KDE and Qt fans will get to enjoy this beautiful northern industrial city.

The main conference will be held at the Tampere University over the weekend, and then the remaining hackweek will be in the nice Demola facility in the Finlayson district. Expect great connectivity and close proximity to all Tampere nightlife.

I'm involved with two aKademy activities:

In addition there will be a Maemo / MeeGo meetup in the Plevna brewery on Friday evening. See you there!


Categories: desktop
Henri Bergius

Midgard2 10.05 "Ratatoskr" was released yesterday, moving the Midgard Content Repository into long-term supported state as outlined in my recent post. Ratatoskr should provide a stable storage system for both desktop and mobile application developers.

Web developers will also benefit from Midgard MVC, the PHP framework that already runs services like

The release includes:

  • Content Repository API bindings for the following programming languages: C, Python, PHP, C# and Vala. D-Bus signals are used to inform different Midgard2 applications about things happening in the repository, enabling for example a PHP website and a Python background process to communicate with each other.
  • Midgard MVC, an elegant framework for PHP web applications. Midgard MVC includes interfaces for loadable components, hierarchical sub-requests, a forms system and much more.
  • Midgard Runtime that combines the Midgard MVC, a PHP application server and a WebKit UI to provide a full Midgard web development environment on the desktop.

This release benefits greatly from new technologies happening in the GNOME sphere: some of the language bindings are created using GObject Introspection, Vala has made development of new features faster and libgda4 makes all database operations more efficient.

Packages for various Linux distributions are already trickling into Midgard's OpenSuse Build Service repositories and Maemo Packages.

A good place to start the Midgard2 journey is my Midgard2 Content Repository for Python tutorial.


Photo: Squirrel by John-Morgan on Flickr (the release codename Ratatoskr is a mythological squirrel)


Categories: desktop
Henri Bergius


After a long hiatus there was a new GeoClue release 0.12 last week. GeoClue is a D-Bus service that Linux applications can use to obtain user's current position and convert between human-readable addresses and coordinates. As location-aware services are becoming more important and computers more mobile the free desktops should also be aware of where they are.

Dadadi Blog writes:

Geoclue has a really nice feature, the master provider. It means geoclue can handle multiple sources of geoinformations. For example, you can get your position with your gps device, or with OpenCellId, or with webservices that will associate your IP address with a location (such as hostip). Geoclue master provider is able to choose the source with the best accuracy.

Geoclue is used at least in Empathy to publish your location to your contacts, and in WebkitGtk to support html5 geolocation.

It's been the first release in nearly two years, and it's great to see that nice project moving forward again. In this release, Nominatim has been added as a provider for geocoding and reverse/geocoding. It means it's possible to use nominatim service to get the position for a given address, or the opposite. There have been also many bugfixes and code cleaning, including a bug I've helped to resolve that prevented master provider from being usable in some configurations.

I'm also really happy to see GeoClue again moving on. It is important for the free desktop infrastructure to have such critical tools available as vendor-neutral D-Bus services instead of platform-specific libraries.

Update: ran into python-geoclue, a very handy Python convenience library for dealing with GeoClue that is a result from last summer's GSoC. Seems to work pretty well.

Categories: desktop