Swanky Codethink offices

April 30th, 2010

More than a year ago now Codethink moved to a new location in central Manchester. Its become a comfy home, but I don’t think we have ever introduced people. So without further ado here are some pictures of the ‘new’ Codethink offices.

Codethink sign

Bookshelf

Manchester in the rain

Meeting space

I’ll hand out a prize of 20p and a curly-wurly to the first person to guess what Rob thinks is the most embarrassing item on our terribly disorganized bookshelf. I won’t lie to you either, the picture of a grey Manchester through a rainy window is a common occurrence. Still, the hacking is awesome, who needs Mediterranean weather patterns.

Tracker RDF database performance

April 15th, 2010

I have spent time on-and-off the past week looking at the performance of the Tracker RDF database. Tracker, I believe, started out as a desktop search tool for Gnome. I never used it in this incarnation, and it has only come to my attention  since version 0.7, when the developers implemented a general purpose RDF storage engine at its core. I wanted to know how this newly implemented RDF database compared to a widely used RDF database in terms of query performance. In essence I was interested in whether the Tracker project had spawned something that could compete with Virtuoso and 4Store.

You can find my complete results and analysis at the tracker mailing list archive, but the headline statement is that tracker had roughly 9 times the query performance of Virtuoso. The graph here shows the breakdown by query.

This is a drastic difference in performance that greatly favours the home-grown database utilized by Tracker. However this stellar performance comes at the cost of flexibility. Its obvious that the database has been tailored very much to the needs of Tracker itself. Unlike Virtuoso it is not ‘schema-free’. A description of the data (In the form of something called an RDF ontology) is required for storage. In addition to this, the data formats are more restrictive, and some common elements of RDF are missing.

My general impression was that Tracker has great query performance, especially considering a tiny memory footprint. Unfortunately it is not suited to storage of pre-existing RDF data sets, such as those generated for semantic-web applications. This could well change in the future. Tracker, and its RDF database, are in heavy development. They already have speed and seemingly stability in the code-base. It might soon be time to add the new features that make it more generally applicable.

I should add that when I started this work I was heavily sceptical. Codethink have been highly involved in RDF, but I have not joined in. I have learned a-lot in the past few weeks, and this has made me more positive. I still believe that RDF might be too flexible for its own good, and I’ve found that the ontologies are onerous, complicated, and not very well specified. I did however come across a great post which explains some of the advantages of RDF over other data models; SPARQL is far more intuitive than its SQL cousin. If used to its potential, with highly interlinked data, I think it may be possible for the benefits of RDF to outweigh the tough learning curve.

Funding Gnome a11y

February 8th, 2010

As many of you may have heard, from blogs by Eitan, Mike and Joanie, as well as an e-mail to the gnome-foundation-lists by Fernando, the Gnome a11y community is having a tough time.

I have been interacting with the a11y community for over two years now, and in that time the funding situation has never looked good. I do not wish to insult or demean companies that are no-longer involved in funding Gnome a11y. Companies and individuals have their own priorities that they must follow. Work they have done in the past on Gnome is very much appreciated by me, even if they cannot continue that work in-to the future.

That said, I believe that in the past two and a half years Gnome a11y has lost a huge amount of funding. First from IBM, which, to many peoples dismay, pulled out of a11y funding before I started work on AT-SPI. I was glad to hear that Mozilla is providing $10,000 to the Gnome foundation for a11y work. I’m extremely grateful for that, but I do not believe that Mozilla are providing the level of funding that they have done in the past. Our work on AT-SPI D-Bus has been funded jointly by Codethink, Sun, and another un-named benefactor. None of this funding is likely to continue past the end of February. All of this would seem slight were it not for the news that Oracle have let-go of important Gnome a11y community members working for the Sun Accessibility Project Office. Sun have been the major contributor to Gnome a11y, and this is a worrying signal that Oracle do not intend to continue the current level of contribution.

Assuming that Oracle do not wish to involve themselves in Gnome a11y, my back-of-the-envelope calculations indicate that we may have lost greater than $200,000 in anual funding over the last three years.

Although huge amounts of Gnome development takes place un-funded, by hackers, volunteers, users and hobbyists you would probably be surprised how much is done by folks working a 9-5. I don’t expect the figures to be the same, but as an example, 75% of kernel developers are paid by corporations for their work. The loss of the Sun Accessibility Project Office and other sources of funding will be felt very heavily by the Gnome a11y community.

Accessibility is incredibly important to the Gnome project, and not only to its users. Gnome has a fantastic, credible, accessibility story. This, to me, marks Gnome out as a class ‘A’ open-source project. Were we to lose this, it would be a turning point. In my eyes Gnome would then be a project in decline.

