Planet maemo

Thomas Perl
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 :)
Categories: video
Andrew Flegg

MWKN Weekly News for Monday, 19 Sep 2011

2011-09-19 11:00 UTC  by  Andrew Flegg
6
0
Front Page

Long time community member Gary Birkett (lcuk) dies, aged 36

The MWKN Staff is saddened to report on the passing of Gary Birkett (known to many as lcuk) earlier this week. Gary was a great friend to us and - as the outpouring of feelings and memories from the community attests - well known and well regarded within the community in general.

Gary was an enthusiastic developer who burst onto the Maemo scene around the time of the Amsterdam Summit; he made it his mission to create the fastest drawing on the N810 possible. Perhaps Gary's single biggest contribution to the community was onedotzero - a large-scale open collaboration/art project. Recently Gary was known for his MeeGo advocacy and MeeGo CE work. He is survived by his partner Tracy and three sons. Our thoughts are with them at this difficult time.

Read more (lists.maemo.org)
Read more (talk.maemo.org)
Read more (forum.meego.com)

In this edition (Download)...

  1. Front Page
    • Long time community member Gary Birkett (lcuk) dies, aged 36
  2. Applications
    • QtLockScreen Configuration utility
  3. Development
    • Adapting an existing app to use Woodchuck
  4. Community
    • Stephen Gadsby (sjgadsby) nominated for Maemo Community Council
    • Robert Bauer (SD69) running for Maemo Community Council again
    • Momcilo Majic running for Maemo Community Council
    • Maemo Community Council nomination period closes and only three candidates standing
    • Maemo community governance referendum
  5. Devices
    • Qt Quick with a MetaWatch and an N950
    • CordiaTab facing difficulties in finding GPL compliant manufacturer
    • New ownership for MetaWatch
    • Using N9(50) LED for missed call and other notifications
    • N950 gets updated version of Harmattan
  6. In the Wild
    • Intel blames Nokia for MeeGo's delay in entering phone market
    • Qt open governance work results in new project & new levels of transparency for Qt
  7. Announcements
    • APT Woodchuck for smarter scheduling of Maemo update checking
    • GroundWork - a poor man's AirPlay/x11vnc for Harmattan
Stephen Gadsby

maemo.org Extras Bug Jar 2011.38

2011-09-18 23:02 UTC  by  Stephen Gadsby
4
0

A Quick Look at Extras in Bugzilla
2011-09-12 through 2011-09-18

Click to read 3194 more words
Categories: Extras
admin

howto

2011-09-18 20:35 UTC  by  Unknown author
5
0

The following text is from the introduction of the HOWTO I've written explaining how to modify a program to use Woodchuck. The focus is on the Python interface, but it should be helpful to anyone who wants to modify an application to use Woodchuck. This document, unlike the detailed documentation, should be a bit easier to digest if you are just getting started with Woodchuck. If questions still remain, feel free to email me or ask for help on #woodchuck on irc.freenode.net.

Introduction

Woodchuck is a framework for scheduling the transmission of delay tolerant data, such as RSS feeds, email and software updates. Woodchuck aims to maximize data availability (the probability that the data the user wants is accessible) while minimizing the incurred costs (in particular, data transfer charges and battery energy consumed). By scheduling data transfers when conditions are good, Woodchuck ensures that data subscriptions are up to date while saving battery power, reducing the impact of data caps and hiding spotty network coverage.

At the core of Woodchuck is a daemon. This centralized service reduces redundant work and facilitates coordination of shared resources. Redundant work is reduced because only a single entity needs to monitor network connectivity and system activity. Further, because the daemon starts applications when they should perform a transfer, applications do not need to wait in the background to perform automatic updates thereby freeing system resources. With respect to the coordination of shared resources: the cellular data transmission budget and the space allocated for prefetched data need to be allocated among the various programs.

Applications need to be modified to benefit from Woodchuck. Woodchuck needs to know about the streams that the user has subscribed to and the objects which they contain as well as related information such as an object's publication time. Woodchuck also needs to be able to trigger data transfers. Finally, Woodchuck's scheduler benefits from knowing when the user accesses objects. In my experience, the changes required are relatively non-invasive and not difficult. This largely depends, however, on the structure of the application.

...

I designed Woodchuck's API to be easy to use. A major goal was to allow applications to progressively add support for Woodchuck: it should be possible to add minimal Woodchuck support and gain some benefit of the services that Woodchuck offers; more complete support results in higher-quality service.

To support Woodchuck, an application needs to do three things:

  • register streams and objects;
  • process upcalls: update a stream, transfer an object, and, optionally, delete an object's files; and,
  • send feedback: report stream updates, object downloads and object use.

The rest of this document is written as a tutorial that assumes that you are using PyWoodchuck, the Python interface to Woodchuck. If you are using libgwoodchuck, a C interface, or the low-level DBus interface, this document is still a good starting point for understanding what your application needs to do.

Read the rest.

Categories: hacking
Randall Arnold

Gary Birkett: A Community Heart

2011-09-18 09:57 UTC  by  Randall Arnold
10
0

Some of us like to think that systems and data and processes are the bones, brains and blood of any venture.  And for the most part that’s true.  But what body can thrive without a heart?

Click to read 1402 more words
Categories: Great Governance
Gustavo Barbieri

While most projects praises portability with fancy things like “gchar” (Gtk), fancy names like “LightHouse” (Qt) or completely new abstraction concepts, The Enlightenment Project always choose a simple approach to use POSIX and fill the gaps as required. This requires much less work and yields the same or better results, as we could see in the past and now being the first toolkit to be ported to PlayStation3 (native, no Linux)!

