Terrifying quantities of hot gnome-volume-manager and translucency action.
Oh, and b33r.
NET_WM_STRUT, where have you been all my life?
Off to Brussels tomorrow. Things to do:
Things that have happened recently:
Things that are happening:
Hacking on a Qt version of Dasher because it's probably more maintainable on MacOS X than the current Cocoa stuff is. Entertained to discover that the Carbon API allows you to write accessible applications, but doesn't seem to allow you to write applications that make accessible queries. And faking keyboard input looks astonishingly painful. It's like they've come up with an interface without any of the good bits of X, but with all the bad bits. Multiple APIs make Matthew inclined to engage in homicidal activity. I'm not hugely enjoying the Qt experience, though a large part of this is probably down to Designer - people who think that MDI is a good idea should be forced to use it on an 800x600 display for a while. I've already got a window manager that lets me stack windows usefully, replacing it with one that snaps them into each other is a regression. A large one. A sufficiently large regression that, were it to be turned into a phallic object and inserted into the developers of the software concerned, they'd be really quite unhappy.
XServer is unhappy about working with acceleration on Radeons on PPC. Which is a shame, because that's my only vaguely desktop machine at the moment.
Academics tend to release stuff under crackful licenses. The amount of code I've looked at over the past month saying "This code is in the public domain. You may not use it for commerical purposes" is quite terrifyingly large. One of these days, I'm going to have to write something quite insulting about it.
libtool still makes my eyes bleed.
Hacked together a GPE interface for Dasher - it's mostly just the GTK2 code with a new Glade file and a couple of #ifdefs, but I needed to write a new settings store to use XSettings rather than gconf.
I hate having to go near xlib. Hatehatehatehatehatehatehatehatehatehatehatehate.
Spent some time figuring out what name_len=(name_len+3)&~3 was supposed to do. Having a room full of hackers is helpful.
Shouting questions into the air reveals that we have the useful bits of Google with natural language parsing and lower latency here at the moment.
Released 3.2.0. Finally. It's got integration with gnome-accessibility (pass --with-a11y to configure), gnome-speech (pass --with-speech to configure) and it'll even give you a nice Gnome-style about box if you want (pass --with-gnome to configure). We're aiming for inclusion in Gnome 2.6, which would be pretty sweet.
(Especially if we end up on those 200,000,000 desktops in China...)
In other news, portability remains tediously irritating in odd ways - I was greatly impressed with the way that different implementations of iconv have differing ideas about the constness of the first argument. Shifted a bunch of code over to glib rather than deal with the pain of differing Unix directory entry parsing semantics. People selflessly dealing with this portability thing on my behalf make me happy. In any case, we run happily on Solaris now.
(Sun's Gnome still needs extra patches from sun.com in order to make it possible to actually compile anything, entertainingly)
Off to the Gnome summit on Friday - first time in the US. Then Philidelphia for further Dasher evangelising, Toronto to meet the Gnome Onscreen Keyboard guys, Boston in order to visit The Other Cambridge, and then New York for a couple of days of "holiday" (where I try to see as much of a major city as possible in 48 hours).
Only a month or so left of Dasher work before I head back to academia. I'm planning on spending the time looking at features for portables and getting the GPE port back into shape, and then with a bit of luck getting the QTopia one to actually behave usefully. What larks.
Moved house. BT were supposed to provide ADSL from the 10th, but are instead under the impression that it was supposed to be the 18th. Coincidentally, this is the day after it was supposed to be disconnected from the other line. I worry that they may have attempted to be clever.
In further news, mail starts bouncing before then. Joy.
Fucking cretinously stupid telco.
Another meeting with the ACE centre people, and much discussion with the rep from a Swedish eyetracker company. I've implemented the eyetracker mode (within the "normal working area" we use the raw coordinates, but outside that we map the x coordinate further to the left - this means that looking further up to try to find the letter that you've just missed slows the rate at which you're heading forwards, and things Just Work(tm)), which seems to be a great improvement for eyetracker users - it has the nice side effect that you can glance at the letters further to the right without flying towards them at high speed. Customisable colour support is nearly finished, speech is nicely integrated, application control functionality is pretty much complete. Looking good for at least a beta release by the end of the month, at which point I can concentrate on Gnome integration and try to get it into 2.5.
Discovered that XFree >=4.0.2 includes keysyms for the entirity of Unicode. This isn't really documented anywhere. If X_HAVE_UTF8_STRING is defined, XStringToKeysym on anything looking like U0041 will give you a keysym in the range 0x01000000+unicode value. Assign that to a keycode and Bob's your uncle. Rewrote Dasher to use this in preference to the at-spi code (it'll fall back to using at-spi if X_HAVE_UTF8_STRING isn't defined, but currently it requires CVS at-spi and still doesn't work terribly well), and now I seem to be able to input arbitrary interesting characters into applications if I'm using a UTF8 locale. Hurrah, eh?
UKUUG was good - lots of enthusiastic people, food and drink. Despite my best efforts I didn't quite get to spend the entire conference hung over. Edinburgh still has too many hills. Entertaining to discover that their goth community appears to overlap with London about as much as the Cambridge one does, with the result that half the people I met I knew at one or two removes anyway (note: Not A Goth). Dasher talk went well, though I should really try to get out of the habit of rewriting chunks of the core code at 3AM the previous night (it works now, of course...) and no alphabetti spaghetti thrown at me. Mildly surprised to discover that there was a 3 page article on Dasher in Linux User and Developer. They've taken screenshots of the old, ugly interface. Grr to them. It's pretty good otherwise, though.
Devious thoughts involving trust metrics and Dashboard. I'm worried that I'm getting excessively close to winning buzzword bingo based only on my own interests.
New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!