Dienstag, 27. Dezember 2011

Argh Ovi Store and COBS (and stray .debs in Forums)! ..or: I want my Maemo Extras back

Rant mode on (once again). The reason why gPodder 3.0.2, which has been released two weeks ago has not yet made it into Ovi Store is not because I was lazy (in fact, I uploaded the .deb on the same day as the release day, i.e. 2011-12-13) but because it took Ovi Store QA one whole week(!) to realize that the gPodder package isn't optified. Guess what? Optification isn't really needed by Harmattan anymore, and the Ovi Store has passed all previous gPodder releases which have been packaged exactly the same. Apparently they decided it's necessary this time.
Cool, so now I have to modify my packaging, and Marius' maemo-optify isn't in the Madde environment of the Qt SDK (and I'm not even sure if the package would be accepted then).

For some other reason, my gPodder 3.0.2 package hasn't yet been accepted in Apps For MeeGo even though I've submitted two requests already (and one should be enough?). Add to that that the Community OBS is not really easy to understand or use, but then maybe it's just my incompetence and other developers have no problem with it. It might also be overkill now that nobody cares about building against all these dead MeeGo UXes. The only thing I want to build my stuff against is the latest Harmattan release.

Contrast that to the simplicity, ease of use and clarity of Maemo Extras and its fabulous autobuilder. While it had its own problems, it was surely easier to use, and you knew where the packages came out, and the Maemo 5 Extras QA process has been fine-tuned for several months now. Can't we just have the same for Harmattan? :/

Oh, and by the way: I'd much rather trust an Extras repository (or even the OBS if need be) with a Community-driven QA and building on the server (with sources readily available for the interested!) than the Ovi QA - my Calenderr Hack, which modifies .desktop files of Nokia-provided built-in packages was uploaded by somebody else (I still haven't seen the full source of that package, and only found out that it has been uploaded by a post in the forum thread..) to Ovi Store, and it got accepted.

Bonus question: Which is the most comprehensive software directory for Harmattan? Answer: My-MeeGo.com's ad-infested Software Catalog, mixing Ovi Store links with deeplinks to .debs on some random web servers (and doing a very good job at it, they got most of my Ovi apps/games and random .debs listed). They even got lots of user comments that provide good feedback for developers, while apps.formeego.org looks nice and is ad-free, but contains a whopping 10 stable apps in its directory for the N9, with 14 more apps waiting for review. Because apparently it's hard to come up with something like Maemo.org Downloads for Harmattan.

Montag, 26. Dezember 2011

Tedious fragmentation (maemo.org / meego.com)

Rant mode on. It's really tedious to hunt down information about Harmattan. It's not really MeeGo (and MeeGo Is Dead(tm), anyways) and it's not branded as Maemo, even though it's Maemo. Yeah. It's not really Maemo, but it is. And it's not really MeeGo, but it is branded as such.

Wiki. The Wiki pages are split between maemo.org and meego.com. For example, there's the ARM/N950 page on meego.com and the Nokia N950 page on maemo.org. Oh, and if two Wikis are not enough, have a look at the MeeGo 1.2 Harmattan category on Nokia Developer's very own Wiki. Add to that the Qt Developer Network Wiki content for N950 and you have information spread onto 4 different Wikis. So, where are YOU going to add information?

Forums. Next up are the forums. You know the drill. It's called Handset on forum.meego.com and MeeGo/Harmattan on talk.maemo.org. And if you feel more like a Nokia fanboy, discuss on developer.nokia.com. Or troll(tech) your Qt love on Qt's own Mobile and Embedded Forum.

Repositories. Writing apps is supposedly easy. Publishing them is hard. What will it be? Nokia Store Publish to reach the masses? Or the not-so-well-known Apps for MeeGo? And independent of where you publish your packages, if it's an open source package it's hard for users to track down the sources of your package (which you really should make easily accessible).

Hosting. The good old Maemo Garage still provides good service, the MeeGo Garage never materialized, but is still advertised on meego.com. Nokia Developer obviously also has an offering for you: projects.developer.nokia.com allows you to host stuff (but apparently has been down for a few weeks recently). The rest of the projects is spread between private web pages and Gitorious/Github.

Yes, choice is good. But right now, everything is more complicated than it should be. In the Good Old N900 Times(tm), we gathered information on wiki.maemo.org, discussed on TMO (which was Internet Tablet Talk merged into the maemo.org domain - while not without resistance, this was IMHO a good move) and had the Maemo Garage and the awesome Maemo Extras for all our repository/packaging needs. Granted, the OBS might be better suited for building packages than the Extras Autobuilder, but i'm missing a package interface a'la packages.debian.org for Harmattan which is available for Maemo 5.

The other question is: How long will meego.com hosting be funded, and how long will maemo.org hosting be funded? Wouldn't it make sense to deprecate one of them for Harmattan content and try to move content from the deprecated one to the preferred one?

We (as the Harmattan Community, which I would see as the collective of N950 and N9 users and developers) are a small community, so we should focus our energy on one collaboration place/domain instead of splitting everything between maemo.org and meego.com. I don't want to announce new things on two different pages/forums, don't want to check two different places for new content and publish packages to two different repositories.

Dienstag, 13. Dezember 2011

gPodder 3.0.2 for Harmattan

A new version of gPodder (a free podcast, YouTube and Soundcloud downloader) has been released today. It has been uploaded to the Community OBS (Apps For MeeGo) and to Ovi Store, and is waiting in each QA queue for approval. Some new things to look out for:
  • Common Prefix Elimination: A very cool name for a very space-efficient feature. If all episodes in a podcast have the same prefix in their title, the prefix is stripped. This usually gives you more information about the episode on screen without wasting space with repeated information.
  • Audio Player Scrubbing: You probably know the seeking buttons in the media player. These buttons now show their meaning in a text popup when pressed and - and here comes the cool part - allow you to "scrub" through a podcast.
