Here's a very interesting report from Telecom and Alcatel about ADSL in New Zealand... Kind of surprising to see it publicly available, to be honest.
Days like this I'm glad I'm on the end of a wireless link. And I don't have to put up with the ridiculous latency of ADSL as well.
I live more than 2k from an exchange, and used to dangle off the end of one of those sucky ADSL connections where Heather would wipe out the usefulness of my SSH connection whenever she downloaded something. Every time another customer goes onto that stuff it seems that it gets worse for everyone else in the same cable bundle.
After the upgrade, 77% of customers achieved their assigned line rates."
Awesome. And that is not talking about the current plan changes, but about the ones that happened in April.
The Ubuntu theme for art.ubuntu.org doesn't work on Gallery 2.1, so I made another version for gallery.ubuntu.org.nz which does. The plan is to use this for a competition, coming soon...
And if anyone else wants the Ubuntu Art theme for Galley 2.1, here it is.
Congratulations to the Mozilla Calendar project for getting to release 0.3. This is a significant release, and it marks the project's achieving sufficient quality to make it to be mentioned on the front page at Mozilla.
At this point both Sunbird (a standalone application) and Lightning (a plugin for Mozilla Thunderbird) are both quite usable - I have used both for days at a time without crashes. They are, of course, not without their issues but my experience has not involved data loss, or really any wierd disfunction at all.
One of the great features of Lightning / Sunbird, and the reason I have been playing around with it, is that it supports CalDAV calendars, and I have been making my Really Simple CalDAV Store to work with it, as well as adding the facility to maintain timesheets that way in our Work Request Management System.
There are a number of open standards which allow for the potential for storing calendaring information in remote repositories, but the only one that really matters is CalDAV. It is actually a fairly simple standard, based heavily on pre-existing standards like RFC2068 (HTTP/1.1), RFC2445 (iCalendar), RFC2518 (WebDAV), RFC3744 (WebDAV Access Control) which alas, are not quite so simple.
Common existing ways to share calendars generally work around one of (a) just sharing free/busy information, (b) publishing your calendar to a URL (c) sharing appointments via e-mail or (d) doing the whole thing on teh intarwebs. Unfortunately none of these achieve the level of functionality of commercial group calendaring.
CalDAV does manage to provide a framework where those levels of functionality can be achieved because it involves sharing individual calendar entries, rather than whole calendars. It also allows for multi-user access to the same resources and uses standards which generally already inter-operate just fine (such as iCalendar, which is even supported by the Microsoft calendaring applications). In fact most of the CalDAV specification seems really to provide sanity around how to tie all these things together, along with a REPORT method to allow querying of calendar resources with some knowledge of the kinds of data they actually are.
CalDAV will also get another notable boost in a month or two when Apple finally release OS 10.5, which also includes a calendar application that supports CalDAV to partner with their free open-source calendar which is already available.
So I heartily recommend downloading either Sunbird or Lightning and seeing if they will do the job for you, and if they do you may be able to use an on-line server to store your calendar data as well. Of course if you do use it with an external calendar server there may often be less concern if your calendar client does crash, since the data will still be on the server.
Thunderbird and Lightning not very, very frightening at all!
My Really Simple CalDAV Store moves on apace. I have rewritten several of the libraries to use a more consistent structure, and have now implemented a fair subset of the PROPFIND command - to the extent that Mulberry now works with it as well as Sunbird/Lightning and Evolution.
I've also started developing a regression testing framework, and I believe that the database structures around the calendar resource data are now basically correct. From this point I will provide patch scripts to allow upgrade of resources.
It is interesting to see the different approaches that client software has taken to dealing with CalDAV, and I have to think that this has something to do with the long process of evolving the specification. It will be nice when it is complete, and people can develop against something that isn't moving. I believe that the CalDAV specification is actually quite good and straightforward, but I don't feel nearly as happy about the iCalendar spec.
The iCalendar definitions of timezones, on the other hand, have to be one of the best examples of overachievement out there! It is not surprising that none of the software I have come across actually includes more than the most recent timezone definition information within events. The full definition of the New Zealand timezone comes to around 15k, and it would be ridiculous to include that with every event! In an even more bizarre twist, there is no field within the VTIMEZONE which references the timezone with a standard name! No doubt that is not problematic when most people are arranging things within a timezone, but for global events it really is a significant flaw. Evolution uses an X-LIC-LOCATION property to reference the Olson timezone name, which seems to be an industry standard of sorts, but the standard should define such a thing. Even better, having defined a standard way of referencing the timezone name there would be no need to schlepp the full timezone redundantly along with every event.
Well, enough ranting :-) Improvements in this version of RSCDS include:
- Fix some bugs in caldav-REPORT, which was not working with Lightning.
- Complete work on PROPFIND so that Mulberry now works.
- Add MKCOL, which is based on MKCALENDAR, to support hierarchies of collections better.
- Rewrite REPORT to use the new XML libraries.
- Commence support of relationships and permissions.
- Write new ics.php which allows export of the full repository (for an admin), or a subset of the repository.
- That new ics.php allows webcal presentation of the calendars also, so that even if evolution can't support tasks as CalDAV, it can at least refer to tasks someone else puts there with (e.g.) Sunbird.
- Started development of a regression testing framework.
I think I'm now at a reasonable stage to have a Debian package repository for this project. Anyone interested can browse the Git RSCDS repository or Andrew's Web Libraries repository to see my progress in more detail, it's still better to provide a place where it can all be downloaded from, so you can now add this to your sources.list:
deb http://debian.mcmillan.net.nz/debian unstable awm
For those unenlightened folks running on systems that aren't based around the Debian packaging system I've provided some .tar.gz files for RSCDS and AWL that you can download as well.
I know that I gave a list of goals for my "Really Simple CalDAV Store" (RSCDS), but of course I did something completely different...
Well, maybe not completely different. One of my goals was to "find some non-Evolution CalDAV clients", and I found Thunderbird + Lightning in the form of a nightly build which worked in many ways. What it definitely did do was point up some of the over-simplification I had taken in my first cut, so I went right back to basics and redesigned tables, renamed columns and rewrote objects.
Another thing that I did, which provided a good bunch of background information was to add CalDAV support to WRMS. This was an incredibly useful thing, because it familiarised me further with the structure of iCalendar entries and so forth, and although the implementation is not really usable, it shows me the real value of storing the iCalendar entries natively and keeping the parsed values separately. That's the way that RSCDS does it, and it seems to work very reliably.
I also did at least start to develop the admin interface, and to improve the database setup scripts. I just didn't get incredibly far down this path, although I probably will now that I've got what I consider a releasable starting point.
The first of the files below is a Debian package of my standard web libraries, libawl-php, which is a bunch of useful routines I've developed over the years. The other file is, of course, the RSCDS application itself.
Updated 2006-12-19: these files have been removed as they are out of date!
arewere some files for you to play around with:
Here are some really basic Really Simple CalDAV Store instructions.
I've now spent some time writing my "Really Simple CalDAV Store". I've got it to a point where it:
- Accepts uploaded events
- Reports on events
- Handles updates to events
- Handles deletion of events
- Uses "Basic Auth" to identify the user
- Is Debian packaged (in a very basic form)
- Parses the event into a PostgreSQL table
Further goals now are:
- Provide a simple admin interface for users and groups
- Re-present events in free/busy format
- Find some non-Evolution clients to try to handle
- Write a better process for setting up an initial DB
- Re-present sets of events as an iCalendar URL
- Add support for MySQL (no, just kidding :-)
If anyone wants to play with the Debian packages of this "as-is" I will make them available, but at this stage administration is through SQL queries directly against the (PostgreSQL) database.
My previous efforts to purchase a Nokia N770 finally came to fruition this morning when two of them were waiting on my desk when I arrived at work. I was very happy, although if these do the job we'll have to go through that all over again to buy the next 20 or so...
For the curious, these were ordered through the Nokia UK website, delivered to the relative of a workmate passing through England for a conference who then collected them and posted them to us. We might have to find a simpler way for the next lot...
Can it really do what I want it to do? Is it usable? Although I've played with these before (in Helsinki before they were released, and in Mexico earlier this year) I have not had one in my hands long enough to really get to grips with the user interface.
Now I have one that I can play on without restriction, I can see that it is all really well-designed for the form factor. Nokia do seem to do this sort of thing very well, and the software all integrates very nicely, and be very stable. So far I've only managed to crash one application (the browser) when trying to resize the screen while viewing the UI from Hell. Hardly unexpected - that particular bit of Flash (Crash ?Trash?) seems to break most browsers in this household.
To try and gauge the battery life I handed it over to Heather for the evening. She found it fascinating and didn't put it down for about five hours - with the battery icon still indicating a full charge. The battery icon did suprise me, in that you can't click on it, or mouse over it to get more information. In fact the oddest thing I have found so far is that there was no 'Power' item in the control panel and the only control over power seems to be under "Display" where you can set screen dim / blank timeouts. No separate adjustment for when you have it plugged in, or for how long before the WLAN chip times out, but perhaps the battery life is such that I won't find myself doing it regularly and my desire to fiddle with such settings is foolish.
Hacking In ...
Well, I didn't manage to stave off my desire to fiddle for very long at all... maybe an hour after I got the device I had downloaded a backup image, in case I have to reflash it back to a known state! First up was the need to install an XTerm, which proved relatively straightforward after adding an APT source pointing at http://maemo-hackers.org/apt/ (although you do this through an Application Manager of course :-).
Once I had the XTerm installed I can get into the Linux installation, but to get root I need to do something more complicated. The Wiki suggestion was that I install an SSH server and ssh in as root so I downloaded the Dropbear from my laptop and saved it directly onto reduced size MMC in the N770, mounted as USB storage on my laptop - very easy. The installation of a downloaded version of Dropbear failed though, and unfortunately the "Application Manager" didn't display the error messages. So I proceeded to use the "flasher" tool to "enable R&D mode" which eventually succeeded after many unsuccessful attempts. I seemed to need to:
- power the N770 off
- hold down the "Home" button
- press the power button
- insert the USB cable as soon as the screen lit up
It seemed that it wasn't possible to power on the device while the USB cable was inserted.
Reading the documentation further, it seems that it should be trivial to create a Debian package which could be installed to replace (or edit) the "gainroot" script so that it doesn't check for R&D mode, and I think I will do that if we are going to be getting a bunch more of these.
Anyway, now I had root access I could see that the Dropbear packages wouldn't install because they were the wrong architecture. It seems that I must have a slightly newer model than the documentation (and many of the packages, I guess) apply to, and that the architecture is 'armel' rather than 'arm'.
I suppose this means that next up I will need to download scratchbox and set up a build environment so I can build that SSH server, and probably so we can build all sorts of other things to go on there.
I'm looking forward to it, although it has somewhat distracted me from my CalDAV investigations, which were really starting to get somewhere useful.
Do we really need another UI?
In order to have Pizza tonight, it seems I have to deal with the Pizza UI. Again. I wouldn't mind so much if it worked, but tonight it doesn't. I could put up with (stupid) little daemons wandering around my screen for a short while in order to be able to buy some food. It's OK that I've seen it many many times before, and it's really not that difficult to deal with the same stale annoyances.
Well, of course, on some occasions I've had to do it using a web browser running on another computer. Then all those bats whizzing (well, f-l-i-c-k-e-r-i-n-g, on those occasions actually) really do start to give me a 'bad user experience'.
The reason I've had to use a web browser on another computer is because the Pizza UI is written using what is effectively a proprietary application, and the program which they force me to use to access the site is not tested for all of it's operating environments - most especially that software combination of my computer and that hellish website which also coincidentally has shockingly bad accessibility.
When marketing is more important than product
When I first started to experience problems with the Pizza UI about six months ago, I sent them an e-mail telling them that Macromedia® Flashtm crashes whenever I browse their website. They quickly ascertained that this only happens for some percentage of those people using Linux. They then proceeded to wonder if it might just be easier for all Linux users to be directed to the PDF menu, so that they could phone their order. I don't know if they were serious or not but if they were then I guess they are more wedded to the annoying features of their website than they are to it's ability to allow customers to purchase Pizza. You kind of have to wonder where a business that thinks that way is going, don't you?
And anyway, is a crashed browser important?
Can't you cope? Well, no. I usually have around 20-50 web pages open at any one time, which can be quite annoying. Heather would typically have around 150-200 pages open, so when she has to restart her web browser after an attempt to visit the Pizza UI I would not be suprised to find they could hear the screams down at the local franchise. Although I am clearly in a minority with this particular problem there is not a single computer of the seven in this house that can successfully work around it.
But wait! There's worse!
Of course that's not the only sucky website that I can use for ordering Pizza. It seems that if I want to order Pizza over the in-tar-web I don't have a choice but to use Macromedia® Flashtm. Normally I prefer not to install this because it is the application of choice to run advertising content, so why would I want to? In the course of a normal day, it seems that the only time I need Macromedia® Flashtm installed is to run advertisements, or to order Pizza.
In fact the crappy Pizza Hut website sucks even more than the annoying Hell Pizza website sucks. At least with the Pizza UI in hell it is only really the designed in annoyances that annoy. The Pizza UI at Pizza Hut has decreed that when pressing the <TAB> key you will be transported to a random field - a particularly exciting trip when you are moving from (e.g.) the credit card number field to the credit card expiry field. Not that I can actually get to the credit card fields on a regular basis. Restaurant Brands New Zealand Limited seem to have some pretty crappy kind of back end for their operation, because the normal response to an attempt to log on to their Pizza UI is the useful and informative message that "There is a problem with the server please try again later". Right, of course I'll do that, won't I?
Use the Damn Phone, Stoopid!
People ask me why I care? Why don't I just download the (damn) PDF and use the (damn) telephone to order a Pizza. In fact my son asked me that tonight because he was getting as frustrated with me as I was with these (damned stupid) braindead websites. I think he might have been hungry as well,and I suppose that my own evening rant might be fuelled by low blood sugar too.
Strange as it may seem, Pizza-ordering in my house involves being repeatedly yelled at with orders until you can acknowledge each one with the fact that their dinner will be here in 40 minutes. This is not a nice experience when you are trying to speak politely to a harrassed and underpaid person in a noisy environment at the other end of the phone. That way lies madness! As a theoretical alternative, a web-based "shopping cart" site such as I use for ordering computers or buying CDs seems like a (potential) breath of fresh air. Those sites work for me because they have chosen standard technology over battiness. Strangely, I actually find them easier to use because they didn't care to invent a computer ordering UI or a CD purchasing UI. There's no need: after a lot of refinement of these models over the last few years we've all agreed on something that actually provides a fairly straightforward path from consumer to purchase, without any stupid fucking bats getting in the way.
Never attribute to stupidity, that which could be blamed on a conspiracy
So, of course, it must be a conspiracy. Some of my favourite conspiracy candidates would be:
- Pizza delivery companies are actually run by phone companies, and will still use the PSTN even when everyone else is VoIP, so you will still need a Real Phonetm to order Pizza.
- The website is designed to discourage Pizza ordering, because they are worried that they couldn't keep up with the demand if everyone logged on at 6:00pm to order a Pizza.
- Pizza companies get marketing websites built to give people the idea that a Pizza would be really nice, and one day you'll be able to order them over the internet, but they're waiting for smell-o-vision and figure it will be implemented in Macromedia® Flashtm first.
- Pizza delivery companies are actually owned by advertising companies, in order to ensure that Macromedia® Flashtm is installed even on the PCs of hardened Linux geeks like myself.
I think I like the last one the most. Conspiracies always seem best, somehow, when they actively persecute minority groups that include yourself.
Right. Now that I've got that six months of annoyance off my chest it's time to complain that my Pizza, which I eventually ordered over the phone after crashing my wife's web browser and three different web browsers on my own computer, arrived 10 minutes late.