Hope to see some of you there!
Monday, February 01, 2010
FOSDEM
Hope to see some of you there!
Sunday, September 27, 2009
Opie update
Work on Opie has been fairly solid lately - if you have a look at the commits you can see that. On my end a lot of this has been due to the acquisition of my netbook (a Dell Inspiron Mini 10v) which I can use to write code on the train, and I do that most days. It's only ~40 mins each way, but it's surprising how much you can get done in that time with no real distractions, other than the free London papers that is - sadly of which there is one less as of a couple of weeks ago :.( Anyway, let's cover each part in detail:
Datebook2
Datebook2 is almost finished. There's a small matter of making sure alarms on synced in calendar events actually get registered on the Opie side - I'm still not quite sure how to structure that, but I'm sure I'll figure it out. I'd also like to improve the application visually a bit - perhaps make all of the views use the same colours to draw events, improve text placement, etc.
Opie-Notes
We haven't really had a proper notes application within the Opie application set - Opie-Notes (based on the old NoteZ application) has been around for a while, but was somewhat limited and not included by default in most distributions; most people simply used the Text Editor. No more! Opie-Notes is now a first-class PIM application with the introduction of SQLite backend support (including support for synchronisation), categories, and built-in search. In addition the NotesApplet has been modified to use the same backend as Opie-Notes, so you can also have quick access to your notes from the taskbar if you wish.
Syncing
Synchronisation is boring. It's a fact. Unfortunately for many people (myself included) it's a must-have for almost any device that has PIM data on it. I have been working hard on this over the last few weeks, and the good news is most of the major work on the Opie side is done. There is now the ability to read and write data to and from the SQLite databases remotely, with the option of only reading changes in both directions, for multiple peers (clients) - i.e., proper synchronisation. What I'm now working on is implementing the other side in the OpenSync plugin. I will also make sure everything works with the old Qtopia Desktop and (time permitting) the old IntelliSync for Zaurus.
It's great that OpenSync development has ramped up again - 0.39 was released last week, just one more version to go until the next stable release which is 0.40. If I work hard I can get everything in order in the opie-sync plugin for that release and we can finally have powerful, reliable synchronisation.
Other bits
Opie has moved from CVS to Git (hooray!); Security settings has had an overhaul with lots of bugs and undesirable behaviour fixed; another big batch of code quality fixes from Erik (thanks Erik!); and more - check out the changelog.
What's next
Make synchronisation fully work; fix the remaining bugs for 1.2.5 (login guest/guest); and of course testing, testing and more testing! There has also been some some interest from a few potential new contributors as well - I won't preempt things but it is certainly an exciting prospect to have some more people on board.
Thursday, November 13, 2008
Opie datebook2
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
* 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
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
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
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.
Sunday, September 07, 2008
IntelliSync testing
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 (192.168.0.5) I was finally able to coerce it into connecting by specifying an address of the same length that it would allow (eg. 192.168.1.1), 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
Opie
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.
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
Hello from sunny England
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
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?
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
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.
Friday, November 30, 2007
LCA 2008
Thursday, November 15, 2007
Wake me up before you go-go
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 handhelds.org 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?
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...
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
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.