What can we do?

Firstly we need to go on a cohesive search for funding. The Linux Foundation has an accessibility group that I have been involved in for a long time. This seems to me the best place to combine our efforts in the great funding drive. Funding channeled through the Linux Foundation would not be Gnome specific, but cross desktop a11y technology is what we have long been striving for.

Ideally enough funding would be found to hire someone to work full time on Linux Desktop accessibility.

Outside of the search for cash all Gnome developers need to spend more time on accessibility. Its not always easy to make ones application accessible, and I’m sure it can seem daunting. There are still a11y community members ready to help out though. All is not lost. :) I’m damn near certain that we are going to pull together. Gnome 3.0 will have the same great accessibility that has made me proud of past Gnome releases.

Will ‘superphones’ make us more productive?

January 7th, 2010

Every tech company under the sun seems to be pushing new variants of the computer experience on us at CES this year. Smartbooks, Tablets, E-Readers, Smartphones, Netbooks and Notebooks, by the end of 2010 there will cease to be a segmented computing market and consumers are going to have a continuous spectrum to choose from.

Leaving aside how this will muddy the waters when it comes to purchasing decisions, I’d like to concentrate on the most established of the new computing paradigms – the ‘smartphone’. Google can call it a ‘superphone’ all they like, but if its true, then a fruit themed Cupertino company were flying over Metropolis long before they were. The company I work for, Codethink, are considering purchasing smartphones for some of their employees, which has left me wondering if it will make us any happier, healthier or more productive.

Previous size reductions of computing technology have completely shaped the way I work. Over the past two years I have done a full weeks work in: Berlin, Rochester MN, Cambridge UK, North Wales, Manchester, Brighton, and Edinburgh. This is thanks to the availability of small, powerful laptops. It has enabled a whole class of mobile web-workers and I fell for it almost immediately.

I can’t say that hasn’t come without a price, its a ball and chain thats always with you. As software-engineers we tend to love our jobs, take it home with us, sometimes to bed with us, often to the detriment of our well-being. I know that open-source companies have to be pretty mindful of losing people to expectation-stress.

Until now, the smartphone that has become most embedded in business culture is the Blackberry. This has me worried. The Blackberry has so-far been a tool for extending work-hours, convincing employees to stay connected, and stay interrupted. Open-source engineers are already in a state of hyper-connectivity. The moments away from our laptops give us the peace we need for the next day, and extending the flow of information in to that time will lead to a very quick burn-out for us all.

So how will the ‘superphone’ enable me to give-up my laptop? What can I do with it during work hours that will help to streamline my day? As an organisational tool I can’t imagine it will perform better than the computer on my desk, but I may be surprised. Perhaps software for un-obtrusive note-taking will help us ditch the laptop during meetings. Codethink already has a habit of some rather long lunches, maybe this can be turned in to a more productive, but still creative and fun time of the day. Does anyone use some great software that we can’t miss out on?

I know Collabora had the mother-lode of N900′s shipped to them the other week. Collaborans – Is it working out well? :)

Codethink at ELCE 2009

October 19th, 2009

Rob and I took a trip to Grenoble this week for the Embedded Linux Conference Europe meeting. All-in-all a very good couple of days for us. We showed off our research project (daily-catchup) in the demo room on Friday afternoon and got to attend some fantastic talks. Travelling wasn’t so much fun though. Somehow we managed to take 12 hours getting from Manchester to Grenoble. The two pervasive themes at the conference seemed to be boot-time reduction and android.

Rob and Jon have a natter

Rob and Jon have a natter

Jon Masters gave a very good Keynote on Porting Linux. Very interesting to me, Jon gave a great overview of some new things going on in kernel land.

Matt Porter debunks android myths.

Matt Porter debunks android myths.

The prize winning talk at the conference was entitled “Myth-busters: Android”. Matt Porter talked about his team’s experiences porting android to the Power and MIPS architectures.  It seems that android is not yet a mature technology. Much of the code is ARM specific. Having replaced nearly all of the user-land stack, there is a-lot of configurability and features missing from a more standard linux distribution. I shall endeavour to get hold of the slides so that you can all form your own opinion. For me it was an eye-opener as to just how different android is.

Rob's spin of android fail.

Rob's spin of android fail.

This is the lovely face Rob had immediately after the android talk. If I had to para-phrase the conversation it would be: “Look what they did to our beloved stack”. (Ignored it completely)