What scrubbing means is that you can touch-and-hold a button and then scrub on the screen up and down (or left and right - it doesn't really matter, just the distance counts) and the action of the button will be carried out multiple times. This lets you quickly navigate through long podcasts or mixes if you are searching for a certain passage.

Some bugs (like the YouTube episode sorting issue) have also been fixed, more on that in the release announcement. gPodder 3.0.2 "Agent 99" will be available in Ovi Store and Apps For Meego shortly.

Sonntag, 4. Dezember 2011

This weekend's releases: Tap Tap N950, qw.py and the IP Address Widget

Over the weekend, I've pushed out some code for your enjoyment: First up is the incomplete but maybe interesting QML source code of the Tap Tap N950 prototype. I probably won't find time to work on this, but it would be sad to let the small piece of code rot - maybe someone wants to pick up the development of it. I'll answer any questions related to the code in the thread :)

Next up is the open source release of the qw prototype "qw.py", which has been developed during the Super GameDev Weekend 2010 at the Metalab Vienna last December (the next one is at the upcoming weekend; stop by if you are in Vienna!) - nearly 1 year ago. This is not the same as qw The Game in Ovi Store, but it's an earlier version, which still contains multi-player support (4 players on one PC keyboard), and it's written in Python, so it should be easily hackable.

And last but maybe not least is the IP Address "Widget" for Harmattan. This small hack (which is inspired by the earlier Calenderr calendar icon hack) makes use of the fact that the Harmattan UX reloads the icon of an application whenever the .desktop file or the icon file itself changes. The details (and a .deb for easy installation) can be found on the website - basically it shows a way to have semi-interactive "widgets" on the app list on Harmattan. I'm sure that creative readers can come up with some cool ideas :)

Montag, 21. November 2011

Plonk (formerly known as Mong) for Harmattan

Plonk (formerly known as Mong, but renamed since) is now available in Nokia Store for the N9 and N950 as free download:


This is a multi-touch game for two persons, so go out into the big blue room and ask somebody to have a game of Plonk with you :) As you probably already know, this game has been developed at the MeeGo Conference in collaboration with Cornelius Hald and Tim Samoff - sounds have been recorded directly at the hacker lounge by Erik Stein, and Randall Arnold came up with the new name. A real collaborative project, and the source is available from Gitorious! One challenge with Harmattan was disabling Swipe, we solved that with a nifty little class called SwipeControl - it's open source if you want to use it in your game, too :)

Dienstag, 15. November 2011

Hack Tuesday: Tap Tap N950 and Calenderr

The unexpected lack of lectures today (Tag des Landespatrons) left time for some one-off hacks, and here are two for you:

First up is Tap Tap N950, a very basic QML prototype of what could become a funny DDR/TTR clone - no code published yet, it still need some more polishing (and touch area support for multi-touch, plus scoring is also missing).

The other one is a simple hack to make the Calendar app icon always show today's date (day-of-month). The existence of calendar icons for each day (1-31) in the theme on the device lets me suspect that this feature was either planned and then abandoned or that it will come built-in in some future firmware. For now, you can grab this lame shell script and execute it (ideally with "nohup" - see the comment inside - also needs customizations if you changed your root password, and you definitely need developer mode for now) to have an auto-updating calendar icon until the next reboot. Watch the accompanying video for a quick demo. There's now also a forum thread for support and discussion. Sometimes I really wish cron was pre-installed on Harmattan..

Bonus exercise: Store your app's .desktop file in /home/user/.local/, generate the icon dynamically via code and update the .desktop file for some icon overlay action / new items notification ;)

Nokia Austria N9 Photoshooting Campaign

