Dienstag, 14. Mai 2013
HTML5 Web Apps on Mobile Devices
This might also be a good time to check off XmlHttpRequest on your BB card, even if none of the following games use it - you might want to use it in your applications or game for things such as server-side stored high scores.
As far as Maemo and MeeGo is concerned, you might want to try out some of these games (especially the WebGL variant of One Whale Trip) in Fennec (aka Mobile Firefox - get it for: N900, N950/N9, Nemo Mobile).
Color Lines: This one simply uses Canvas2D, and works nicely on all mobile browsers that I tested - Maemo, MeeGo, Android, WP7.5, BB Playbook, iOS. Comes in at about 650 lines of rather well-documented JavaScript, and could easily be ported to use QML as a renderer if need be (it would be good to have a QML Plug-In that provides a JavaScript context + (a subset of) the Canvas2D API - without using WebKit (cross that off, too), that is). Also, the N900's stock browser has performance problems rendering this, while on the same device in Fennec it's quite playable.
Circle1D: This is a straight Python-to-JavaScript port of a lame 2D "Physics" Engine. It's kept very (read: very, very) simple, and collision detection could be done in a nicer way, but the inefficiency of it provides a nice benchmark for comparing JavaScript engine performance (I'm sure you can find "engine performance" on your bingo card as well) on mobile devices. The N900's default browser can't handle it at all, but Fennec can at least render/simulate it, albeit slowly.
One Whale Trip: This game actually started out as a Python game for PyWeek last September, which was also ported to the N950/N9, but as a test for trying out WebGL, I decided to port it from Python/PyGame to JavaScript/Canvas2D and then to WebGL (the Python version also contains two renderers - a "blitting" one using PyGame surfaces, and an OpenGL one using OpenGL [ES 2 on mobile]). The Canvas2D version works again in all modern mobile browsers (same as above), the WebGL only works on browsers supporting WebGL, for example Fennec/Firefox on both the N900 (even though very slowly) and not in any of the stock browsers (even not the one on the N9). As WebGL is "roughly" the same as OpenGL ES 2.x, one could imagine sharing at least shader programs for a possible C++-or-JavaScript cross-platform application.
So yeah, for smaller applications and/or games, HTML5 is definitely an option. In Firefox OS, your HTML5 web app will - also with WebGL - work and integrate nicely as "native" app. If you also want to create "native" applications (maybe after finishing the HTML5 version), consider encapsulating your JavaScript code so that you can re-use it in QML code, or (in case of WebGL apps), at least design the rendering part of your application in such a way that the code/architecture and shader programs can be shared with a C++ port of your existing HTML5 app.
Another option that's worth considering: Writing a compatiblity application layer that can load (specially-crafted) WebGL subset applications and display them on a fullscreen SDL-(or Qt)-provided window. Applications written in this WebGL subset could then be deployed on the web as HTML5 application or "natively" running on top of a JavaScript engine only. I'd call that "webglenv", and no, I haven't written it yet.
Sonntag, 23. Dezember 2012
gPodder 2.20.3 for Maemo 4 and Maemo 5
| gPodder 2.20.3 running on Maemo 4 (N810) |
| gPodder 2.20.3 running on Maemo 5 (N900) |
Montag, 24. September 2012
gPodder 2.20.2 for Maemo 4/5, gPodder 3.3.0 for MeeGo 1.2 Harmattan
The reason why another 2.x release comes out at this point in time is because YouTube downloading was broken by another website change recently, and of course we don't want to leave our good old Maemo users without their daily YouTube video fix. A full list of changes for Maemo 4 and 5 can be found in the 2.20.2 release announcement.
Version 3.3.0 for MeeGo 1.2 Harmattan brings some nice features like download resuming, filters for unfinished files, scroll position improvements and display of the publish date and file size in the shownotes. Of course, 3.3.0 also includes the YouTube download fix. A full list of changes can be found in the 3.3.0 release annoucement.
As a side note, Maemo 5 support has now been completely removed from the master branch as of 3.3.0 (it has never been officially supported, but you could kind of run in on the N900 with some motivation and work). N900 users really wanting to use gPodder 3 should use it on Nemo Mobile, supporting gPodder 3 and its QML UI in Maemo 5 is just too much work, and the time working on gPodder is better spent improving the Harmattan version and making sure that the 2.x branch doesn't break.
Here's the run-down of the release status for various versions and targets:
gPodder 2.20.2 is ready for testing in Extras-Testing for Maemo 5 Fremantle.
gPodder 2.20.2 is already in Extras for Maemo 4 Diablo.
gPodder 3.3.0 has been uploaded to Nokia Store QA for MeeGo 1.2 Harmattan.
gPodder 3.3.0 has also been uploaded to the MeeGo Community OBS.
Samstag, 18. Februar 2012
gPodder 2.20.1 for Fremantle (N900) and Diablo (N8x0)
Just in case you easily get confused by Debian version numbers: The old release is "2.20-1" (version 2.20, package version 1) and the new one is "2.20.1-1" (version 2.20.1, package version 1). Note that dots and dashes are not the same thing.
The gPodder update is already available in Diablo Extras and has been promoted to Fremantle Extras-Testing, so please test it and rate it on the QA page.
Samstag, 21. Januar 2012
gPodder/QML on the N900 - Yesteryear and today
I just found this pre-feb11 gPodder/QML on a N900 on 2011-02-04 video and someone on TMO recently asked me about the status of gPodder for the N900, so I thought I'd try the current version of gPodder on the N900.
The result is a new video of gPodder/QML on a N900 today, which shows what works and what does not.
If you want to try it yourself, get the latest CSSU for your N900 and enable Extras-Devel (the usual disclaimers apparently still apply). Now, make sure to install all of PySide and Qt Mobility 1.2, and the packages qt-components and qt-components-blanco-theme. The theme package is broken right now, so you need to copy /usr/share/themes/blanco/meegotouch from a Harmattan device or the Harmattan SDK onto your N900 manually. When you have done that, simply checkout gPodder (master branch) from its Git repository.
What doesn't work yet:
- Text input fields are missing their backgrounds
- Screen rotation doesn't work (Qt Components bug?)
- Task switching is only possible with Ctrl+Backspace
Apart from these annoyances (and the problem with the missing blanco theme files), everything else works as one would expect. If these problems get fixed (so that all dependencies are readily available from Extras-Devel), I might be able to make some time to package gPodder 3 for the N900.
Harmattan (N9/N950) users: Have a look at the video to see how the play queue and episode list filters work, which will land in a new gPodder release "soon".
Donnerstag, 20. Oktober 2011
gPodder 2.20 for Maemo 4 and Maemo 5, 2.950.14 for Harmattan
For all N950/N9 users: The Harmattan build of the gPodder QML UI is available for free in Ovi Store. The version available in Ovi Store is a development snapshot of the "tres" branch, where we will have an official release soon. I'm using it on a daily basis, and it's very stable and usable - new features will be added as we go along, so check out the new gPodder! You can grab the source code from the harmattan branch in our Git repository.
Donnerstag, 29. September 2011
gPodder Maemo 5 Remota Usability Test Videos
Montag, 1. August 2011
Panucci 0.99.3 for Fremantle is here
panucci --qt) or the QML-based UI (panucci --qml) via command line switches:
We have not yet implemented a task switcher button in the Panucci QML UI, but that might come in the future, and then we might even change to using QML by default with Gtk/Hildon as an option. Jens has even written support for themeing the QML UI with colored themes:
The file selector and file details have also been (re-)written in pure QML for cross-platform compatibility:

