Friday, November 30, 2007

LCA 2008

Kind of at the last minute I decided to go to in Melbourne next January. I missed the last earlybird ticket by mere hours, but oh well. As usual there are plenty of interesting talks on, a few people to meet up with and a new city to check out as well. Flights, accommodation and the conference itself are all booked and paid for, so now all I need to do is wait. Should be an interesting trip :)

Thursday, November 15, 2007

Wake me up before you go-go

I was playing around with the Opie clock today and I discovered to my dismay that alarm wakeup is not working at all on my iPAQ h2200 running a self-built Angstrom + Opie image (2.6.21-hh17 kernel). It turns out that most of the pieces of the system are working fine up until the point when opiealarm (which gets run just before suspend) tells the kernel to set the rtc wakeup time. According to the rtc info in /sys it is being set to a date somewhere in 2035, which is not particularly useful especially if you really do want to be woken up early for that meeting tomorrow morning.

I have looked at the code in opiealarm and it looks OK to me, and hasn't been changed in a long time. It is using the old ioctl() based method of setting the alarm but that really ought to work properly. I suspect this is a bug in the kernel, but with the kernel discussion mailing list being down I'm not sure where to report it. Setting the wakeup time through /sys does work so at least that's something - if it comes to it I suppose I could modify opiealarm to use that method if it is available.

Sunday, October 28, 2007

CMake in OpenSync, Opie 1.2.5?

So I did some more work on OpenSync/Opie lately - fixed a few issues in Opie's sync authentication code, finally changed the todo list to show some reasonable icons, etc. The most interesting change for me though was to do with CMake - OpenSync has just moved over to it from scons (having previously moved from autotools to scons a couple of months ago). I was reasonably impressed with scons when I came to move the opie-sync plugin over to it, in that it removed a lot of the complexity of autotools, but CMake just blew me away. It's even simpler and requires even less files in my source tree, and switching over was a breeze. Build systems are often the bane of software developers, particularly in the free/open source software world, so kudos to Kitware for making a build system that doesn't make my head want to explode :) Thanks also to Daniel Gollub of SUSE/Novell for all his recent hard work on the OpenSync core, including the decision and the effort to move OpenSync over to CMake.

I've started some tentative plans for Opie 1.2.5. I know, I know, 1.2.4 isn't out yet and 1.2.3 isn't even available to a lot of people, but we're working on that too. I think it's important to be looking ahead. Take a look at the recently updated Opie roadmap for details.

Friday, October 12, 2007

Click-click-click-click... uh-oh...

I have not exactly had great luck with hard drives lately. First, a Seagate 320GB SATA drive in my main PC started acting up - fortunately only a few files were unreadable and I managed to copy the rest of the data off without issues. Then, just days later a Seagate 120GB IDE drive in my parents' PC (of which I am the de-facto maintainer) began to bite the dust - it was pretty much unreadable and making lots of nasty noises. After trying a few other options I attempted copying the entire drive using Acronis Disk Director, and following several hours of constant grinding to my amazement it seemed to have copied all of the data successfully, this time onto an IDE RAID 1 array to avoid further faulty hard drive hassles.

You would think that the story would end there. Unfortunately not. A week later Windows XP on my parents' PC begins to report corrupt files, so it seems that one of the drives or the cheap no-brand IDE RAID controller is faulty. If it is one of the drives then it obviously isn't serious enough to make the RAID controller fail the drive out of the array, because it helpfully reports that everything is OK. Should I mention that the two drives in the array are both brand new Seagate 160GB IDE drives?