As you know, Austria is one of the few lucky countries in which the N9 is officially available - I even spotted an ad in a local cinema last week (which made me very happy, and I'm usually not very happy about ads in the cinema ;). Now, Nokia Austria is running a campaign until November 27th where you can win a photo shooting and show off your N9 style. If you use the code RHWMZE on the contest website you can get extra points (and you'll find more codes on local bloggers' websites) :)


As you might have heard in the video above, you can go to http://nokia.at/n9style to find all the details about the contest. While you are at it, if you have a N9, try out my free apps in Nokia Store. Two more are currently waiting for QA: Tennix and Plonk - yep, that's right: our Pong-style game formerly known as Mong (developed in collaboration with Cornelius Hald and Tim Samoff) is coming to Harmattan - with swipe locking - you can grab the source already now from our Git repository. And your favourite 2D tennis game is also celebrating a comeback, so be prepared for more casual gaming quality time :)

Mittwoch, 2. November 2011

Why I love the N9 and things I didn't know about WP7

With last week's Nokia World and today's hands-on event in Vienna, I got a chance to try out the WP7 devices and ask questions about them. Here's some insights that I want to share with you, because they might not be obvious if you haven't tried WP7 before (I haven't until last week, and these things were not obvious to me). I'm comparing the Lumia 800 with the N9 here, because they look very similar from the outside.

As the outer shell is basically the same (or in other words: all hardware features that they fitted into the N9's form factor could just as well be fitted into the Lumia 800 form factor), these things are software limitations that are in WP7 right now (doesn't mean that these will stay in the future). Most basic things that the N9 can do (and the WP7 devices can't yet) can even be done by the N900 and Symbian devices. It's also written from a pure end user experience perspective - I've talked about SDK availability earlier.
  • The Lumia 800 has a camera hardware button - the N9 does not. I would really like the N9 to have a hardware camera button (what's the progress on getting one of the volume keys to act as shutter button?)
  • If you turn off the Lumia 800, wake-up alarms won't work - they do work on the N9, i.e. with an alarm set and the N9 turned off, the N9 will turn itself on and ring the alarm
  • If you receive a call from a number that's not on your phone book, you can't directly add it to your phone book - you have to copy the number, then go to the contacts, create a new contact and paste the number there - on the N9, there's a button for this - and it even allows you to "Add new" or "Merge"
  • The N9 has NFC - the Lumia 800 does not (WP7 does not support NFC at the moment)
  • The N9 has TV-out - the Lumia 800 does not (on the other hand, some Symbian devices have HDMI out in addition to TV-out - that would have been nice for the N9 as well ;)
  • The N9 can be used in USB Mass Storage Mode - the Lumia 800 can not
  • The N9 shows the time (+missed calls/new mails/SMS) on its low-power standby screen (like the N8 and E7) thanks to the AMOLED screen - the Lumia 800 has the same screen technology, but (due to WP7 not supporting it, as I've been told) there's no low-power standby screen (the lock screen when the device is reactivated does have more information, though)
  • You can send and receive files via Bluetooth on the N9 - I've been told that you can't do this with the Lumia 800 (Update: According to Allan, there is an app for transferring contacts from an old phone to the new one - no info about arbitrary files yet)
  • The N9's marvelous virtual keyboard (an open source project, by the way) has very good tactile feedback - on WP7, the only feedback you can get is an audible one (although a long-time WP7 user told me that the virtual keyboard there is very good, even without tactile feedback)
  • Swipe. It really makes a difference
What's the point you ask? These are the things that let the N9 really shine compared to its WP7 "successor" (I don't talk about openness, SSH-into-ability, QML, hackability, Python goodness and other things here - that's something that developers like and really, really care about) for end users (it obviously also ignores apps, services, "ecosystems", but I'd argue that the things that I personally need are available on the N9 as well).

It also shows that when a vendor controls both hardware and software, they might be able to put together a more interesting HW/SW mix compared to the situation where someone else controls the software. And it really lets me look forward to the Next Billion(tm) and QML there. But for now, let's enjoy the N9 and create some cool apps (and games) for it, like a FM Radio GUI for javispedro's fmrx app or gPodder 3 (coming soon) maybe?

Samstag, 29. Oktober 2011

Comparing Mobile OS SDK availability by platform

Coming back from Nokia World in London earlier this week (thanks to Nokia Developer for inviting me), I've been thinking about the SDK availability for different mobile operating systems given a specific Desktop platform. While leaving out all the other criteria (openness, libreness, licensing, UX, device capabilities, programming languages, toolkits, data formats, annual costs for the SDK/developer account, store rules, target audience, revenue splitting, advertising/in-app purchase options, coolness, etc..) developers can choose their mobile OS by, I want to highlight a specific aspect: The availability of an SDK for a given Desktop operating system.

First up, I'm only talking about native apps here (with "native" being anything that's not just some HTML+JS zipped up or served via the web, i.e. native usually means you need to have some form of compiler, even if it targets a VM). If you are into "web apps", chances are that you don't need an SDK to get started (even though one might help). I'll look at iOS and Android (because these are the strong mainstream OSes today), Maemo/MeeGo (because it's my platform of choice right now), Symbian (because I'm targeting it too with Qt) and WP7 (because that's what MS and Nokia want to succeed). When I write "MeeGo" I mean MeeGo 1.2 Harmattan, which technically is more like a "Maemo 6". Think "the OS that the N9 runs". I have a bit of experience with Android development, no experience at all with iOS or WP7, some experience with Symbian (through Qt) and arguably lots of experience with Maemo/MeeGo (yay!).

Why is that important? First up, if you are a Linux or OS X user, chances are that you don't have a Windows installation, and installing Windows will cost you money (for the Windows license), time (because you have to set it up) and space (because you have to dedicate a partition/VM image for it). If you don't have Apple hardware, getting an OS X installation means purchasing Apple hardware (ignoring Hackintoshes here), which is again costly. At least you would need to purchase OS X and dedicate a partition/VM for it, plus the time it needs to set it up.

Why OS X and Windows? As far as I know, if you want to develop for iOS, you have to use XCode, and that is only available on Mac OS X. Similarly, if you want to develop for WP7, you have to use the Windows Phone SDK, which is only available on Windows (>= Vista according to the website, so your XP install might not help there).

Now, let's look at Android, MeeGo and Symbian. Android's SDK is available for Windows, Linux (x86 and amd64) and Mac OS X. You can compile your apps on all these platforms (using your system's javac + tooling provided by the SDK). For C/C++ Android apps, the NDK is also available for all three platforms. For Qt-based OSes (Symbian and Maemo/MeeGo), the Qt SDK itself is available for Windows, Linux (x86 and amd64) and Mac OS X (64-bit). Using the Remote Compiler (which uses compilers set up on a server farm at Nokia, and you need a Nokia Developer account to use it) you can compile Symbian binaries on OS X, Linux and Windows, although the locally-installable compilers for Symbian are only available on Windows (at least that was the case 6 months ago). For Maemo and MeeGo, cross-compilers exist natively for all supported platforms of the Qt SDK, so without using Remote Compiler, you can build and package your Qt apps for MeeGo on Windows, Linux (x86 and amd64) and OS X.

Now, people can argue that one can set up dual-boot or virtual machines to support all OSes, but that's not the point. The point is that if the SDK is available on all Desktop platforms (note that this is not the same as SDK targetting all mobile platforms), developers can retain their choice of Desktop OS on which they develop on, and are not forced to use OS X or Windows for development of apps for the corresponding mobile platform (I also understand the reason why these companies only provide the SDK for their own Desktop platform, but that is not a good reason from a developer's point of view).

I hope that the Qt SDK will continue to support Windows, Mac OS and Linux for any mobile target platforms that it supports - be it ones named after winds or not - so developers have a choice of development platform.

In other news, gPodder 2.950.15 has been uploaded to Nokia Store (still waiting in QA) which fixes video playback and streaming, so grab the update on your N950/N9 when it becomes available :)

Donnerstag, 20. Oktober 2011

Games (and their backstory) for your N9, N900 and N950

I've recently been asked again about the games I wrote for mobile devices, so here it is: The post with an overview of the games, with some not-so-well-known backstories and information on where to get them for different devices. Plus a little teaser hidden somewhere.

Gaberln (N950, N9 (+Symbian): Ovi Store, N900: Maemo Talk)
This game is a simple soccer ball juggling game - developed using QML, in collaboration with Tim Samoff, who did the great artwork (and who also did the Mong artwork) - we still have to add some more features, and Tim has already done the graphics for a special hacky sack mode, let's hope we get around to finishing it at some point :)

qw The Game (N950, N9 (+Symbian): Ovi Store, N900: .deb on request, @qwgame)
This game is similar to Qix, but has its own style, and the enemies are a bit different from Qix - but it basically is an area filling game. The reason why the game is called "qw" is because it started out as a small Python hack (qw.py) during the Super Gamedev Weekend 2010, and qw were the first two letters on my keyboard. A nicer explanation is that it can be spelt (in German) like Cuvée and a reference to the different blend of different photos (flowers, places, animals) that you have to play through. The photos have been done by vogelvau, the menu structure is done using QML and the gameplay itself uses a QGraphicsView-based drawing engine.

That Rabbit Game (N950, N9, N900 (+Symbian): Ovi Store, @thatrabbitgame)
This is my first game to be published in Ovi Store; it's a "inverse duck hunt"-style game where you control the flying rabbit head, and have to get yourself shot by approaching the crosshairs and keeping steady. Flapping the wings is done by touching (the strength depends on the duration of the touch) and moving left and right is done using the accelerometer. The initial version of this game was developed in Java as an Android game for an OpenGL ES course at our University (PDF). The game for Maemo, MeeGo and Symbian is a complete rewrite in C++/Qt with the artwork taken from the original game, which I did myself in Inkscape. There is also a webOS port using OpenGL ES.

Tennix (N900, N8x0: Extras)
This one is quite old, and is actually based on a really, really old codebase of a school project from 2003. In 2007, I decided to port it to SDL for Desktop Linux, Mac OS X and Windows, and since SDL is available on Maemo as well, I then ported it to Maemo 4 in January 2008. A special "2009 Edition" was created for the N900, with updated controls and a Python-based AI enemy (using the CPython API / libpython). What about Harmattan you ask? Well..

Some of these games are just free and closed source for now. I do, however, definitely plan to release them as open source in the future. The problem is having used non-free artwork in the early prototyping stages (i.e. getting "something" visible in the engine) before replacing them with my own artwork, so I'll have to make sure to remove these things from the repository history before publishing the source. Also, code cleanups need to be done ;)

Download and enjoy the games - I'd be grateful if you could leave some feedback (either via Ovi Store, Maemo Talk, comments here or e-mail).

gPodder 2.20 for Maemo 4 and Maemo 5, 2.950.14 for Harmattan

gPodder 2.20 has been released. New packages are already available for Maemo 4 (in Extras) and Maemo 5 (in Extras-Testing). If you are using gPodder on Maemo 5, please test the package and vote for it on the package page, so it can get promoted to Extras when it has been tested by the community.

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

Back in August, Jarkko Mikael Palonkangas has been looking for Maemo 5 users without any experience in using gPodder. His Master's thesis is about the Thinking Aloud usability testing method on mobile devices, and he chose gPodder as the example application. The application used for managing the test cases has been written by Jarkko for Maemo 5 and is called Remota - it takes care of displaying the tasks to the users, recording screenshots and audio and retrieving the logging output from gPodder.

Remota log viewer with UI action log at the bottom

If you are interested in seeing how this looks, or if you would like to help to comment on the usability issues and find improvement ideas, please feel free to click through the videos below, which have now been uploaded:


Unfortunately, user 4's logging output had problems, so you only have audio and video for these tasks - for users 1 through 3 we also have logging output about UI interactions, which was possible by patching the gPodder source to add additional handlers to buttons and other UI elements while the UI was created on application startup.

Please feel free to add comments to the videos - Jarkko is going to process them and include the finding in his final work, so that would be an easy way to contribute.

Montag, 19. September 2011

SwipEout - Python + OpenGL ES 2.0 on the N950 (and N900!)

Last weekend I've been toying around with Open GL ES 2.0 on the N950 after finding a nice Xlib-based Python example on the web for the N900. I modified the code a bit, replaced the Xlib code with a QGLWidget from QtOpenGL (via PySide), which makes the setup a lot easier and (apart from API differences of GL ES 2.0 and Desktop GL) allows me to test the prototype on my normal computer as well.

After I got the hang of it, I decided to come up with some fancy 90s-style hover racing game (only texturing, no lighting), or at least parts of it - right now, the small hovercraft just runs around the track and you can shift it left and right via the touchscreen and switching between normal and bird's view by pressing any hardware key.

As for the GL ES bindings (this is the interesting/useful part to developers who want to access the GL ES 2.0 API from Python), I put together a naive header-to-ctypes binding generator for the GL ES 2.0 API which you can run on "gl2.h" from the Qt SDK's Madde sysroot (too lazy to search for a working binding generator that surely exists somewhere out there already) - or just grab the generated "gles2.py" from the SwipEout source tarball. The result? Video it yourself.


You can grab the source code and miscellaneous files from the SwipEout website. The code was tested on the N900 and N950, you only need Python, PIL (python-imaging), PySide and the Open GL ES 2.0 libraries (libGLESv2.so) installed. Removing the PIL dependency and replacing it with Qt-based texture loading is left as an exercise for the reader. Enjoy :)

Donnerstag, 1. September 2011

qw The Game 1.5.1 is here - for MeeGo and Symbian

Control the white ship to fill areas.
Last December, I started to work on a new game: qw ("cuvée"), an area filling game similar to Qix. Since the tech demo has been released, I've been working on a fancy QML menu, a balanced scoring system, nice rendering effects for enemies and the player's trail and obviously some more levels, which results in this new release, version 1.5.1, with 13 high-definition images that are waiting for you to get their colors back.

The game is now available from Ovi Store for N950 and N9 users, and also for Symbian devices - the advantage of the MeeGo version being that it has higher-resolution artwork (it fully utilizes the higher screen resolution) and sound effects (for some reason Qt Mobility's QML SoundEffect has its problems on Symbian). Both versions use the feedback motor of the device for feedback when you draw, fill or die.

Here's a gameplay video of the first 3 levels, so you can get a feeling of how the game plays:

Montag, 29. August 2011

N9 Hackathon in Vienna (Austria) on October 8th and 9th 2011

For the launch of the N9 (yes, we are one of the countries in which the N9 will be officially available, and at least 3 of 4 operators will offer it with a contract), Nokia Austria is organizing a N9 Hackathon around the N9 on the second weekend of October (2011-10-08 + 2011-10-09) in Vienna. If you live in or around Austria, or wanted to have an excuse for coming to this nice place from abroad for some serious coding, this might be a good opportunity to meet some fellow Maemo/MeeGo community members and get some hacking done. We plan to have some hardware like NFC tags to develop cool stuff with the N9's hardware, so don't forget to bring your creativity as well as skills ;)


Accomodation and food/drinks at the Hackathon will be provided by Nokia Austria, but accomodation places are limited, so please get in touch if you are interested in coming, so I can make a list of people who plan to come, and can keep you up to date on the event. Bonus points if you want to demo and/or talk about one of your apps that you have already written (or are in the process of writing), but interested developers new to Maemo/MeeGo are also very welcome! :)

Dienstag, 9. August 2011

Introducing Gaberln, a soccer juggling minigame

Tim Samoff and I have been working on a game - it's a soccer juggling game called "Gaberln" (and that's why). Here's a screenshot:


For now, you can watch the Gaberln video on YouTube. There's a forum thread for all your discussion needs with an experimental build - use at your own risk! :) More infos can be found on the Gaberln homepage.

Here's a small rant: It's a pity we don't have apps.meego.com now (and it's kind of sad to see the ad-laden my-meego.com downloads section being the closest that comes to an app catalog at the moment). Anyway, I'll try to get it into Ovi Store and AppUp, and hope that apps.meego.com will become a reality soon. A Maemo 5 release is also planned, and it should theoretically be runnable on Symbian^3 as well.

Sonntag, 7. August 2011

gPodder QML Mock-ups by wazd, part 2

Here's the second part of our mock-up collection for gPodder's QML UI (part 1 here). Let's start off with two more recent designs: One for the bottom media player and the "tab" to pull it up (the tab would always be visible while something is playing) and the other for the episode actions, which is something that I though would be good to have in addition to the context menu - the episode actions will put the most important actions (download, delete, play, stream, shownotes) into view when an episode is selected from the list:


Next up are two more of these green-ish mock-ups, where one has a different style of playback control buttons for the audio player widget, and the other one is an example of how the settings view could look like in the new style (again, this was before any of the Harmattan UI style guidelines have been published, so the design is very unique and doesn't take into account the availability of Qt Components yet):


And finally, here is a mock-up of a possible "Summary" view, summarizing what's new and also suggesting some new podcasts that might be interesting for you, based on existing subscriptions. This is not implemented yet, but it could be added at some point with a more deeper integration with gpodder.net, which already provides podcast suggestions and a tag-based podcast directory:


Thanks for your interest, and stay tuned for some updates regarding gPodder itself (for N8x0 users, N900 users and N950/N9 users as well) in the next days!

Mittwoch, 3. August 2011

gPodder QML Mock-ups by wazd, part 1

Andrew Zhilin has been creating awesome mock-ups for the last few months for gPodder's new QML UI. Back in December 2010, Andrew started with the first mock-ups based on the screenshots from meego.com:


After that, we decided to go a step further and make it look even more futuristic (this was partly inspired by Metro - two months before #feb11). Most of the title bar and podcast list design have been kept (although evolved) in the current design. This is also the first time that Andrew integrated the playback feature into the mock-ups - a player "widget" that can be pulled down. In the current version, it's still a widget that can be brought in with a tab, but it's placed on the bottom:


And here are two more of these rare mock-ups - the first one was a suggestion for the main menu (something which we don't have at the moment - the "main view" in gPodder/QML currently is the podcast list, with buttons in the title bar for more actions). The second one is also a very unique design in my opinion - I especially like the vertical progress bars, and the slick black-and-gray color tones. The gray rectangle at the top of the second mock-up was just a placeholder for the window manager's title bar:


Stay tuned for more mock-ups by your favorite Russian designer in the second part. Also, the real implementation of gPodder/QML is progressing nicely. Expect some additional updates on this in the next days, too :)

Montag, 1. August 2011

Panucci 0.99.3 for Fremantle is here

Jens has been working on the QML UI of Panucci (a resuming podcast and audiobook player for Maemo and MeeGo) to get it working on the N950 and he has recently fixed the Bluetooth headset support on the N950. While he does not have a N900 to test and build Panucci releases, I'm more than happy to jump in every once in a while and update the N900 build of Panucci for all Fremantle users. Today is such a "once in a while" day: Panucci 0.99.3 has been uploaded to the Extras repository and should be available in Extras-Testing soon. The default UI in this release is still the Gtk/Hildon UI, but you can opt to use the QWidget-based UI (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.

Samstag, 30. Juli 2011

N900 camera protip: Get rid of flash reflections

I think it was during MeeGo Conference 2010 when I was first told that I should cover the N900 camera cover's blue and silver bevel with a dark color to prevent them from reflecting the flash light and making the photos worse than they could be. If you don't use the N900 with flash at all, this "hack" doesn't apply to you. Otherwise read on. If you look at the N900's camera cover, you see that the camera hole is surrounded by a blue border on one side, and silver borders on the three other sides:



Now, when you take a photo with the flash, the flash light is reflected, which makes the taken photo to appear as if there was some smoke or fog in front of you. In reality it is the reflection of the bevel. So, take a black marker and take off the back cover of your N900 (you don't want to accidentally cover your camera lens with black color!):



Now carefully cover the silver parts around the camera hole (and the blue part too, ideally) with black color. The result should look like this:



You might get even better results if you take a marker with a finer tip or even use black spray paint or something. If you don't have a marker ready or do not want to paint on the back cover, you can also take off the back cover of your N900 (which has the same effect), but you will probably need a small magnet to trick the magnetic switch into reporting "camera cover opened" to the camera application.

Donnerstag, 7. Juli 2011

New gPodder versions for your N8x0 and N9x0

It's been over two months since I've released a new stable release of gPodder. Now it's time again to catch up with some of the fixes that have landed in the "master" branch of gPodder (while we are still adding cool stuff to the "tres" branch, where the QML UI and other improvements happen). Anyway, gPodder 2.16 "Over There" should be available in Maemo Extras for both Diablo and Fremantle soon, please test the package and (in case of Fremantle / Maemo 5) also vote for it, so it can land in Extras eventually.

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 :)

Montag, 6. Juni 2011

On app stores, compliance, packaging and tooling

I've been ranting about packaging requirements for app stores and the long roundtrip time and back-and-forth messaging that needs to take place until a package really gets published into an app store before. My experience here is with Nokia's Ovi Store and Intel's AppUp Center, and I'm obviously more interested in the Maemo and MeeGo-related parts (Ovi supports Symbian too, and AppUp supports Windows). First up, here are the documents that formalize the requirements:
Both documents basically describe how packaging should take place, and this diverts somewhat from what upstream distros' packaging guidelines say (i.e. Debian in case of Maemo and Fedora in case of MeeGo). You have to install things in /opt, your binaries have to have a namespace to avoid clashes, there are different requirements for .desktop files and don't get me started on icon installation locations and sizes. Most of these things are already defined by freedesktop.org, but stores tend to have their own, incompatible rules. This means that as an application developer, you basically have to "rewrite" your packaging for every store/target/device, which is tedious and error prone.

Also, in case of Qt applications using qmake as the build utility, can't we have some magic qmake commands/macros that would do the Right Thing in terms of packaging for a given store? All that would be required is a list of metadata (name, "namespace"/domain name, description, category, ...) and an application icon, and the rest can be figured out by the build system (I'm thinking of the MeeGo Factory video here - put a qmake-based Qt source tarball in at the one end, and get an AppUp-compliant RPM, Ovi-compliant DEB, etc.. out at the other end - without having to care about distro-, store- or even device-specific packaging differences).

Apart from the fact that one has to do much special-casing, the other problem is that the rules are not always clear, and can be interpreted in multiple ways - the only way to find out if you picked the right interpretation is to wait for a few days (AppUp in my experience has been faster than Ovi Store with that) until you get feedback from the QA teams.

I would really like to have an automated "package checking" tool (provided by an app store vendor, i.e. Nokia or Intel) that I can run locally before I upload my packages, so that packaging bugs can be removed very early on (i.e. assuming 3 iterations to get the package right, and an estimated 3 business days of QA response time, the "upload and wait for feedback" approach would be approximately two weeks, whereas the "check locally using automated validation tool" approach would take about 3 days, because I can do the three iterations locally in about an hour and then wait 3 days for the QA team to check the contents, etc..).

So, my wishlist for a good app store - developer relationship:
  1. Provide automated tooling to check for packaging errors/compliance
  2. Make sure to align as much as possible with freedesktop.org and other app stores
  3. Provide example packaging, add positive and negative naming/config examples to the docs
  4. Provide an easy way to check for and fix package dependencies
  5. Allow developers to submit new versions from the command line / via scripts (requiring the developer to go to a website and using an upload tool is not developer friendy :/)
  6. Allow developers to upload new versions while an old version is still in QA (AppUp, I'm looking at you)
I'm really starting to wonder if it wouldn't be better to integrate the app stores more with tools like OBS and other developer-friendly utilities, and looking forward to better developer experiences in Ovi and AppUp in the future. In the mean time, I'm really happy with the meego.com Community OBS :)

Mittwoch, 1. Juni 2011

MeeGo Conference 2011: Exploratorium and Hacker Lounge video

If you missed the MeeGo Conference last week or for whatever reason can't remember what went on at the party, here's a short video of San Francisco, the party at the Exploratorium and of course some Hacker Lounge activities:


Huge soap bubbles, a red bridge, mini-tornados, glass bottle ping pong, real-life Mong, losing at Lunar Lander (it was really, really very hard ;)) and Maemo community members dancing to Jessie's Girl performed live (and wondering who ordered that song..) - Enjoy :)

Samstag, 28. Mai 2011

MeeGo Conference 2011 in San Francisco

I've been lucky to be among the sponsored participants for the MeeGo Conference 2011 in San Francisco this week (thanks to the Linux Foundation). As with the last events, it's always nice to meet up with fellow Maemo community members whom I already knew from previous summits/conferences and also to finally meet some new community members in person for the first time.

Intel loaned out ExoPC hardware running MeeGo Tablet UX for MeeGo development during the AppUp Event on the Warm-Up weekend. Conny had the great idea to start a multi-touch Pong game that we now call "Mong" (Gitorious repo) and that we now collectively develop with some community members (sounds - recorded live from the Air Hockey tables at the Hacker Lounge! - by Erik, graphics by Tim, code by Conny and me):


More photos of the event: Conference and Party on Flickr. Don't forget to add your photos to the MeeGoConf2011 Flickr group. My Python + PySide talk went well, too bad that Matti (who helped prepare the presentation - thanks!) couldn't come. Slides are already available, and check out the MeeGo-Python tutorial if you want to get started. I'd be grateful for any feedback on the session and the tutorial - especially the things that weren't clear and could be improved.

About the keynote, I mostly agree with Jaffa's thoughts about how it could have been better, and that there should have been some announcements or commitments to release MeeGo-related end user products to give the project some much-needed(?) backing from vendors. I also agree with "MeeGo needs Harmattan a lot more than Harmattan needs MeeGo" - even though it isn't "real MeeGo", it's presumably the single polished MeeGo-related handset product that will (hopefully?) be available soon-ish.

But again, from a community perspective, MeeGoConf SF 2011 was great (thanks to LF for the sponsoring and to the organizers for choosing a great venue), San Francisco the city was awesome and - judging from the rumors on TMO - I'm pretty sure that we're looking forward to a great June that will allow us to finally port our apps to new MeeGo-related hardware.

Let's hope that we have an opportunity to meet up again in some future Maemo/MeeGo-related event :) Thanks for a great week!

Mittwoch, 11. Mai 2011

gPodder on the N900 MeeGo 1.2 Developer Edition

If you want to try the MeeGo N900 Developer Edition for the N900 but think that clicking through the Widgets Gallery gets boring after 45 minutes, why not try out the QML UI of gPodder on it? It's pretty easy. This post assumes that you are using the alpha release of the N900 Developer Edition from a microSD card and boot via USB.

Thankfully, Python 2.6 is already preinstalled, but you need recent PySide packages for gPodder to work (PySide exposes the Qt framework to the Python world), you can get them from PySide binaries for MeeGo. You don't need to upgrade Qt, simply installing the PySide packages is enough:

zypper addrepo http://download.meego.com/live/home:/renatofilho/Trunk/ pyside
zypper install python-pyside


What you need now is a recent Git checkout of gPodder's "tres" branch. I suggest you do that on your computer:

git clone git://repo.or.cz/gpodder.git
cd gpodder
git checkout tres


Now there are two pure Python dependencies for gPodder that you also need. As there are no packages for them in MeeGo yet, you also have to provide them manually. The first one is the Universal Feedparser. Grab a recent release from the downloads page and copy the file feedparser.py to the src/ folder in your gPodder checkout. The second dependency is mygpoclient, a client library for the gpodder.net web service. You can check out the latest version from Git:

git clone git://repo.or.cz/mygpoclient.git

In the checkout, you will find a folder called mygpoclient - copy this to src/ in your gPodder checkout. Now you have a complete, self-contained gPodder checkout on your computer. Use rsync or scp -r to copy it over to your N900 (you can use USB Networking for that).

Now that you have everything on your N900, you have to add some subscriptions manually (mostly because the QML doesn't yet have the UI required to subscribe to new feeds) - use bin/gpo to start the command-line utility, then do something like subscribe fb:linuxoutlaws to subscribe to an example podcast. Quit the command line application and start the QML UI using bin/gpodder --qml, which should - after some loading time - show gPodder/QML on your MeeGo 1.2 Developer Edition environment.

If you have made it this far, don't stop here - try out the examples from the PySide/QML Tutorial and familiarize yourself with Python development on MeeGo - it's easy and fun!

Mittwoch, 4. Mai 2011

gPodder 2.15 available; QML UI plans and Diablo support

A new version of the open source podcatcher gPodder is now available for Maemo 4 (Diablo, N800 and N810) and Maemo 5 (Fremantle, N900). For Diablo, the package is already promoted to the Extras repository, so it should appear as an update soon, and for Fremantle, it's in Extras-Testing waiting for some reviews and votes from you (yes, you!). Please test and vote for gPodder 2.15-1 in Extras-Testing. This is a bugfix release in the stable 2.x release series, and also includes some translation updates as well. For full details, see the official release announcement.

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

If you are one of those N900 users who use their devices for listening to podcasts and audiobooks, please help getting the latest versions of gPodder and Panucci into Extras and provide feedback/bug reports. For Diablo (N800/N810) users, gPodder 2.14 is already available in Extras.

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.

Samstag, 2. April 2011

gPodder/QML progress update

While the 2.x branch of gPodder is still updated - a new release should be out soon - the awesome stuff happens in the "tres" branch, where the refactoring takes place and also where the QML UI is built. I've reserved some time this weekend to work a bit on the QML UI so that it is at least day-to-day usable for me, because it turns out if I don't force myself to use the QML UI, I'll just use the Maemo 5 UI and not work on the QML UI ;)

I've uploaded two new videos today: gPodder/QML on the N900 and gPodder/QML on a Desktop. This is exactly the same Python codebase (utilizing PySide), which is great for testing on the "big" computer. It's also truly cross-platform, as you can see it running on OS X in the Desktop video. Unfortunately, Qt Mobility 1.2's QML Video component is broken, so there's no video playback on the N900. Video playback great on the Desktop, though, and audio playback works fine on both the N900 and Desktop.

The UI is still in a rough state, but it's a great place for experimenting around with some ideas to see what works and what does not. I really like the integration of the playback feature into gPodder, as it provides a better integrated experience on handsets. It obviously also loads faster compared to loading a separate media player. The UI is scalable and should work well on tablets (which is especially useful for YouTube channels and video podcasts).

The new codebase still hast the Desktop GTK+ UI and the Maemo 5 GTK+/Hildon UI in there, they share the same backend code as the QML UI. The code is not ready for public consumption, but if you really want to try it out, you'll find the code in the "tres" branch in our Git repository. If that's too little information for you to get started, then you shouldn't yet use it :)

Dienstag, 8. März 2011

Improved tactile feedback with the Community SSU

The latest version of hildon-desktop features experimental support for improved tactile feedback. What this means for you is that if you enable this feature, you will "feel" app menus and dialogs appearing and disappearing, just like on some Symbian^3 devices. It's disabled by default, but you could give it a try and see if it improves your experience.

First of all, you have to install the tactile helper from Extras-Devel (Git repository here). Then, you need to edit /usr/share/hildon-desktop/transitions.ini with a text editor as root and set the value of tactilepopups to 1 (i.e. change "tactilepopups = 0" to "tactilepopups = 1"). Save the file, and the changes should be applied instantly (if you have the latest version of the CSSU installed). Yes, I know that this forks a new process every time a feedback is played, but this keeps the architecture open for experimentation and prototyping of new ideas. It also didn't noticeably hurt my N900's battery life when used for a few days.

One further improvement would be to add support for "tactile" into Hildon, so that it vibrates when you press a button, but it doesn't vibrate if you touch a non-sensitive area of the UI (because right now, it vibrates on every touch when configured to do so, and that's not really tactile feedback of UI elements - you can "feel" the screen anyway, and it doesn't matter if the device registered your touch if the touch turned out to fall into a spot where no action will be carried out). I'm not sure if Qt Mobility's Feedback API already supports controlling the N900's vibra motor, but if not, there would be another great improvement opportunity.

The tactile helper can be easily integrated in other apps, the source should be trivial to understand, and easy to utilize in third party applications. It also comes with an example ('tactile-demo.py') that you can have a look at for a more elaborate example :)

Dienstag, 1. März 2011

The Return Of Panucci (0.99.0 for Fremantle)

Since gPodder gained support for MAFW, and therefore resuming support for the built-in Maemo 5 Media Player, there was less of a reason for me to continue working on Panucci (though some users still prefer Panucci over the built-in Media player). Recently, Jens and Helmuth collaborated on bringing Bluetooth support back into the 0.9 branch in the Panucci thread on t.m.o.

Jens has also fixed some other issues and is now continuing development of Panucci, which is great :) I'll continue to package Panucci releases for Maemo 5, and review the commits and provide feedback, but won't be working on any features myself. Here's a teaser screenshot:


