Gnome, KDE & Mono A11y

November 26th, 2008

Congrats Mono A11y

Many congratulations to Mono Accessibility, team for getting their first release out into the open.  The Mono A11y team must be one of the largest open-source A11y groups out there and I’m really excited about the work they are doing. WinForms and Moonlight are not yet my thing, but if Silverlight takes off the UIA provider they have created will undoubtedly form an essential part of Linux accessibility.

I don’t believe that it will be in the first release, but I’m really keen to see work start on the UIA client library for Mono. C# and Mono sound like a great place for developing new ATs.

AT-SPI D-Bus on freedesktop.org

For people who don’t know about Gnome accessibility or AT-SPI D-Bus:

AT-SPI D-Bus is a project which aims to use D-Bus instead of ORBit/CORBA as the IPC mechanism for Linux accessibility. For anyone interested in finding out about the Gnome accessibility architecture the developers page has some good information. Oddly enough KDE has a very good Gnome A11y overview, and Sun has a good diagram. Long story short the AT-SPI D-Bus aims to write a new, D-Bus based adapter for ATK, a registry daemon, and client libraries that are API compatible with the existing cspi and pyatspi.

The project has a new home on the freedesktop.org servers.

The code-base exists at:  git://anongit.freedesktop.org/git/at-spi2/at-spi2-core.git.

We are keeping a page on the linux-foundation wiki updated with all our progress. Unfortunately I’d say that the code is not yet ready for a first release. For reasons soon evident the code isn’t currently getting the love it deserves. (Help MUCH appreciated)

The reason we chose freedesktop.org and the Linux Foundation instead of Gnome hosting is that we wanted to emphasize the cross-desktop possibilities of a D-Bus based accessibility architecture.

Gnome, KDE & Mono: How it all fits together

The Mono A11y architecture diagram is missing something important that the AT-SPI D-Bus project can add – QT accessibility.

The drive to D-Bus accessibility came from ORBit deprecation, the embedded community and an ideal of cross-desktop accessibility. Its the last motive that has me most excited right now. QT currently has a D-Bus framework based heavily off AT-SPI, but unfortunately it has never been taken far enough to be compatible with existing AT-SPI ATs. The reason that the ATK, cspi and pyatspi libraries are not getting my attention right now is that I really want to get started on bringing QT into the mix.

A QT adapter for AT-SPI D-Bus will certainly round-out the Accessibility infrastructure on Linux. Not being involved in the KDE community I don’t have much say on how they do A11y, but I hope to make it as easy as possible for them to choose AT-SPI D-Bus. Along with the Mono work this could mean that QT, GTK, ATK, Winforms & Swing apps are accessible, using the same ATs, in both KDE and Gnome. I think that would be a fantastic achievement. If we work hard enough accessibility could be one of the big success stories of a joint Akademy/Guadec next year.

The book meme

November 13th, 2008

I like this meme, its a fantastic window into how depressingly geeky we all are.

  • Grab the nearest book.
  • Open it to page 56.
  • Find the fifth sentence.
  • Post the text of the sentence in your journal along with these instructions.
  • Don’t dig for your favorite book, the cool book, or the intellectual one: pick the CLOSEST.

“Some learned people are intelligent.”

From “Mathematics for the Nonmathematician” by Morris Kline. This is actually an excellent book supposedly for non-science majors to learn about mathematics. In reality its a very nice read on the history of mathematics, with some problems thrown in.

The choice of this book was a grey area according to the rules. The closest was a copy of Nature Genetics, but this is published in volumes and so started at page 700. The next closest was a stack of books, the top one being the latest Buffy comic. I’m not sure comics count. Can anyone make a firm decision about that?

Thoughts on the US elections

November 7th, 2008

This is the first time I have been in the USA during national elections and its been a big eye-opener. During my life I’ve spent a-lot of time here, so I didn’t expect to learn as much as I did. All genuine Americans can tell me whether I stumbled upon a rather unusual election.

Presidential campaign

I met people with genuine enthusiasm for Obama, which was great to see.  People I’ve met here in Minnesota were really exited about him as a candidate, and very involved. No republicans as far as my eyes can see. Perhaps they were hiding behind a tree?

Hopefully the next UK elections in 2010 will get everyone ranting, raving and blogging just as much, but somehow I doubt it.

The only downer was his half hour political documentary. It offended my English sensibilities in so many ways. Fairness – Why does Obama get a half hour slot when Mcain doesn’t? Aloofness – I couldn’t stand the biscuit and gravy stories of real Americans. I want straight policy talk goddamit.

Al vs Norm

Here in Minnesota there was a pretty disgusting senatorial campaign between Al Franken and the incumbent Norm Coleman. Al Franken was, in his pre-political life, a comedian and writer, whose credits include SNL. The main thrust of Norm’s campaign seemed to be making Al out to be an angry, sexist, crazy man. Al on the other hand wanted to make us belive that Norm was a bribe taking crook.

Apparently this was the most expensive senatorial campaign in the country. At $30 million its getting close to an entire UK general election budget. Split that across a population of about 5 million and you get an Idea of how bombarded we were with negative advertisement. Its a relief to be watching “New connectionless light bulb” and “Conquer the neck” infomercials again.

