Coding and hacking

Justin TV without flash!


Justin TV is a streaming service that uses the broken flash concept in order to allow you to view channels.

Unfortunately it's the only source of Arabic movies, series and shows.

I wrote a GStreamer source that retrieves the channel information and uses libRTMP to connect to the Justin streaming server. The rest is handled by GStreamer ;-)

N9/N950 camera with zoom during video recording!


If you are using PR 1.1 then you can simply enable zoom during video recording.

Just create a file /etc/camera.conf and add the following lines:

recording-zoom = true

restart camera, enjoy and send postcards to the Harmattan camera team :)

I hope someone will create an Ovi store app for that ;)

Increase the font size of the N9 conversation view.


If you care about the readability more than you care about the eye candy then that's for you ;-)

You need to enable developer mode and ssh to the N9.

# mkdir -p /usr/share/themes/blanco/meegotouch/libmessagingwidgets0/style/

# vi /usr/share/themes/blanco/meegotouch/libmessagingwidgets0/style/libmessagingwidgets0.css

Insert the following lines:

Introducing vcamera, a virtual V4L2 camera.


This is a kernel module I cooked in a couple of days. The idea is to expose a v4l device that gets its data from user space.

I had 2 use cases in mind:
1) Educational purpose for myself (I'm really a kernel noob).
2) Streaming movies over skype, google talk, ... etc.

The idea could be good or completely rubbish but hey ? Learning can only be done with stupid ideas!

The code is highly unstable. It shouldn't oops the kernel but I'm not responsible. I've been developing and testing it inside qemu.

Prayer timetable parser for Helsinki (2011)


One of the local mosques here used to publish the prayer timetable for the whole year in HTML format. That was fine for me because I had the ability to add a bookmark to the current month to my N900 desktop.

In 2011, some brilliant person decided to publish them only in PDF. The idea itself is not that bad, I just lost the ability to add the bookmark to the desktop. Combine that with the not so great PDF reader for the N900 and my dislike for PDF files in general and you shall understand why I was really annoyed.

Twitter OAuth Proxy


I'm using Twitter plugin for Contacts and Conversations to twitter on my N900.

Twitter recently moved to OAuth. Problem is the Maemo package is outdated and seems to be unmaintained.

I did some research and came across a blog entry about exploring OAuth-protected APIs and some code. Nice idea but not usable for me.

QTestLib tip


If you are doing a data driven test using QTestLib, make sure the column names you define in the data function matches the variable name you pass to QFETCH()

void Test::foo_data() {
void Test::foo() {
  QFETCH(QString, foo);

I previously thought the order is enough but I lately spent a day and a half trying to understand why QTestLib refuses to fetch my variables.

ISI specifications for Nokia modems.


A serious limitation of the N900 connectivity subsystem IMHO is the inability to create multiple connections. One can only have one connection at a time. This was a problem when I started investigating MMS support for N900.

Of course one can use some undocumented API like fMMS to have more than one GPRS connection. There's only 1 problem with that approach. You can end up with IP/subnet clash.

MMS support development to be suspended until the end of February.


The gitorious repository now contains a broken mms-manager, a non functional mms-ui (because I changed the DBus interface ;-)), a preliminary mms viewer and a broken network connection manager. How pretty is that ? ;-)

I've been redesigning the DBus interfaces and I think I reached something. The UI can be easily adapted after that.

However, I'll be on vacation until the end of February. I can't work on mms until I'm back.

I'll try to commit and push the code I have on my laptop but the stuff will still be broken.