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.
Planet maemo: category "feed:533f5ff8469293460a7e02916e93a7ae"
Wow, 2010 was quite a hectic year in the Midgard world. Here is a quick summary:
- We held three Midgard Gatherings: one in Lodz, Poland in April, one in Tampere, Finland in July and one in Gothenburg, Sweden in November. In April we announced the new directions of the project.
- The project completed a migration to Git (and GitHub) for Midgard2 and Midgard MVC, together with a change in the development process to facilitate a more decentralized way of working
- The Long-Term Supported Midgard1 series 8.09 Ragnaroek had two releases: .8 and .9. After .9 there have been substantial performance improvements that still wait for release
- Midgard2 had its first Long-Term Supported version 10.05 Ratatoskr, with three releases: .0, .1 and .2
- Midgard2 started providing language bindings via GObject Introspection
- Midgard2 landed into Debian unstable, Maemo Extras and MeeGo Community OBS
- Third generation of Midgard Content Repository had its first release showcasing more flexible model definition and built-in RDF storage. The new MidgardCR is written in Vala
- First version of the Midgard Create content management interface was shown
- Midgard MVC gained a new application installer tool and the ability to be run on the PHP Application Server
- The OpenPSA management suite was forked out from Ragnaroek tree, ported to Midgard2 and packaged for Ubuntu
- On Maemo, Midgard-powered applications like The Tablet of Adventure and MaeCalories provided tens of thousands of Midgard installations on mobile phones
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.
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.
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!
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.
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.
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.
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 maemo.org 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.
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!
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.
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:
- GeoClue presentation on the location service that can be used on any Linux desktop and is used in MeeGo. I'll also talk about what desktops can do when location is available
- Midgard Gathering during Mon-Wed of the hackweek. Midgard provides a content repository for applications that should be available also for Qt apps through GObject Introspection. With some proven performance benefits and replication support, Midgard should be interesting for any desktop or mobile app that deals with structured data
In addition there will be a Maemo / MeeGo meetup in the Plevna brewery on Friday evening. See you there!
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 Qaiku.com.
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)
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.
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.