The android BOF later in the day helped us all to see some of the really good parts of android. It gave me the feeling that as the platform and community around it matures we will all be able to work with a really great open source product. Just expect a-lot of re-training and re-adjusting along the way.

Rob demonstrates daily-catchup.

Rob demonstrates daily-catchup.

We demonstrated our daily-catchup research over lunch. The demo table was well attended. Rob and I got to talk about the javascript, vala, tracker, clutter and MVC wizardry that goes into daily-catchup. Its a rich-gui social networking application intended for disconnected operation.

Codethink and the Monta-vista massive.

Codethink and the Monta-vista massive.

Tasty dinner on the final evening of the conference. Somehow Rob and I found ourselves out with the Monta-Vista massive. They are a great bunch and made for a wonderful last night in Grenoble.

For a more detailed overview of the conference itself see the free electrons blog.

AT-SPI2 First release

August 22nd, 2009

Its been a long time coming, but about a fortnight ago we did the first release of AT-SPI2, the D-Bus port of our Linux accessibility framework. As mentioned in the notes the release had a warning label.

‘DANGER: Development release – may cause psychological harm’

Overall though I’ve been very pleased with the work we’ve achieved so-far. I have not been funded to work on the project for six months now, but I’ve found time to fix a few bugs, and most importantly help out those who want to get involved. I never really believed Linus “Release early, release often”, but it turns out that he  was right. Since the software has had an official release we’ve had a good number of people providing patches and generally poking at it.

Thanks go to Mario Lang, Stephen Shaw, Halim Sahin and others who have tried things out. Its been extremely useful. Mario especially finding a couple of serious bugs.

We still have a long way to go, but the end has been in sight ever since the hack-fest in Dublin. We need to get the cspi port up-to-date, help Mike Gorse work through the issues regarding reference count removal and fix bugs, lots of bugs. With EDS quickly shifting to D-Bus Gnome is well on the way to ORBit removal. A11y and GConf shouldn’t be far behind.

File Organization & Gnome 3.0

July 14th, 2009

Thank-you to Felix Kaser for pointing out Mark Shuttleworth’s interview with derStandard.at. It was an incredibly interesting read. While at the GCDS this year I made many guesses about the Ubuntu opinion on Gnome Shell and the plans for 3.0. They, as the largest distributor of a consumer linux desktop, have the most to lose or gain from the awesome 3.0 plans.

The part of the interview that struck me directly was Mark’s opinion on what is missing from our proposals:

Well initially there was a lot of discussions about something that was much less visual which is how files are organized and I even blogged about it. I think actually that could be a bigger  improvement in the every-day user experience of the GNOME desktop”

I don’t know about Mark, but I was surrounded by people who are desperate to solve this type of problem at GCDS. Rob Taylor & Philip Van Hoof were both present and really pushing tracker as a a usable, fast data-store for desktop metadata. I attended Thursdays ontology BoF with the two of them. Mark is right, this is generally an unsexy problem. People who missed the ‘Nature of e-mail containers’ conversation on Thursday afternoon avoided the GCDS nadir of boredom.

The real problems of how we present this to our users is still to come, and its much more difficult than providing a fast data-store or getting consensus on what the meta-data should look like. Still, its the sexy, exciting part where we should be able to get everyone involved. Mark may be surprised by how many at Codethink and elsewhere in the community are working on replacing the awful file-system metaphor for data organization. Obviously we haven’t done enough to get his attention yet, but that could change soon. (Small secret) Codethink should be putting resources into a demo app over the coming months for the purpose of showing off some cool new technologies, including the new Tracker. Wait for a blog post from Rob Taylor for the full details.

July 10th, 2009

I am not afraid of writing code

Accessibility 3.0

April 29th, 2009

Last week I attended a week-long meeting at the Sun offices in Dublin. The purpose of the trip was to hammer out issues with the D-Bus AT-SPI port, so that everyone can feel more confident about its readiness for Gnome 3.0.

What a great week we ended up having. I should first say thanks to all that attended, Willie Walker, Mike Gorse, Li Yuan, Ke Wang, Brad Taylor, and Rob Taylor. Sun, Novell & Codethink also need thanking. They paid for everyone to be there, some flying from China, with no foundation money involved. The Gnome community is extremely lucky to have Willie devoting his time to accessibility. I dread to think what Gnome a11y would be like without his organization and direction

Willie organized the event, I imagine more out of fear at what he found in the D-Bus AT-SPI code-base than anything else. All told I think everyone was pleasantly surprised. The project will take a-lot of work to get to the level of maturity required, but loads has already been done. What is required of us for Gnome 3.0 isn’t our of our reach.