The new version, Panucci 0.99.0, has already been uploaded to Extras-Devel, and will be promoted to Extras-Testing soon. If you want to contribute, check out Panucci on GitHub - patches are gladly accepted!

Sonntag, 20. Februar 2011

gPodder 2.13 in Extras-Testing (and in Extras for Diablo)

A new version of gPodder, a podcast downloader for Maemo 4 and Maemo 5 has been released. The new release is already available in Extras for Maemo 4 (i.e. N800 and N810), and is currently in Extras-Testing for Maemo 5 (please test and vote!). You can read the official announcement on the gPodder blog, or go directly to the detailed ChangeLog. This release fixes some issues reported by our users, improves the episode list on Maemo 5 and adds the often-requested "Download only when on Wi-Fi" feature:


This release does not yet contain the QML UI, as it is not ready and/or feature-complete yet, and the QML development happens on another branch ("tres" in the Git repo) that contains more under-the-hood changes that cleans up the gPodder codebase. The QML UI will be released "when it's done" :)

Mittwoch, 16. Februar 2011

Community SSU features to look forward to

I've been writing some patches for hildon-desktop (the window manager on Maemo 5). For some of the more useful ones, I've reworked them to be configurable via transitions.ini (and disabled by default), so they can be merged into the Community SSU. Most of these patches try to improve the user experience and look and feel of the Maemo 5 UI, but tastes differ, so you can choose which one to enable:
  • 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)