Enjoy this new Panucci release, and thanks to Jens for keeping the application fresh and feature-rich. The Panucci bug tracker has now moved to bugs.gpodder.org, so if you find any problems with this release, please report it at bugs.gpodder.org in the Panucci product.
Donnerstag, 7. Juli 2011
New gPodder versions for your N8x0 and N9x0
For the Nokia N950 (and also for the N9), there's already a very early alpha build of the QML for you to try - please note that you might have to remove your database and downloads to be compatible with any changes when the final version is out. There's a thread on forum.meego.com with instructions on how to get it and a screenshot - please also use this forum thread for feedback and any questions that you may have.
In related Maemo/MeeGo news, That Rabbit Game has been packaged for MeeGo Tablet and should be available in AppUp already. There's also a pure OpenGL ES port for webOS, although it's missing some features of the Qt version. If you haven't been following gaming news, our multi-touch game Mong (which is going to have its new name "Plonk" soon) is available for MeeGo tablets and I'll have a Harmattan package for you to try really soon! There is also the Harmattan Event Feed Library for Python which should make posting data to the event feed awesome. And if you really want to port your PySide apps to Android, try PySide for Android, which has just been released today. Yes, lots of stuff happening - expect more in the coming days/weeks :)
Mittwoch, 4. Mai 2011
gPodder 2.15 available; QML UI plans and Diablo support
Because I've been asked about the QML UI several times now: It's still not day-to-day usable, and missing some features. It's also only included in the "tres" branch, and won't be included in the 2.x release series. Judging from the current performance of QML UIs on Maemo 5, I also think that the Hildon-based Gtk+ UI might be better suited for Maemo 5, especially since it has been polished for the last 1.5 years - that's why the current Maemo 5 UI will most likely still be the default, even when gPodder 3 comes out (with the QML UI as an option).
Support for Diablo will be dropped in "tres", but as there haven't been any new features for Diablo in the last several months, that's not really a problem (bug fixes will still be made to the 2.x branch of gPodder, even after "tres" is released - you just have to report them).
That said, the QML UI will be available (and the default) for environments like the MeeGo N900 DE and probably any other MeeGo UIs (tablet, handset, etc..) in the future, and it will come with some exciting new features and a streamlined user interface.
Montag, 11. April 2011
gPodder 2.14 and Panucci 0.99.1 in Extras-Testing
gPodder 2.14 is a bugfix release in the 2.x release series. It includes fixes for YouTube downloads (this fixes the HTTP 400 errors some users were reporting) and adds per-podcast "Keep episodes" settings (to avoid accidental removal of episodes that you want to archive/keep). This release also includes some fixes for feeds that don't include a valid guid element in their entries. Please test and vote for gPodder 2.14-1 in Extras-Testing.
Panucci 0.99.1 is the second experimental release of xerxes2's development branch of Panucci. As announced on t.m.o, this release includes persistence of settings between invocations and a Qt GUI that can be activated by running Panucci with the --qt command-line switch. Thanks to xerxes2 and Helmuth for collaborating on the improvements made to Panucci recently. Please test and vote for Panucci 0.99.1 in Extras-Testing.
Sonntag, 20. Februar 2011
gPodder 2.13 in Extras-Testing (and in Extras for Diablo)