We started the week with a very brief overview of the design for AT-SPI D-Bus. Only Mike and I had much experience with the project and we wanted to get everyone up to speed.  This very quickly turned into a Q&A session and we figured out what the main issues were on Monday afternoon. Tuesday was spent on the important task of checking the D-Bus protocol specification against both the code and the IDL spec. This bought up a number of bugs, issues and improvements. It was well worthwhile. Amazingly Wednesday & Thursday were spent hacking by everyone, which is a great feat considering that four of us had only peeked at the code previously. So much got done. Orca is now running with a fair degree of success and we can move on to performance issues and application-specific bugs. For a full run-down of the still-to-dos and what-got-dones take a look at the weeks wiki.

Dublin

Outside of work was great fun also. Dublin really is a beautiful city. Lots of green spaces nice buildings and extremely friendly people. The business park is pretty swanky also, and luckily the Oracle buildings are across the road from Sun. We went out to eat and drink in Temple bar, which apparently isn’t a bar. Wednesday involved a trip to the very very small Novell offices in Dublin. They are a way out of town, Brad and I were lucky to get there at all given the distinct lack of signs and road-names that have changed since Google scraped them. We met up with Alan McGovern, a Moonlight hacker, and along with a meal and a few drinks geeked the night away.  Alberto Ruiz took us all out for a nice meal on Thursday night. I forget where it was. You’ll have to ask him for the recommendation. Later we attended the Sun Pub Quiz. Luckily for me, our arrival was just as the Quiz part was ending. I’m not so good with the questions.

Me for 3.0

What am I doing for 3.0 I hear you ask? I’m sure you didn’t but I’m going to blurt it out anyway. I’ll be finding time any-where I can to work on D-Bus accessibility. Codethink has already dedicated lots of my time to the project, and there may be a little more in the future. The accessibility plan looks a little sketchy in the road-map, but I believe that with some hard work it can become a big success for the big release.

Me for 3.0

After ranting about my work I’d love to hear what everyone else us up-to. There must me more than a few semi-secret 3.0 charges taking place.

‘Do-ifying’ Gtk (and other applications)

February 3rd, 2009

Many thanks to racarr for posting about this earlier today.  I had seen posts on the ‘Do-ifying’ of GTK but they had passed me by. ‘Do-ifying’ applications is a fantastic idea. We shouldn’t limit ourselves to GTK apps though.

The bit that caught my interest was that racarr was thinking of exposing a UI heirarchy over D-Bus to allow Gnome Do to find key-bindings and make them available. I suggested that AT-SPI would be a better way to do this, as all key-bindings are already exposed. I come to no conclusions over whether A11y is the best way. I’m biased. :) It did get me thinking about how A11y technologies could be used to provide general application assistance with Gnome Do.

Context sensitive ‘Do’ commands

Orca, the gnome screen reader, uses a11y mainly by responding to ‘focus’ events which are emitted when input focus moves to a new widget. Gnome Do could use ‘focus’ events to provide context-sensitive commands. By knowing which application, and which part of an application the user is currently focused on it might be possible to provide a more tailored selection of commands.

Perhaps the choice of ‘Do’ commands for each application would depend on finding out what D-Bus interfaces it supports.

Application generated ‘Do’ commands

Obviously for application generated commands we need methods of exposing these to Gnome Do. My preference would be to do this via D-Bus, which again a11y could help with. All ATs (Assistive technologies) need to know when new accessible applications appear on the desktop. Towards this end, D-Bus AT-SPI has a daemon that acts as an application registry and informs ATs when new applications are added. This registry could be made more generic so that Gnome Do would listen for new applications and register their ‘Do’ commands when they are started.

I can’t describe the registration interface here. I don’t know Gnome Do. I’m imagining a list of actions with a command name and descriptions, but it could well be much much more complicated.

Key Bindings

As racarr suggests, it should be possible to inspect the applications UI hierarchy to find all the key bindings and present them and their descriptions to Gnome Do. GOK, the gnome on screen keyboard, already does something VERY similar to this by inspecting an application and presenting all the actions of the currently focused window in a simple manner. There may be other things we can infer from the UI hierarchy, but I wouldn’t want to get too ambitious here.

I’ve often thought that a11y technology was under utilized. As applications on our desktop are already merging together a little by providing and accessing more D-Bus services, a11y seems like it could be well placed to enable some really innovate interfaces for the general user. If this happens it could really help experiences for accessibility users too. More bugs fixed, more descriptions added to widgets with key-bindings. :)