Nice guy EDI

I've spent the last week and a bit in Edinburgh, at DebConf7. I found it took me a couple of days to adjust for some reason, but after I'd managed to lose all sense of time everything went much better. I'll probably spend the next week recovering and catching up with real life.

I have to say I don't feel I achieved a whole lot while I was there. When I went to my first DebConf (DebConf4, in Brazil) I spent a lot of time hacking and making progress on things. I didn't manage to do so well in Finland, nor this year. I'm not sure that's entirely what DebConf is about though. I saw a lot of people; the UK crowd who turn up to most things, people I hadn't seen since Finland, and those who I hadn't see since Brazil (and must try harder to see more often). And of course several names I was able to put to faces. This is a really useful part of such events - I find it's much easier to deal with people online once I've met them in real life and have an idea where they're coming from.

Having said I didn't achieve much I did many to leave with a lot of things in my personal todo list. I had the calendar conversation a couple of times again, at greater length, resulting in being told that I should just do it. So I need to think about a proper design. I started looking at Just Writing Code, but the problem is such that I believe a more rigorous approach is required. Another item was ARM hacking; I sat in on the ARM BOF and caught the end of the Emdebian stuff, as well as talking to Wookey and Neil Williams quite a bit about it. Wookey's convinced me that working on mainline Balloon2 support is still useful, even if everyone is more interested in Balloon3. And I thought a bit about starting to do some AM work again, assuming I can find enough time to do a decent job of it.

Mao was sadly lacking; I got a couple of games in, but not the number I'd come to expect from previous DebConfs. I think the trick is to find Marga sooner...

In addition to the travel to Edinburgh we ended up with a daytrip to the Isle of Bute - thanks to Patty Langasek for organising this. We managed not to lose anyone, and had a visit to a public loo from 1898. Post DebConf a bunch of us ended up in Solva for a party to celebrate Daniel and Rob's civil partnership. It was well worth the travelling, and good to see people who hadn't been at DebConf. Finally, on the way back home, we detoured via Stonehenge.

Anyway. Now I'm back home, Katherine's turned up for a bit and hopefully I'll manage to do some of my todo list. See y'all next year in Argentina, assuming I can find the funds.

Is it cos I is ginger?

I have to say “Yes” to the BBC. People say things about redheads they would think twice before saying about any other discriminated group.

Indexing documents

Dear Lazyweb,

I am prone to downloading random documents (usually PDFs) from the interweb. Often these have helpful filenames like 30430.pdf. Renaming them helps, but I seem to collect lots of them.

Is there a simple document management system I can import them into that will let me at least categorise things, and then search for titles etc (bonus points if I can actually search the text in the documents, but I can cope if I need to manually enter the info on import)? PDF is the most useful format for me, but I'm sure I'd end up using Word or whatever support too.

apt-cache search dms turns up MyDMS and Owl though both look a little heavy - I only need it for local personal use.

Thoughts on calendars

I keep having what I've started to think of as the "calendar conversation" with various people. I start by outlining what I think are some fairly reasonable requirements. I'd like to have multiple calenders viewable by different sets of people. So Simon would be able to view my work calendar, while Katherine could see my personal calender (and possibly small bits of work calender where I was going to be away from home). I also want to be able to view my calenders from a variety of devices. My desktop, my phone and my laptop, for example. A web interface might be nice too, though less important to me.

This doesn't seem like a lot to ask. My general hope is that whoever I'm boring about this will then say "Oh, you need to look at foo and maybe bar". After all, that's the case with most software related things I need - it's already been done, and there's a good solution available.

What actually happens is the person I'm talking to nods in agreement and says they'd like the same sort of things but don't know of anything that manages it.

I think the problem comes down to syncing. Sharing my calendars with other people is effectively allowing them to sync their calendar(s) with mine, with some sort of filtering so we each see only what the other wants to see.

Likewise, multiple devices is all about syncing. Changes made via one method need to be visible on all of them (ideally as soon as possible).

Decent syncing also brings another advantage; client independence. If I can reliably sync my information to a variety of devices/clients then I can try a different client with little risk. We have this already for mail - anything that can talk POP3, IMAP and/or mbox is easy to try out and if you don't like it then you can just change back to what you had before or try something else. Calendaring doesn't seem to have that.

I don't think that the interface a client exposes needs to be complex. At a basic level what you need is a way to find out what the client thinks has been added, removed or changed. You also need to present this information in a standard format. Unfortunately iCal (RFC2445) appears to be what we've got here. I think it's a bit overly inclusive, which seems to lead to incomplete implementations. Is there a complete iCal parser library out there?

The best hope for syncing that I'm aware of is OpenSync. And I haven't been that impressed; while I managed to get it to move the contacts from my SonyEricsson v600i to my Nokia E70 some of the details got mangled on the way. And lack of things like recurring event support in some of the plugins (eg the Google Calendar syncing adaptor) or warnings about data loss in the Sunbird plugin aren't encouraging.

Speaking of Sunbird, I'm not impressed. Last time I looked (and it doesn't appear to have moved very far since then) it didn't make any attempt to support syncing. I'm sorry, WebDAV isn't a syncing system. It's a way of storing files remotely. Sure, I found the interface ok, but I need to make my calendaring data accessible for it to be useful.

The Windows approach to all of this seems to be ActiveSync and the use of Outlook. I don't believe that it really handles more than the desktop client and a remote device though? And group calendar sharing requires an Exchange server? Not exactly the flexible solution I'm looking for.

I think a key point is that all of this needs to be reliable. I didn't spend time debugging my OpenSync contact syncing issues partly because I didn't notice straight away that there was a problem (it was with additional details like email addresses rather than names/numbers IIRC), but also because it was a lot of work to delve into the code and find out just what on earth was going on. A while back I started looking at writing some calendar syncing code (called Pony) and hit a problem with complete inconsistency in handling time zones between clients that put me right off. If it's not reliable it's not useful. If it's not useful people won't test it and fix it.

I think a starting point is a reliable iCal implementation that can handle everything in the spec. From there you can write plugins that will take whatever bastardised variant your device/client supports and translate to and from it. The syncing tool will need to keep a master copy of all the data, because there's no guarantee anything else will be able to support all the fields. A local complete copy should enable appropriate frobbing of data to/from any device/client without losing the information if a new device/client that can handle the data is added.

Of course almost all the above applies to contacts as well; I have work contacts, personal contacts, boring house contacts (plumber, garage etc). vCard is the appropriate interchange format for that (why did vCalendar become iCalendar, but vCard not change?), but contacts feature similar issues to calendars I believe.

Does this seem reasonable? Please tell me someone has already done it. Point me at Debian packages that will let me sync my phone, my Google Calendar and a local client and make me very happy. I have visions of a suite of tools all chatting over DBus; a little client that looks for my phone to appear over bluetooth and then syncs when it does, a little client that monitors Google Calendar for changes. Sunbird reporting when something changes (and accepting notification of changes). Some other client ([Dates http://www.pimlico-project.org/dates.html]?) doing the same. Another sending the data over WebDAV or SFTP so that my laptop can pick up the info when I'm on the move.

I don't think I'm the only person looking for this sort of stuff. Where is it?

What's the fuss about ATI/AMD?

subscribe via RSS