Thursday, November 13, 2008

Opie datebook2

In Opie news I have been working hard on the datebook/calendar rewrite (aka datebook2). This was a project started some years ago but never finished, but if we are to have SQLite backend support for Opie PIM then it is essential, and it gives me the opportunity to add some more requested features and make the code a lot neater at the same time. Everybody wins!

The skeleton for datebook2 was already in place, and all of the data access classes in the Opie PIM libraries were there and about 98% complete. I must congratulate former Opie team members Stefan Eilers and Holger Freyther for their excellent work there - so far I have only had to make minor modifications to the Opie PIM API code in libopie2, and the original design of the datebook2 skeleton has worked very well as a base to build upon.

My aim is to make the interface almost exactly the same as the original datebook and thus a lot of code has been reused from there, with a fair bit of tidying up. The only remaining pieces from datebook1 not yet implemented are searching, beaming, keyboard shortcuts, a few other minor bits and pieces, and of course testing (!). Additional features on top of what datebook1 provided now include snoozing for alarms, and editing of location & description drop-down lists. I plan to try to improve multiple timezone support, and I may have a go at enabling the linking events together (aka irregular recurrence).

If you want any specific improvements to the datebook feel free to submit requests via the opie bug tracker or mailing list.

Handhelds aplenty

I went a bit crazy on eBay recently and purchased a whole bunch of second-hand PDAs:

* iPAQ h1910
* iPAQ h4150
* Jornada 680e
* Jornada 720
* iPAQ h3850, h3870 and an h3660 all three of which I plan to give away to prospective kernel hackers.

All of these devices were chosen not only because they are now quite cheap, but also because there are already existing working Linux ports for them. They still need someone around to support them however, and in the case of the 4150 there is some minor bugfixing work to be done in Opie (eg. the record button not working, although this could be a keymapping issue). The 1910 works almost flawlessly, hats off to aquadran for a very complete port and thanks for choosing Opie as well :)

I really like the form factor of the Jornada devices - having a usable size keyboard is excellent; however the screen in comparison to screens on other devices is absolutely awful - blurry, dimly backlit, and the colour response is somewhat patchy. It does not help that the touchscreen on the 720 is a bit worn out also. Still, it's plenty good enough for testing. I was able to run the JLime distribution on the 720 which is available with IceWM or a slightly old version of Opie (1.2.2). On that machine, some features are missing (most notably suspend/resume and sound). I haven't gotten around to trying Linux on the 680e, but from what I can tell the port is a little more complete.

As for the h3800/h3600 devices, well, they badly need bringing up-to-date (to the Linux 2.6 kernel). This needs the help of someone with kernel hacking skills - see my mailing list post for details.

Tuesday, September 30, 2008

Opie 1.2.4 is out

Whew. After over a year of hacking, Opie 1.2.4 is finally out. Thanks to everyone who helped! I hope we can get 1.2.5 out in less time, something like six months perhaps? Maybe if I get a few more patches / other assistance... (hint, hint)

In the mean time my next task is to get 1.2.4 recipes into OpenEmbedded. I will also be trying to get the OpenSync plugin into a more usable state after some fairly significant changes in the core recently. Here's hoping we can have a stable release of that soon as well.

Wednesday, September 24, 2008

Waking the dead

No, not the UK TV series - although I have to say I have enjoyed watching it since I've been here. No, what I'm referring to is resurrecting third party Zaurus/QPE/Opie applications. Now that Opie is in Angstrom the next task is to fix up third party applications and get them into the feeds. You can monitor this effort here (fortunately I'm not the only one working on it).

A lot of this is driven by user demand - several users have asked for specific applications to be available. One of the requested applications was qpenmapfe (a frontend for the nmap security testing tool) which is now unmaintained, and does not work very well on high resolution devices either. However, I found an alternative called qpe-nmap which although it was also unmaintained, it just needed a few tweaks to become fully usable on a wide range of devices. I contacted the author, Fabian Bieker, and he was very helpful, even agreeing to allow me to continue maintaining it (I don't envisage much maintenance will be required, but I'm prepared to do what is needed). The (mini-) project has a new website and a build recipe has just been committed to OpenEmbedded on its way into Angstrom.

Moving forward, I would be happy to take on maintainership of some more older third party applications that are compatible with Opie. If you are the owner of some generally useful Zaurus/QPE application project and you'd like to see your application maintained again, please get in touch with me and we'll see what we can work out :)

Tuesday, September 16, 2008

SparkLAN Wifi card and Linux