Right, that's it - no more Seagate. I used to be a loyal Seagate buyer, but two confirmed failures and one possible failure in two weeks, plus at least four previous failed drives in the last seven years is just too much to bear. To replace the failing 320GB drive in my machine I've gone for two Western Digital Caviar "RAID Edition" 320GB SATA drives in a Linux software RAID-1 array. (The RAID Edition drives have some added reliability features, but also have a 5-year warranty and aren't all that much more expensive than the standard WD drives). Since I've just moved to a new PC I've given the old one to my parents, and tonight I have rebuilt it for them using two new WD RAID Edition 160GB SATA drives in RAID-1 using the onboard Promise RAID controller. Third time's a charm...

Earlier this year I read two interesting articles on hard drive reliability (which are summaries of two research papers) on the StorageMojo site:

Google’s Disk Failure Experience
Everything You Know About Disks Is Wrong

In my case, the comments regarding how useless SMART is were definitely borne out - SMART reported no errors at all before the problems started. In fact when I was attempting to recover the 120GB drive using SpinRite it was still reporting no errors in the SMART status as it was clicking away. Brilliant.

I guess the only lucky thing to come out all of this is that no significant amount of data was lost. It has also been a bit of a wakeup call in that I realised I hadn't done a backup in ages. Needless to say I have since rectified that oversight :)

Sunday, August 19, 2007

OpenSync hacking

I've spent quite a bit of time over the last week or so getting the Opie plugin for OpenSync ported to the latest 0.3x branch (ie, trunk in svn). 99% of the job is done, all that is needed now is testing and a few fixes here and there. If you're brave, and make backups, you can check out OpenSync from svn and give it a try :)

In the process of porting I've also fixed a few things:

* scp support now actually uses scp/ssh instead of sftp, so that you don't have to install additional packages to have a secure connection (it works with dropbear that is included in most handheld distros by default). You will need to set up key-based authentication however - there's no mechanism to enter an ssh password at sync time.
* scp can now sync notes
* Improved error handling in a lot of places
* Lots of refactoring and code tidying

The 0.3x branch will eventually become the next stable version of OpenSync, 0.40, but there's still quite a bit of work to be done before then (see the TODO list). There are a few things I'd like to add to the Opie plugin, mostly along the lines of making it more robust, but also some minor features eg. supporting the Opie-Notes application. In the near future I'd like to also look at adding support for the SQLite backend in Opie, however at the moment the SQLite backend has no mechanism for retrieving data remotely for syncing purposes, so that will need to be added in Opie as well.

I've probably mentioned it before, but I have to say I'm pretty excited about OpenSync - it's a powerful syncing platform and one that has a huge amount of potential. We need to not only keep pushing the development forward, but we also make it more visible and accessible to people. KitchenSync with OpenSync as a backend is now in KDE 3.5.7, gnome-sync has just been released, and I think once KDE 4.x comes out with Akonadi and OpenSync support makes it into Conduit (which I understand is on the cards) we will have a bit more exposure.

Saturday, July 28, 2007

Opie 1.2.3 is out!

So finally we've released Opie 1.2.3. It's been a long road, but a lot of people helped out (some of whom are new to Opie) and that made all the difference. It's nice to have something to show that the project is still alive :)

Next on the agenda: 1.2.4, naturally. I hope we can improve synchronisation, and that includes not just working on the OpenSync plugin, but also fixing up PIM bugs on the Opie side and likely fixing problems syncing with Qtopia Desktop as well. In general I'd also like to get a few of the long-standing annoying bugs fixed too. If there's something annoying that prevents you from using Opie on a daily basis, please report it - or even better, try to help us fix it.

Sunday, July 22, 2007

KonqE & Opie 1.2.3 again

OK, so thanks to some work by Marek VaĊĦut (Marex), Paul Sokolovsky (pfalcon) & polyonymous in fixing the OBEX regression, we are nearly ready to release Opie 1.2.3 - mid next week is the target. I hope the release will breathe some new life into Opie - certainly there has been quite a bit of activity over the past week or so.

Part of that activity was to do with getting the new version of Konqueror Embedded working (which is not actually part of Opie, although one might say it is the unofficial flagship browser of the platform). Thanks again to Marex it is now almost completely working:

As you can see the window style needs to be fixed and a few other bits might need some work, but otherwise we've now got a working modern browser :) See the Opie wiki page for further details.