As announced by the the developer, KaKaRoTo, in our official news the port was done on top of our existing SDL backend in a couple of days, then being migrated to native PlayStation3 using unofficial SDK PSL1GHT for jailbroken systems. There is still no hardware acceleration, yet it runs fine a physics game at Full HD.

Right now we have port to MacOS and Windows, including WinCE. Given our scarce resources we do not lag behind Qt or Gtk in portability front. Basically what we have is one brave developer called Vincent Torri that is a Math professor and do it on his spare time!

Vincent could do it by keeping our approach: use POSIX and fill the gaps. He created “Evil”, a library to provide missing functions to Windows. Kakaroto then created “Escape” to do the same for PSL1GHT. Seems this approach works fine ;-)

Categories: C
Krisse Juorunen

By popular request, here are my tips on shooting better videos on your smartphone. If you've been to an event, whipped out your phone and been disappointed later by blurry, jerky, muffled, badly lit footage, then these tips are for you! From light to movement to mundane practicalities, it's all covered below.

admin

APT Woodchuck

2011-09-14 12:56 UTC  by  Unknown author
6
0

A couple of weeks ago, I was chatting with Michael Banck about DebConf. He told me that one of the sponsors provided everyone a SIM card with 5 units of credit, and that the first time he established a data connection was also his last: he got bit by Maemo's automatic repository update misfeature; because, he had gone more than 24 hours without checking for software updates, Maemo checked even though he was using a cellular data connection and only had a few megabytes worth of data transfer credit.

A simple workaround for this bug is to disable updates. This has the unfortunate side effect that the user is no longer informed when updates become available. A better solution is one that fetches updates when background updates are acceptable. This is exactly the type of scheduling problem that Woodchuck was designed to help applications with.

Over the past few days, I've developed APT Woodchuck, a small Python script, that does exactly this: APT Woodchuck lets Woodchuck determine when it should check for updates. On installation, APT Woodchuck disables HAM's automatic update feature and registers itself with Woodchuck. When Woodchuck decides APT Woodchuck should perform an update, it starts it (using DBus). APT Woodchuck then updates the package list (it uses HAM's apt-worker utility to ensure that all of HAM's usual update mechanisms are performed, including tickling the update widget, if necessary). APT Woodchuck also prefetches packages for which an update is available.

In total, APT Woodchuck is about 700 SLOC and took about 2 days to write. Most of the time was spent figuring out how to use Python APT. That seems to me like a pretty easy solution to a hard scheduling problem.

I've made packages for APT Woodchuck for Maemo available.

If you are thinking about including Woodchuck support in your application, APT Woodchuck is a fairly good example of how to go about going it.

Categories: maemo
morphbr

It has been a while

2011-09-14 12:24 UTC  by  morphbr
2
1

It has been a while since my last post and a lot happened in the meantime. Just to point a few (in no special order):

  • 11th February for Nokia;
  • Tokamak;
  • GSoC;
  • Qt Contributor Summit;
  • Qt Open Governance announced;
  • Desktop Summit;
  • Release of N9;
  • Google acquired Motorola;
  • Plasma Active;
  • Netflix in Brazil;
  • Use of Tiny Tiny RSS (my share feed)
  • …(many other stuff!)

The sad part though is that I haven’t been able to contribute much code to KDE lately. Next month I’m getting married and as you can probably guess, there is a lot of planning going on (and we can’t forget the famous “bridezilla” effect that usually happens with girls before weddings :P

On the bright side I’ve been working on awesome projects, trying to eat our own dog food (mainly QML). With these projects we are feeling the pieces of Qt/QML that needs some love and we plan that for the next year we will be able to help the Qt Project to solve these small issues that you can only find when you develop real world applications and not developer/designer-wanna-be demos ;)

IMHO that’s one of the skills that is hard to find today on framework developers: most of them didn’t contribute much to KDE in the last years nor developed real applications. Because of this sometimes it gets harder for them to understand a use case or a “complain” about the technology they develop. I hope that with open governance we can get more help about this (and also use more the rule of the “3 examples” before adding new APIs).

I’ve been following closely the development of Plasma Active and the rest of KDE. I still have one item on my TODO list (related to one of our scripts that get the content of qml files that need translation) that I promised to tsdgeos that I would fix ASAP but I just didn’t have the time unfortunately :( . November seems the month that I will be able to get back to KDE development (after the honeymoon!!).

Well, I think that’s it. I just wanted to make a simple blog post and update my KDE friends :)

Categories: General
Krisse Juorunen

Taking a photo of that family member, friend or scene is the obvious function of your smartphone camera. But a little lateral thinking sees quite a few extra uses for this equipment - your phone camera isn't just for Christmas (and holidays), you know. See if any of these examples ring true in your experience... Can anyone remember life before we all had cameras with us 24/7? Me neither!

Krisse Juorunen

Today, at the IAA (a car industry event), Nokia announced Car Mode, an application designed for the in-car use of Nokia smartphones. It offers simplified access to Nokia Drive (voice-guided car navigation with Nokia Maps), music and voice calling functionality. In addition, the application also supports MirrorLink (previously known as Terminal Mode), which allows for a rich connection between phone and car. The application, which has been developed in Qt, will be available for download from the Ovi Store in Q4 for Symbian Belle devices and the Nokia N9. Update: added screenshots of Nokia Car Mode.

Krisse Juorunen

Nokia has announced that the Qt Project, the outcome of open governance work that started in June 2010, will go live on October 17th 2011. Qt governance, roadmapping and releases will proceed the auspices of the Qt project, open to all stakeholders who are willing to contribute, with decisions taken by a community of Contributors, Approvers and Maintainers. In practical terms the hosting of Qt will move to a new domain: qt-project.org.