People often ask about which Wifi card to buy to use with Linux, and in the past this was a difficult question to answer. When you're talking about a card to use on a PDA the available selection is even smaller.

However, on a whim I recently purchased a SparkLAN WCFM-100 which is an 802.11b/g CompactFlash card to try it out. Linux compatibility was listed in its product documentation, which is a good start.

It didn't quite work out of the box, however all I needed to do was enable building the libertas and libertas_cs modules in the kernel defconfig in OE, rebuild it, copy the modules over to my Zaurus, extract the firmware (instructions here) and copy that over to the Z, load the modules, and it worked. So I would definitely recommend this product to anyone wanting a wifi card for their Linux-based PDA. When I get some time I will try do document the procedure properly and/or submit some patches to make it easier to get working in Angstrom.

Opie now supported in Angstrom

Opie 1.2.3 is now supported in the Ångström Linux distribution. Check out the announcement.

Woot! :)

Sunday, September 07, 2008

IntelliSync testing

I had a go with IntelliSync (the SL version) connecting to Opie on my Zaurus this evening. I found that despite being a little hard to find, IntelliSync is in fact still available for download, which is good because the CDs that came with my Zaurus are in Japanese only. Thankfully the installer does not require any licence keys or device presence in order to install.

The next thing was to get the USB network connection working in Windows. I plugged in my Zaurus, Windows popped up the usual dialogs and I fed it the usual linux.inf file which it accepted. Unfortunately though after a delay the result was the error "This device cannot start. (Code 10)". There are numerous references to this error message on the web, but I couldn't find a satisfactory solution amongst any of them. (Of course USB networking between my Z and my laptop when running Linux works perfectly.)