Assuming that MohammadAG will merge these patches into the Community SSU version of hildon-desktop (a few of these have already been merged), you will get to enjoy those features in a future update. Please note that all those features are disabled by default, and need to be enabled explicitly in transitions.ini. For some of these options, a restart (of the device or hildon-desktop) is required.

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 :)

Freitag, 4. Februar 2011

gPodder/QML status (with screenshot and video)

Ohai February. The winter term is over; time for some gPodder QML hacking. This means that gPodder gets a new UI, and the structure of the application and the usual workflows also change a bit, based on the experiences with gPodder on Maemo 5. One of the most important changes will be that content will be played inside gPodder, as this provides even more control over playback and resuming than what the MAFW integration with the Maemo Media Player can provide.

Most of this has been done in the last two days. Thanks to Python, PySide and QML, I'm able to reuse the gPodder codebase (feed parsing, downloading, etc..) and just slap a lightweight QML UI on top of it.

Andrew Zhilin (aka wazd) has helped a lot with the design and the artwork, but see for yourself (this is a screenshot, not a mock-up):

And here is a video of the current performance on a N900:

Feedback, as always, welcome :)

Dienstag, 25. Januar 2011

Maemo App Development - One Year Ago

I just realized that one year ago, I was giving a talk about Maemo Development at the Metalab here in Vienna. Back in January 2010, things were still very much different from today:

  • Scratchbox was the SDK - Linux only, VMs for everything else
  • No proper IDEs for Hildon development (there was Eclipse integration, but I never used it)
  • Qt still was "the new stuff that's coming up" for Maemo development
  • Mer was still something to look forward to
  • MeeGo didn't exist - Maemo 6 was the future ;)
  • MADDE was in Technology Preview state - not widely used
  • Direct UI (now MeeGo Touch) was thought to be the future toolkit
  • Qt 4.6 was just released in December - no QML in Qt yet

