Tales of software craftsmanship

Tales of software craftsmanship

GSoC: Beginning Amarok Mobile

When the Google Summer of Code program was announced again this year I decided to submit a proposal for a project that would hopefully take Amarok in a new and interesting direction.

My proposal was accepted, so this year I’m a GSoC student again, for my third time, working on an Amarok port for mobile devices, primarily tablets.

Why mobile? In the past few years some profound changes have been set in motion in the computing market. What we still call “desktops” might soon become mostly workstations and gamer rigs. We’re not there yet, but computers are already becoming increasingly mobile, invisible and wearable, and computing is becoming ubiquitous. In this changing environment, complex desktop apps like Amarok 2.x will have a harder time staying relevant, and are being challenged by leaner, simpler and flashier mobile counterparts.

Amarok has a strong brand and a good reputation as the ultimate music player for GNU/Linux systems, prominent features where Amarok innovates and excels are web services integration and smart context-sensitive information. I believe the Amarok team can take advantage of that and make a successful entry into mobile markets.

There is certainly a lot of work involved: the existing GUI simply would not work well on touch screen devices, and a lot of the underlying stuff is also not so well suited for a mobile app because it provides a very extensive feature set and requires a lot of dependencies.

The foundations for a mobile version were laid down about a year ago, when Amarok developer (and my GSoC mentor) Jeff Mitchell made some deep changes to separate Amarok’s core logic from “everything else”, including collections, the user interface, etc. However, not much happened after that besides maintaining this separation, so I simply figured that if we indeed want to see Amarok running on tablets and handsets the actual porting work had to begin.

So what am I aiming for? At this point, a platform that is accessible almost immediately is MeeGo (and Maemo 6), represented by the upcoming Nokia N900 successor and Intel x86 based tablets, as well as devices which come with other operating systems out of the box but have a MeeGo port. While during this GSoC project I’m focusing on MeeGo, when making technical decisions I will be taking into account their impact on possible future ports to other platforms.

This port will require a completely new GUI, but since I’m not a QML GUI designer (yet), so far I’m only promising to deliver the underlying stuff.

Until now, I’ve done a bit of work on yanking out Amarok’s core and building it with a minimal set of dependencies, and setting up a MeeGo development environment. The next step will be porting this core to MeeGo, and then building the required functionality on top of it while keeping the whole app light but smart 🙂

Running KDE SC on the next big thing

A week ago I got a Tegra 2 based 10.1″ Android tablet called Point of View Mobii Tegra. Its brand is just badge engineering, the same device is sold throughout the world under a variety of other names, including Advent Vega, Smartbook Surfer 360, WSL Xvision and Dreambook ePad P10, and apparently it is based on a reference design by Nvidia. The hardware is quite fast but the bundled Android software feels, well, a bit weird. I say “weird” simply because Android 2.2 is an operating environment for handsets rather than for tablets, and while it’s fast and it does the job, it is hardly the best tool for the job: compared to a smartphone’s 3 or 4 inches, 10 inches of touch screen provide a lot more space for all sorts of touch-friendly widgets and a call for a somewhat different user experience. This is especially noticeable when looking at common widget placements on the screen: Android often expects you to hold a smartphone with one hand, and places relevant widgets close to where your thumb should be. These kind of assumptions fail miserably when running Android on a 10″ tablet.

Anyway, like a true fan of KDE my priority was trying to figure out if there’s a way to get KDE SC running on it in some form. This was remarkably easy, thanks to the efforts of some MoDaCo community members, who provided an Ubuntu-based rootfs and a kernel. All I had to do was figuring out how to flash the device with Nvidia’s tools the right way. After that it was just a matter of installing some KDE software from Ubuntu’s armel packages.

My PoV Mobii Tegra (Advent Vega) running KDE SC 4.6

So the point of this post isn’t technical, it really didn’t take much to have a KDE desktop running on the Tegra tablet. It’s just a bit of proof that it can be done.  The user experience with the regular Plasma Desktop is surprisingly fast but overall not very good, and Plasma Netbook doesn’t make it much better. The UI feels too small and is not well suited for use with fingers. I suppose it would work somewhat better with a stylus, but that’s not what these kind of tablets are about. I haven’t had the chance to try Plasma Mobile yet, but even if it brought a huge improvement, I would also need finger-friendly apps.

Right now I can see that there’s a vacuum in the tablet market as far as operating environments are concerned. Android is obviously late to the party and WebOS and MeeGo even more so. Could this be an opportunity for KDE?

A sensible beginning might be designing a set of finger-friendly widgets and a Plasma workspace optimized for 10″ and 7″ tablets, and defining a list of UI guidelines for tablet-friendly KDE apps.

What to do with an old Nokia N810?

Nitdroid Donut showing Planet KDE

Like quite a few KDE community members who attended Akademy 2008, I got a Nokia N810 internet tablet. Sadly, shortly after we got the devices we stopped receiving OS updates and the Maemo Diablo platform was basically abandoned in favor of a bigger better faster and quite different Maemo Fremantle, to be used on the N900 with the hope of eventually having a community supported port for the N810. Unfortunately, the Mer project, which aimed to bring as much Fremantle as possible to the N810, was cancelled back in 2009, leaving N810 owners with a nice piece of hardware and a dead software stack.

Don’t get me wrong: while the browser is still slow as molasses and the battery drains quite quickly when WiFi is on, Maemo Diablo works, but it’s not moving and in 2011 it’s not fun any more. Lately I’ve been using it just as a music player and rarely for quick note taking or Skype over WiFi.

So thanks to the efforts of the Nitdroid project, I installed an Android 1.6 Donut build on my N810, hoping to get something fun to tinker with. Even though Donut is old, it might still have been an improvement over Maemo Diablo. From what I’ve picked up, the Nitdroid project is focusing on the N900, and I can testify that Android on the N810 is unusably slow.

I have managed to open Planet KDE on my third attempt, the first two times stuff just crashed randomly:

As for MeeGo, a fellow Amarok developer says it’s slow even on the N900, so does it even make sense to try running it on the N810?

What are my options if I want a fun, fairly recent and at least a bit usable system on my N810?

I know people even managed to run KDE on it, but is it fast enough to be usable?

What do you use your N810 tablets for in 2011?