I decided to simply press on and try to get IntelliSync to connect to my Z over WiFi. Despite only having USB and Serial options for the connection type and it insisting on not allowing the IP address of my Z ( I was finally able to coerce it into connecting by specifying an address of the same length that it would allow (eg., and then editing the file NetStat.dat with a hex editor to change the address. If you then go to the connection settings and click OK the change should be permanent.

This is not enough to actually get it synchronising however - it's obviously connecting, however all you get is a quick flash of the sync screen on the Opie side and then an error with the suggestion to "check the application version" from IntelliSync. Presumably this means that Opie is not sending the responses that IntelliSync expects. I suppose I will have to analyse the traffic in order to fix this.

Monday, September 01, 2008


I've been doing a lot of work on Opie lately. So far I have managed to achieve the following:

* Fixed Konqueror-Embedded (albeit the 20070316 version) to work with the nice new GUI. I have issues building it from OE .dev though and SSL doesn't seem to be working, so there is work to be done yet. Getting the 20080319 version working would be nice (currently segfaults on startup). A lot of people have asked for this one so it's nice to make some progress.

* Improvements to the new opie-cardapplet. It should now manage removeable cards with ease and won't let you do anything silly like ejecting the card your system is running from :)

* Fixed *a lot* of minor bugs for the 1.2.4 release, which is close at hand.

* Fixed a few package building issues in OE, mostly for packages outside the core set built for images (including third-party applications). I still haven't got Portabase or QPDF2 building though, and I haven't even looked at kopi/kapi yet.

* Tested and pushed for Opie 1.2.3 to be supported in Angstrom. We're almost there, the "machine mentors" just need to get into gear and accept the already built images.

I also bought a Sharp Zaurus SL-C3000 from Japan on eBay, which has given me not only a new burst of inspiration but also some extra items for my task list (mainly to do with improving Opie's high-resolution support), and given me another machine to test Opie with. It's really quite a nice device - great screen, usable keyboard, CF, SD, and USB host. Built-in bluetooth and wifi would be nice, but at least you can get those with an additional CF card.

Next thing is to get back into sorting out the syncing situation. Opensync has moved on a little bit lately and I need to catch up. I would also like to test the copy of Intellisync that I received with my Zaurus - OK, it's commercial software, but lots of Zaurus users will still have it and no doubt expect it to work. With any luck it should just work out of the box.

Wednesday, July 02, 2008

LRL '08

So, LugRadio is ending :( but I'm going to LugRadio Live :)

Should be entertaining.

Hello from sunny England

So I've been in the UK now for about three and a half months. There's tons of things going on here at the moment and so far I'm quite happy with my decision to move. Of course I miss NZ, my family & friends etc., but this is my chance to see the world. On that front so far I've been to Wales for a few days (freezing cold) and Rome for a week (awesome), and I'm off to some mystery destination for a weekend soon. For longer holidays I'm limited by work for the next few months but I have a few places on my list for after that.

I stayed with friends and relatives for a bit initially, but before too long I needed to find a job and a place of my own. I found a job in Croydon (doing Delphi still) and a flat in Brockley (south east London) which was about the right price and convenient for getting the train to work. Public transport here is pretty good but it's damned expensive - more so than anywhere else in Europe apparently. I miss my car already :/ (although petrol is also damned expensive and shows no sign of getting any cheaper). At least I got paid in pounds for the first time the other day :)

Monday, March 10, 2008

The Big OE

In less than a week now I am leaving New Zealand to go to the UK, for what us Kiwis refer to as "the big OE" (OE being Overseas Experience). The UK makes a good base for taking trips to Europe, which is what I plan to do in addition to working (most likely in London) for the next 1-2 years. Several of my friends are already in the UK and I have plenty of relatives there so at least I won't arrive in the country knowing nobody. I'm sure I'll miss home - the nice weather, having my own car, and of course being able to see my family and friends. Still, you don't find adventure on your own doorstep as someone once told me. Very true.

This week is already shaping up to be a busy one at work, winding things down. In many ways it's sad to be leaving there - I've been there just over six years now, and they are like family to me. I would have liked to get to know several new team members who joined recently better as well. There are plenty of fine people there to pick up where I'm leaving off though, and I've left them with documentation that should suffice when I'm not there to answer questions :)

Being the procrastinatory individual that I am, I still have a list of things yet to do before I go. I haven't packed yet, although I have most of the things other than clothes that I plan to take with me (much less stuff than I expected, actually). Four days left in the week - should be plenty of time ;)

In case anyone is wondering I will still be involved in my various projects (Opie, OpenSync, etc.) - being that these are run over the internet I can still participate wherever I am in the world. In some ways it will make things easier - a lot of the open source / free software conferences are in Europe anyway.

Where did my collection go?

So I was trying to move my music collection in Amarok to a different machine. I simply moved all of the MP3 files from machine A to machine B, taking care to preserve the same path structure, and then copied the configuration files (~/.kde/share/config/amarokrc and ~/.kde/share/apps/amarok/* - for clarity, I'm using sqlite backend to store the collection). Then I opened Amarok on the second machine, only to find that my collection was empty. Now, this is not a situation that I'm unfamiliar with - the same thing happened one time when I upgraded Amarok, although somehow I managed to recover from that one. What confused me initially though was that I thought it might not be successfully reading the collection database file; however, after some searching and investigation I figured out what the real problem is and how to solve it.

Digging into the data structure of Amarok's collection.db (by running "sqlite3 ~/.kde/share/apps/amarok/collection.db"), it seems that Amarok records the device where each track is stored so that you can have tracks on removable devices, and they appear when you plug the removable device in and disappear when you unplug it. When running Amarok with the same collection data on another machine, the device that it thought contained all of my tracks (ie, one of my hard drive partitions) no longer existed and thus the collection was shown as empty.

Once you know what's going on here it's not hard to fix the problem, simply by fixing up the device links. In fact, in collections created in newer versions of Amarok (at least in 1.4.8 - my collection has been around for quite a few versions now) it seems to put the files against no device at all (device_id of -1). A few SQL statements later and I had simply cleared out the contents of the devices table and set all of the device_id values in other tables to -1 instead of a specific device, and voila - the next time I started Amarok my collection was restored :)

It seems to me though that there ought to be a nicer way of exporting your collection so you don't have to muck around like this. It might make a good summer of code project for someone... ;)

Sunday, January 13, 2008

Angstrom Opie 1.2.3 testing

Testing images of the Ångström distribution containing Opie 1.2.3 are now available for many devices, see this page for details. If your device is listed, we would welcome your testing and feedback.

This has been a long time coming, and I'd like to thank everyone who helped make it possible. Of course this is just a step towards Opie becoming supported in Angstrom - we'll allow at least a month for people to test and then we'll evaluate the situation, and possibly after further tweaking be able to release final images, populate feeds and finally declare Opie as supported.

Meanwhile, over the holidays I have been making quite a few fixes in Opie CVS to be included in 1.2.4 - many of them fix bugs that have annoyed me and no doubt others for a while now, which is very satisfying. Included were changes to make VMemo actually usable, many small improvements in AdvancedFM, better alarm sound playback in the Clock, and some others. Once Opie 1.2.3 becomes supported in at least one distribution we can start to think about doing the 1.2.4 release.