The race isn’t over yet either. Both candidates are stuck at 42% with a recount to take place soon. I can only hope that someone in Washington just forgets about it and neither of them get the job.

D-Bus Accessibility – Its alive(ish)

September 5th, 2008

This may not look like much more than another screen-shot of Accerciser. You’ll have to trust me that is Accerciser inspecting firefox-2 over D-Bus. Its the first visible step in a long project aiming to replace ORBit with D-Bus for the AT-SPI accessibility protocol.

D-Bus Accerciser

Mike Gorse and I have been hacking on this for a little over four months now, and its been pretty slow going. I’m very happy to finally have something to show for it.

So much to do…

What we have however isn’t quite the finished article. One of the main goals of the project is to help bring together Gnome and KDE accessibility. I believe that QT already has an ATK implementation, but I think it would make more sense for the QT accessibility interfaces to meet directly with the AT-SPI D-Bus protocol, a project that has not-yet begun.

On the ATK-Bridge / Pyatspi side there is still a huge amount of testing and bug fixing to do, along with a fair few missing features.

So much to test…

Its testing thats really occupying my thoughts at the moment. A while back, on a linux-foundation conference call, I remeber a conversation about how to test the pyatspi and cspi interfaces.

The conclusions were:

  • Have lots of small applications, each exposing only a few accessible objects and concentrating on a single accessible interface, such as the Component or Image interface.
  • Have a unit test written for cspi or pyatspi that is partnered with one of the mini applications, and inspects it over the AT-SPI protocol.

I have made a poor attempt to unit test pyatspi in this way, but I found it was a-lot of work to get any coverage. I think this is down to my choice of implementing a dummy ATK framework to create the applications. Mini GTK applications would have done just as well.

The advantage of lots of these mini applications and unit tests is that when someone comes to implement the AT-SPI protocol with a new widget set, or with new client side bindings they have something simple to validate against.

Where to go

The repository for the D-Bus AT-SPI work is still on the Codethink servers. It won’t be there for long though, there are plans for the project to be hosted at freedesktop.org soon.

A week in the life of a braindead hacker

August 3rd, 2008

Help needed

There was some discussion this week on desktop-devel about turning ‘Assistive technologies’ on by default in Gnome. See Willie Walkers original e-mailRob Taylor and I had discussed this previously, and at the time I didn’t have much of an opinion either way. After reading Willie’s e-mail though I was firmly in favor.

However Willie stumbled across a possible performance problem when accessibility is turned on. Using gtk-demo to test memory usage ‘top’ shows that accessibility can increase the ‘DATA’ memory section by 15mb, or over double the memory consumption. This was pretty shocking to me, so I tried to use massif to find the cause.

Thing is, massif reports that the memory allocation is not greatly increased by turning accessibility on.  The maximum stack size is not increased either. The ‘DATA’ field of ‘top’ apparently reports the DRS, or data resident set. The number of pages used by both the stack and heap. Rob suggested that fragmentation could be the problem, but in general I’m pretty stumped as to what is causing the discrepancy.

Help and suggestions greatly appreciated :)

Conduit conversations

We have John Carr in the office now. (Infact he’s been there more than Rob and I this week.) This means lots of conduit discussions. I was treated to a crash course on Conduit internals that left my brain feeling like a squeezed sponge, wrung cloth, and juiced orange all at once. This syncing thing is terribly hard and John has some difficult use cases that he wants to make work. (Tranferring contacts from his laptop go to GMail, and from GMail to the N810 and from that to his laptop. Whew.) Good luck to him. I think its the ‘Brain the size of texas’ award if he manages it.

The rest of the week…

Rob probably can’t blog to tell you this because he is gibbering somewhere in the corner muttering “Reference, Reference, where art thou?”. He’s been debugging lifecycle issues for a fortnight now. Its left us vowing never to touch ‘C’ again whenever humanly possible. (Which is not very often).

I have been working hard on the D-Bus version of pyatspi. Its going much slower than hoped, but i’ll get there in the end. I have a holiday coming this week, a trip to Finland for a friends wedding. I’m really looking forward to it. Were going to have a week of saunas in Lapland.

Memories of GUADEC & Istanbul

July 16th, 2008

I had the pleasure of attending my first GUADEC last week. I doubt I’ll have a more enjoyable, tiring, embarrassing, or geek-filled time for the rest of the year.

I started the week locked up in my hotel room. Rob Taylor, John Carr and I were desperately trying to finish a demo that did not make it. Our trips out until Tuesday were mostly visiting restaurants, which would have been enough for me. Lamb Kebab and rice is just about my perfect meal, and during my entire stay in Istanbul I ate like a very happy king.

Once I got myself set up at the conference things got even better, there were some great talks. ‘UXD? WTF!‘ by Leisa Reichelt, ‘Introduction to the desktop data model‘ by Owen Taylor and ‘Syncronization and the GNOME deskop‘ by John Stowers all had me thinking.  It was a real shame that more people didn’t turn up to ‘Accessibility happenings in Novell‘, although it was the very last talk of the conference. Rob and I did a talk, ‘Wizbit a distributed revisioning file system‘, on Thursday morning. It was well attended, and I had a good time speaking.