Sunday, July 01, 2007

NetworkManager, Wireless cards and WPA

So, I was setting up a PC for my sister running Kubuntu 7.04 (Feisty Fawn) and she needed wireless to be able to connect to the internet. I had a spare NetGear MA311 PCI card, and I figured it's fairly old, it's been well supported for ages using the hostap driver - so it should just work out of the box, right?

Wrong. I couldn't even see any networks using KNetworkManager. After fiddling around I discovered that not one, not two, but three wireless drivers were dueling to access the card, and the one that won was the old linux-wlan-ng driver which doesn't support any wireless extensions that NetworkManager needs. After searching through the bug reports at and blacklisting the prism2_pci, prism2, hermes, orinoco, and orinoco_pci modules, I eventually got it so that hostap was the only driver in charge of the wireless card. I tested all of this on a spare machine at home and it connected to my wireless just fine.

I drive back over to my sister's place in full anticipation that it will now work with no hassles. Nope - I discover the network at her flat uses WPA, and inexplicably KNetworkManager can see the network but thinks it's only WEP. Unfortunately I had not tested making a WPA connection at home beforehand or I would have discovered this problem immediately. I tried connecting manually with KNetworkManager, I tried running wpa_supplicant directly (again, it could see the network but insisted it was WEP), and I tried putting the connection settings in /etc/network/interfaces; nothing worked.

I knew I could connect to the wireless network at my sister's flat just fine with no configuration from my laptop (running the same version of Kubuntu, but with built-in Intel wireless using the ipw2200 driver), so I knew it could work. So after looking through what was available for purchase here and checking up on Linux support, I bought two more PCI wireless cards - an Edimax EW-7128G and a Netgear WG311T.

At home I tested the Edimax card first. It was detected (using the rt61 driver) and again could see my now WPA-encrypted network, but again it told me that it was encrypted using WEP and not WPA, and would not connect to it. Sigh.

The Netgear card was another story altogether. The test machine I had at home wouldn't even get past the BIOS screen with it plugged in, which was disturbing. However, I tested it in another machine I had using a Kubuntu live CD and to my surprise it connected first time with no configuration. Next weekend I put it into my sister's PC and it connected out of the box. Wireless problems solved!