Mittwoch, 16. Februar 2011
Community SSU features to look forward to
- Blurless desaturation: With this feature enabled, the background of dialogs, menus, the launcher and the switcher won't get all blurry - instead, they keep their sharpness, but are darkened and desaturated. (thread with screenshots)
- Bigger task switcher: I think this is one of my earliest patches, now cleaned up to be configurable with different settings. You can choose between the Maemo 5 default layout, the single-column "big" task switcher and the two-column task switcher. I've left the horizontal task switcher out of this, as it wasn't working that well in some situations. (thread with screenshots)
- Rotation around the Z axis: This one makes the screen rotation look much more natural, just like on the MeeGo Handset UX. Instead of rotating around the X and Y axis, this makes the transitions from/to portrait mode rotate around the Z axis. (demo video)
- Forced auto-rotation for all apps: By default, hildon-desktop obeys the preferences of application windows and whether or not they support portrait mode. With this option enabled, hildon-desktop ignores those preferences and instead assumes every application can be auto-rotated. There's no support for the home screen, launcher or switcher, as these things are more complicated to support in portrait mode. (demo video)
In other news, the Community SSU version of H-A-M (that's the Application Manager in Maemo 5) now supports portrait mode, and this might also be merged at some point (it already works with the "Forced auto-rotation" patch, there are just some graphical glitches in the main screen that are fixed by the patch). Anybody up for some HTML hacking to make Maps portrait-aware? Should be easy to do, but I won't work on that one. Contributions welcome :)
Donnerstag, 13. Januar 2011
New packages in Extras-Testing: gPodder 2.12, TV out control widget
gPodder 2.12 "The Odyssey of Flight 33" has been released, which is purely a bugfix release for those of you who found an empty podcast list after skipping a gPodder version during upgrades (this release fixes both the initial problem and tries to recover databases for which migration has failed). The updated package is also available in Diablo Extras already for N8x0 users. Please test and vote for gPodder 2.12-1 in Extras-Testing!
A new desktop widget written by Ville Syrjäl has been packaged for Extras. TV out control lets you control advanced features of the N900's TV out such as aspect ratio and scaling - those settings are not accessible from the official control panel applet, which is closed source (vote for that bug if you'd like to see it open sourced and improved through the Community SSU). Please test and vote for the TV out control widget in Extras-Testing!
Mittwoch, 29. Dezember 2010
qw 0.1 is now available for Maemo 5
My second new game this year - qw - has been released for Maemo 5 today. Version 0.1 (a tech demo, not a proper final release) gives you a sneak peek on the gameplay with 9 different levels and four-player support (if you hook up an external USB keyboard or get together really close for some N900 keyboard multiplayer action). The gameplay is simple: You need to control your player cursor (either via touchscreen gestures or keyboard) and enclose areas of the game with lines in order to fill them with a colored image. Beware of the enemies, as they will destroy your lines and split your points in half. If you enclose one or more small enemies, your points are multiplied.
A .deb for Maemo 5 is available from the qw homepage and packages for Symbian are also available. Try it out and send some feedback :) Enjoy!
Mittwoch, 22. Dezember 2010
That Rabbit Game 1.2 is now available for Maemo 5
I've blogged about it already, and even showed some code during an Interview at Nokia World, but there have not been any releases of That Rabbit Game so far, mostly due to Ovi Store QA not understanding what Optification means and requesting that the version number of the application appears somewhere in the app UI (after 15 days in QA). I've made the requested changes, added scoring and pushed new releases (of version 1.2) for both Symbian and Maemo 5 to Ovi QA.
Until the game gets published on Ovi, I decided to release packages on the website so you can download and enjoy the game right away - and maybe even provide some feedback. Please don't mirror/redistribute the packages, but link directly to the website. Download That Rabbit Game for Maemo 5!
Controls are via accelerometer (to tilt the rabbit head left/right) and via touchscreen (tap to flap your wings - the longer you tap, the harder the wings flap). The goal is to lose 10 coins in 90 seconds by getting shot 10 times. After that, the next goal is to lose the 10 coins in as little time as possible. Yes, you control the rabbit head, and not the crosshairs.
Updates and changes will be announced via @thatrabbitgame on Twitter, so follow it and tell your friends. Enjoy!
Mittwoch, 15. Dezember 2010
The Qt promise and what Maemo 5 needs
(tl;dr: Nokia should provide updated Qt packages as official SSU for Maemo 5.) Before I start, here are some facts (correct me if I'm wrong):
- The N900 runs the Maemo 5 operating system
- Maemo 5 received some updates (the latest one being PR1.3)
- We don't really expect PR1.4 to come out any time soon, if at all
- The MeeGo Handset images from meego.com are inferior to Maemo 5 and not a replacement (and never will be)
- The MeeGo operating system on the first Nokia MeeGo handset will have a proprietary UX and proprietary apps, and won't be available for the N900
In summary, it means: We are stuck with Maemo 5 on the N900. And that is a good thing! Lots of useful apps, a helpful community (if you subtract the trolls) and a polished OS. Sure, there's room for improvement, and lots of open bugs that should be fixed, but that's another issue (which will ideally be solved by open sourcing closed components with bugs that Nokia isn't interested in fixing anymore and by the Community SSU). This one is about Qt.
Two days ago, an e-mail was sent to maemo-community, proposing a "community service pack", which basically is a big pile of workarounds. Read my response for some initial thoughts.
When Qt arrived on Maemo 5, the promise was two-fold:
- Write your apps in Qt and you're ready for MeeGo (apps written now will run on the platform released in the future)
- Maemo 5 gets Qt support, so MeeGo apps will run on the N900 (apps written in the future will run on the platform released now)
It turns out that the first one will probably hold true (surely with QML, maybe even with QWidget), while the second one is doubtful, as Maemo 5 has only got Qt 4.7.0 through the official channels (PR1.3), with no real official update in sight. If you use QML, use QtQuickCompat as workaround ("Qt Qml plugin that reregisters all “Qt 4.7” types in the “QtQuick 1.0” namespace … useful if you’re forced to stay with 4.7.0 (e.g. on N900), but still want to use the new namespace.").
There is also a real bug (yes, a bug!) in Qt 4.7.0 on the N900, and the fix isn't released as update - it's a new package: libqt4-bearer-hotfix ("This is a hotfix for the broken ICD package in Qt 4.7.0. It can be removed once Qt mobility 1.1 is released."). Now, the proposed "Community service pack" would combine all these fixes into a single dependendable metapackage (yes, a new one). It becomes the "Unbreak my Qt" feature that every app developer has to depend on and specify in the packaging.
This is wrong! No developer targetting MeeGo who has not heard about Maemo 5 will go through all those ugly workarounds and spend a week fixing things up for Maemo 5 just so that the app works. Now imagine what would happen if the first MeeGo device also introduces such kludges once it falls out of its support life cycle. Or what if the problems on Symbian are similar, and developers have to special-case things there. Not only for Symbian^3, but also for S60v5? Fragmentation.
How to avoid fragmentation? Simple: Provide Qt as a "feature" with a quicker release cycle that can be updated every month if need be. Provide Qt updates also for operating systems that don't get updates for the OS anymore. Here's my proposal:
- Provide SSU updates for Maemo 5 for Qt (and Qt Mobility) through official channels (that's the important part here!)
- A new Qt (and Qt Mobility) release should be available on all platforms (Maemo 5, S60v5, Symbian^3, MeeGo) at the same time through official (end-user approved) channels
- Apps targetting stores and repositories (Maemo Extras, Ovi Store, MeeGo Apps/Downloads) should be able to depend on the latest Qt (and Qt Mobility) version
Without that, you'll get fragmentation similar to Android: The 1.5, 1.6, 2.1 versions are similar to Qt 4.6, Qt 4.7.0 and Qt 4.7.1 (for example). Again, you don't need to update the OS, just update the framework - through official channels!
Samstag, 4. Dezember 2010
Hildon UI elements in QML
Montag, 29. November 2010
gPodder 2.10 for Maemo 4 and Maemo 5 released
As promised last week, a new release of gPodder is out. The package for Maemo 5 is already in Extras-Testing, so test it and vote for it. The package for Maemo 4 has already been uploaded to the autobuilder and should be available shortly.
This new release brings yet another round of UI improvements, and it also incorporates the feedback that I got at the MeeGo Conference:
- Expose "Pause subscription" in UI
- Multi-delete in episode lists (Maemo bug 5182)
- Setting for episode auto-delete on startup
- Custom episode list model (faster loading)
You can find a detailed ChangeLog at gpodder.org/changelog/2.10.

If you are not yet a user of gPodder, why not take the opportunity to try it out? You could subscribe to the MeeGo Conference 2010 Video Podcast (Yahoo Pipe) and (re-)watch the sessions on your device. Of course, audio and video podcasts are supported as well, as are YouTube user channels and Soundcloud users.
Freitag, 26. November 2010
Maemo 5 app UIs: {The,A} big picture
Sooner or later it will be necessary to create a QML UI for gPodder if it is to integrate nicely with devices on which Qt is the "native" toolkit for third party apps. At the moment, the reusable UI elements that can be used with QML (Qt Components) have not yet been officially released (the Git repository is available on Gitorious, though), and there are no UI style guidelines for Harmattan out (yet?). I'm also not able to locate UI style guidelines for QML apps on Symbian^3, and there are only a few small sample QML apps out right now.
Let's look at what we have on Maemo 5 right now. Here's a simplified overview of the current Maemo 5 UI of gPodder:
You can also check out the full-size image (~ 3.5 MB).
The UI follows the Maemo 5 Style Guide where it makes sense and tries to come up with better solutions where the Style Guide does not have a definitive answer. I'd like to hear your opinion about the current UX of gPodder and how these concepts can be translated into a QML app that integrates nicely with "future" UIs (Harmattan, S^3). The new-style episode list that can be seen in this picture will be made available with the next release that will be out Really Soon Now™.