The whole thing was smaller, and far friendlier, than I had expected. I was fortunate enough to meet Stormy just before, and soon after she had been announced as the GNOME executive director. She was just as lovely to me both times, so I assume power didn’t corrupt too much. :) Thanks to everyone I met for creating a thousand interesting conversations.

I can’t properly express my thanks to the people in Istanbul. They were incredibly helpful, patient and friendly. Even the ‘flexible prices’ that everyone seemed to experience only got bad when it came to taxis and drinks.  Thanks to Ali Sukru Goksu for his organization, and for showing us a great night out on Thursday. The conduit team and I went to an electronica festival on Friday night, which we never would have made it to without being looked after. Thanks Tuçe, Thanks Elvin.

The party prize and the most ‘flexible’ price prize go to John Stowers, for his 5-in-a-row 6am parties and for a certain vodka red bull.

I’ve come back really enthused about GNOME, about the people and the technology. Hopefully I’ll be able to put that enthusiasm to good use over the next year. See you all in Gran Canaria.

Python tidbits

May 21st, 2008

During work on client bindings for AT-SPI this week python managed to surprise me in a couple of ways.

  1. Lambda doesn’t work as I think it should.

    lambda x: del(x) results in a syntax error. This is clearly stated in the python language reference: lambda_form ::= "lambda" [parameter_list]: expression The del statement is not an expression; unsurprisingly its a statement. Its still pretty non-intuitive.

  2. You cant weak reference a weak reference.

    This must be an implementation issue. I’m sure a weak reference of a weak reference makes sense. It did to me at the time!

  3. __slots__ is the most useful thing in the world.

    Just take a look at this graph. Its the results of a totally scientific, completely well researched, test into the size of different structures in python. They are all holding roughly the same amount of information.

    Python memory use

    Structure Type Memory use (kB)
    Slot Object 18988
    Tuple 19252
    List 19476
    Dict 42768
    Object 44320

Who does what about the Debian Debacle?

May 17th, 2008

Hopefully everyone already knows that Debian & Ubuntu have let us all down over the past two years by shipping a woefully insecure OpenSSL package. Personally its destroyed a-lot of faith that I had in the Ubuntu operating system.

Most of us, who arn’t deeply involved in our OS, have to simply trust in the processes and people putting it together. I’m no exception. Before this happened I had no real understanding of the packaging / development process for Ubuntu, and no great interest in it either. More fool me. This one security breach has left me scrambling to find out what went wrong.

 Fixing the cause

This one isn’t going to go away because the fix has been shipped. There is still a serious flaw in the Ubuntu and Debian development process that I’m hopeful the developers are working this out on the mailing lists / irc right now.

Erich Schubert had to say about the maintainer who made the mistake ” But you bet he’s going to be a lot more careful with any change in the future: he has learned his lesson”. I’m sure he has, but as Erich mentioned shortly after , lots of other maintainers won’t. Nor is there going to be a massive increase in the code quality of upstream software, even for security-sensitive things like OpenSSL. Badly commented software and miscommunications are facts of life, what Ubuntu needs is processes that catch these mistakes in a little less time than 2 years.

 Regaining my trust (and perhaps others too)

I’m fairly sure that things are taking place to make sure this doesn’t happen again. But, like so many institutions, Ubuntu can’t just do right on this one. It has to be seen to do right. The solutions that they come up with must be timely, and extremely public. There are a huge amount of people and companies that use Debian & Ubuntu. Not all of them have time to trawl mailing lists and blogs. Its a biggie, If Canonical don’t start talking loudly about this its a real incentive to move to a different distribution.

D-Bus AT-SPI is well underway

April 29th, 2008

Work is starting on the port of the AT-SPI framework to D-Bus. Codethink are, graciously, being funded by Nokia to undertake the work. Mike Gorse is working on the project full time, as part of his work for Novell.

Mike has got alot done and there are some initial D-Bus specifications, as well as alot of code on the ATK to AT-SPI adapter side. For the moment we’ll both be working in a git repository on Codethink. Hopefully we will be able to move the code into a repository on freedesktop one day.

The AT-SPI D-Bus work is important as it is attempting to eliminate the last vestiges of CORBA from Gnome and at the same time help with cross desktop accessibility. I’m hopeful that despite the transition we will be able to create a flexible and performant D-Bus protocol for AT-SPI.

I’ve written before about our results on D-Bus vs CORBA performance, done in preparation for this project. The results were a bit shocking for the D-Bus team so there need to be some significant changes to the IPC for things to remain snappy.

All the cool kids…..

April 12th, 2008

history|awk ‘{a[$2]++ } END{for(i in a){print a[i] ” ” i}}’|sort -rn|head
118 ls
104 vim
72 cd
67 make
14 rm
12 ./test-directory
11 git
10 ./mjpass
9 gvfs-mount
9 cp