So, if you're looking for a PCI wireless card that should work out of the box with Ubuntu/Kubuntu Linux, then the Netgear WG311T could be the answer - assuming your PC will boot with it plugged in, that is. I'm sure there are other cards that work well, too, and with the introduction of the new wireless stack in the soon to be released 2.6.22 kernel, things will hopefully get a lot better for wireless under Linux in the next 6 months. Still, right now it can be a little frustrating :(

Sunday, May 20, 2007

Kubuntu on a laptop

I just installed Kubuntu 7.04 ("Feisty Fawn" for those who like those codename thingies, which I don't) on my laptop, a Toshiba Satellite M50. I rarely use my laptop, but when I do use it I want it to "just work" (TM). I use Gentoo on my desktop but given the amount of messing about that requires it was obviously not an option for this machine.

I've been through the Kubuntu install process before and it was fairly smooth - the only hitch being that it told me it was unable to create the first partition layout I gave it, without telling me why. I chose a different setup and it continued. Once everything was installed the laptop booted into Kubuntu, complete with nice smooth startup screens. I was very impressed to see that I could plug in my ethernet cable and even switch on the wifi and it happily connected automatically to both of them with no problems. Plugged in a mouse, digital camera, USB stick - all detected and worked immediately. It even suspended and resumed with no hacking required, which is a first as far as this laptop is concerned.

However, I would be remiss if I did not mention the problems that I had after installation:
  1. Setting up DVD playback using the instructions in the help documentation did not work. After a visit to Google and installing xine-ui the problem went away.
  2. The version of vim installed by default, vim-tiny, is horrendously broken. Arrow keys and backspace don't work in insert mode - I mean, WTF?! Eventually I got sick of this and installed the proper "vim" package and it worked as expected.
  3. Hibernate didn't work - when it booted back up it brought up a grey bar on the screen and froze up. Hibernate is something I can do without at the moment so I'm not too worried about this one. (I was able to recover simply by selecting the built-in recovery mode from the boot menu and then restarting).
  4. The worst however was when completely on a whim I attempted to plug in an external monitor. After fiddling with the System Settings application I succeeded only in completely borking up my xorg configuration, without trying too hard I might add. After changing the settings and rebooting I was greeted with the primary screen being the external monitor (which was not what I set it to) and both screens stuck at 640x480, which on a laptop screen with a native resolution of 1280x768 does not look very good at all. So I thought I'd just log in and disable the second monitor - but no, as soon as I logged in the power manager applet crashed, and when I tried to run the System Settings - Monitor and Display settings, it also crashed. After a bit of searching it seems that this is a known bug - the xrandr library that both of these things use (which allows changing screen resolutions on the fly) just crashes when Xinerama (ie, multi-monitor support) is enabled. After much fiddling and cursing I found the only way to get back to a configuration where the laptop's widescreen video mode was detected and available was to restore a backup copy of the xorg.conf file, which fortunately the Monitor and Display settings applet had saved.
I'd have to say I'd still recommend Kubuntu to people looking for a nice desktop distribution, since apart from the problems mentioned above it seemed very well polished - for inexperienced users it certainly beats all of the other Linux distributions I have tried.

Thursday, March 15, 2007

Opie 1.2.3, Konqueror Embedded: The Resurrection

The Opie 1.2.3 release has been delayed - we are currently looking into some issues around recently added Bluetooth support, namely that it's somewhat broken. Hopefully these issues will be sorted out soon since there's a fair bit of useful stuff in the release.

The version of Konqueror Embedded for Opie in Familiar is from 2003, and since it has sat unmaintained for so long I had figured that was it. It turns out that a company called basysKom, who you may well have heard of since it is staffed by several KDE developers, has released an updated version just recently including most interestingly a version backported to Qt 2.x. It's not quite compatible with Opie out of the box since they are targeting Qtopia 2.0, but it's close. I have started trying to hack it to work with Opie, and if you are interested you can keep up with progress by monitoring the KonquerorEmbedded2007 page on the Opie wiki (you can even subscribe to the page so you get emails about changes if you want). Better still, grab the source and the patch and give me a hand :)

I've just signed up to be a mentor in the Google Summer of Code for Opie (under If you're a student interested in working on Opie or something else handhelds-related under the banner, please have a look at this page and start thinking about what you might like to do. There are a bunch of suggestions up there but we'd love to hear any new ideas so please let us know if you have any.

Wednesday, March 14, 2007


A couple of months ago I got a surprise email asking if I would like to be part of the of the OpenMoko Neo1973 development phase 0. Naturally since this involved me being sent a free phone - and one of the first truly open phones at that - I graciously accepted. Thank you very much to FIC and the OpenMoko team!

A week ago my Neo arrived. It's a little larger than I expected, but then that's probably a good thing since it allows for a more readable screen. The software is in the very early stages and there are some issues with charging, but already you can start to see the potential of the device. I've nearly bricked it once already by updating the bootloader incorrectly, but fortunately the USB DFU (Device Firmware Update) was still working and I was able to flash a new working bootloader. Unfortunately though at the moment my desktop system is suffering from problems with USB devices which seems to be triggered by connecting the Neo. It's not nice to plug in a new device and then suddenly find that your mouse has powered down, and won't power up until you reboot. Mousekeys just aren't quite the same.

Hopefully I will be able to find a way to contribute back to OpenMoko soon - perhaps in the area of apps development, which is my forte, although I admit I would prefer to be developing with Qt than GTK. Still, that is the platform they have chosen (and not without good reason), and if it can be polished up to a state where it looks like the mockups on the website it should be quite a nice environment indeed.

Note that this does not affect my commitment to or Opie. In fact, on the latter front I hope that one day I will be able to run Opie on the Neo.

Saturday, February 17, 2007

Perled tongues, the scientific method, and impending releases

This video is absolutely hilarious. Admittedly he is trying to do something that the Vista speech recognition wasn't designed for, but it still made me laugh so hard it started to hurt. It looks to me that under the right conditions and with the right training it would work well for writing letters and other documents, but I honestly still can't see speech recognition taking off in a huge way - a perfectly quiet environment is not something you usually find in the average office.

On Friday at our usual work lunch at Nando's we were discussing the difference in taste between Coke, Coke Zero, and Diet Coke, and the perceived taste difference between soft drinks out of a can and out of a bottle. After much discussion it was resolved that some blind testing had to be done to resolve the issue. Five of us did a blind test using four identical glasses of Coke, Diet Coke, Coke Zero all out of glass bottles, and Coke out of a can. We found that (a) almost all of us had no trouble discerning "real" Coke (with sugar) and the others; (b) Diet Coke and Coke Zero have a very similar taste but that the slightly unpleasant aftertaste that you get with Diet Coke wasn't as noticeable in Coke Zero, so they aren't quite the same; and (c) there was absolutely no difference between the coke out of a can and out of a bottle, so it must be just the drinking experience that influences the taste perception. Case closed :)

The Opie code is "frozen" at the moment in preparation for the Opie 1.2.3 release which should happen very soon. There's been the suggestion of another minor Familiar release including it (among other things) in the near future as well, which I would definitely support (and try to help with). Actually I'm looking forward to when the freeze period ends so that I can have a look at committing a few bits of code I've been sitting on - such as by external keyboard (kbdd) control stuff.

Tuesday, January 23, 2007

Opie-ate of the masses

Thanks to Lorn Potter I now have Opie CVS write access, so I've committed almost all of my patches. Most notably, after sitting stagnant and buggy for some time, TinyKATE is finally usable - only minor changes were required such as providing access to the already written find/replace functions, and prompting the user to save changes (very important). OpieRecorder is now a lot easier to use as well, and I've fixed a number of minor bugs in various parts of Opie that have annoyed me for a while. There's lots more stuff to be done, I just need to keep finding the time and the motivation.

The OpenSync Opie plugin gained initial support for syncing of notes this week. Since Opie provides a text editor rather than a "memo" application like most other platforms, the plugin just looks for and writes .txt files in the user's home directory on the handheld. It seems to work fairly well in testing for me - try it and let me know how it goes.

In other news, the "new" Battlestar Galactica rocks! I hadn't seen it until last weekend and I was really impressed. All those people who told me it was good previously weren't kidding.

Some random cool stuff I discovered lately:

Monday, January 08, 2007

A PDA in the hand...

It's now the beginning of week 3 of my holidays. So far I've had a fairly quiet break - I've taken the opportunity to do lots of reorganisation at home and do a bit more of my own coding. I've been submitting patches for Opie itself, which I've done before, but this time I'm delving into lots of different applications and areas. Most of the fixes are fairly trivial, but the bug reports they address (some of which were submitted by me, some by others) have been around for several years (!) Hopefully now one of the developers can spare the time to review the patches.

Some people have been suggesting that Opie is dead. While it's true that many of the developers have moved on to other things, and Opie II is now on the horizon, I think Opie still has some life left in it. I imagine it'll be a while before Opie II reaches the level that Opie is at in terms of application availability and features, so there'll still be users around that are interested in using the original Opie for some time to come, and that justifies me spending time working on it. I'm hoping also that the recent development of a viable syncing solution (at least for Linux, anyway) might increase interest levels amongst users.

In related news, I've bought yet another second-hand PDA for Familiar testing and/or actual usage - this time it's an iPAQ h2200 (that's my fourth iPAQ now). It's slightly smaller than my other iPAQs, so it should fit in my pocket. Linux support for this model looks good, though I'm not sure about Opie. At least if I have any problems with the latter I'm a bit more confident I can help debug them now.