It turns out that we are in a much better position now, we've got a nice cross-platform IDE (Qt Creator), a proper SDK (Qt SDK) that works on Windows and OS X the same as on Linux and the "low-level" issues (optification, packaging, ...) are handled by Qt Creator mostly.

Today, the issues are different - I'm complaining about Qt Creator (from the Qt SDK 1.1 Preview) crashing a lot in QML design mode, I can deploy my apps to Symbian devices without much effort (didn't think I would ever do that) - even though there's no proper toolchain for Linux or OS X (Remote Compiler doesn't count). The Qt Quick Components are still not released, even though I'd love to create some great apps with them. And most people forget in the N9 rumor jungle that we have still got the best Linux-based mobile OS (with Linux userland) that exists in an actual product that you can buy right now (that's Maemo 5 on the N900 if you didn't get that hint..). Just like Duke Nukem Forever, a MeeGo handset will be announced and released eventually - give it some time.

Back to the "Qt Creator shouldn't crash when editing QML" developer story: We're not there yet, but comparing the current state with the state one year ago, that's some progress right there! Looking forward to those bits falling into place in the upcoming months.

Samstag, 22. Januar 2011

Ovi Store Requirements vs. Extras Testing QA

If you want to publish your applications on Ovi Store for Maemo 5, you have to fulfill certain criteria for the package to be accepted. The technical ones are listed in the document Maemo™ 5 Applications: Ovi Store Entry Requirements. Here are some problematic entries that were not clear to me in the beginning (coming from Extras QA and a Debian-based background):

  • The file must be named myapplication_1_0_1.deb (for an application that is called "myapplication"). Interesting factoid: The version number must include three digits (one can interpret that as "no less and no more"). That's different from the Debian standard naming of myapplication_X_armel.deb (where "X" can be any format version number, and "armel" specifies the target architecture). So if you have packaged your application, make sure to rename the file after upload.
  • The relation of the file size of /opt compared to the files in /usr must be greater than 1:80. Here's an example from That Rabbit Game: /usr contains two files: The icon (7kB) and the .desktop file (128b) and /opt contains one file: The binary (658kB). However, the difference between these two is not a factor of over 80 when compared with "du -sh" (depending on the filesystem settings).

With that said the structure of the testing criteria in that document is very clear and (apart from some problems with the detailed specs), everything is understandable, well thought-out and can be tested by following the instructions in the document. Some of these could be use to "formalize" the Extras-Testing QA checklist here on Maemo.org or at least provide an easy-to-follow guide for carrying out the basic tests.

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!

Samstag, 8. Januar 2011

New tutorial: PySide/QML on MeeGo

In addition to my old PySide tutorials, there is now a proper PDF guide for PySide development on MeeGo available. Except for packaging, all steps apply to Maemo as well, and this is the document that includes the first gPodder QML UI code example (the final gPodder QML UI will be totally different and "much cooler", though).

As part of the new year's cleanup, I also dug out the old MTF UI demo of gPodder and put its source online here - for third party applications, QML is now the preferred UI over MeeGo Touch, so this might not be of much use for you now, but maybe somebody can put it to good use.