Wednesday Sep 19, 2007

Orca Regression Testing

The Orca team is busy doing regression testing at the moment. The Orca wiki pages give extensive details on how this works.

We are using a tool called Macaroon written by Eitan Isaacson (of Accerciser fame). It's an unfortunate name (I keep thinking of one of the lyrics from an old Benny Hill song), but it's got the potential to be a great tool.

Macaroon allows you to record a test, then play it back. Eitan has recently written up some package documentation for it. For more details on how we are using it, see the regression testing wiki pages.

There is an Orca script that allows you to perform just a single Orca regression test.

There is also a script, that will runs all the tests that we've currently generated.

We have a testing harness that compares the current Orca debug output for braille and speech for each test, then makes sure that it was the same as a previous ("golden standard") version. This allows us to easily determine when a bug fix or a new enhancement has broken something else.

Here's what the output of a macaroon generated test script looks like. We've hand edited the comments in, so that if somebody wants to run the test "by hand", all the information is there.

Yes, we have looked at Dogtail and LDTP, but found that Macaroon best met our needs.




Friday Aug 03, 2007

Orca Experiences with the Project Gutenberg 2006 DVD

Earlier this week, I downloaded a copy of the July 2006 DVD ISO via Bittorrent from Project Gutenberg and burnt myself a copy.

This single DVD has over 17,000 books on it, from their first 19,000 titles. I was curious to see just how easy this was to use, not only for myself but for a blind user.

If I pop the DVD into the DVD player on a Windows Xp box, it will automatically bring up my Firefox browser pointing at the "index.htm" file on the DVD. From there, I can follow the numerous links and find either the title or the author I'm looking for, then double click on the book link, uncompress the zip file and bring up the book as a text document. I can then just scroll or page down to read the book.

Unfortunately, this same auto-start functionality in not quite present on my Ubuntu machine. If I insert the DVD into my DVD player there, Nautilus brings up a new window displaying the contents of the top-level directory on that DVD. I can then double click on the "index.htm" icon, which opens up a new tab in my browser and so on. Not too different but still a couple manual steps required.

For a blind user, it's not much harder. They would need to use the keyboard instead of the mouse, but nowadays on the GNOME desktop, most Gtk+ applications and the Firefox browser (v3.0 alpha) have good keyboard navigation and accessibility support. When they have the book of their choice in a text editor (gedit by default), then they can use Orca to listen to it. Pressing the + key on the numeric keypad (there is an equivalent for laptop users) does a "say all". It will keep presenting (speech and braille) each line in the document until you tell it to stop (with the Esc key). If you hit the + key again, it will carry on from where you previously stopped.

I did notice that you had to set the punctuation level to None (via the Orca Preferences dialog), otherwise it spoke some, most or all the punctuation as well. The other thing that was disconcerting to me, but wouldn't bother a blind user at all, was that the visible contents in the gedit window was not scrolled to show the current line that was being spoken.

Overall I was very impressed with how well this experiment went.

Now if you have those 17,000 books in your new eBook library and you don't know which one to read first, may I recommend "Nonsense Novels" by Stephen Leacock.




Wednesday Aug 01, 2007

New Icons For Orca

Thanks to Steven Brandt and the Tango Desktop Project, there are new icons for Orca in the 2.19.6 release. These are slightly less anthropomorphic then the last ones.




Monday May 07, 2007

Good Will Hacking

You've probably heard somebody say one or more of the following:

  • It's Java. You just write it once and it'll run everywhere.

  • I'm from marketing and I'm here to help you.

  • Of course I'll respect you in the morning.

  • Accessibility on the GNOME desktop is built-in, so it just works!

Now, for each of those statements, there is a large subset of conditions where the statement is correct, but there are always cases where it isn't.

In the GNOME accessibility world, we met one of those last week.

It started out with a simple post from Mario Lang to the Orca mailing list, stating that he couldn't get the GNOME Weather applet to directly cough up the current weather without using Control+d to bring up the Details dialog.

Will Walker, the Orca team lead replied with a few lines of Python that you can add to your file that will now automatically speak the current weather when you type Insert+w. (Note you'll also need to apt-get install the weather-util package, to make this work).

This is what I really like about Orca. It's a hacker's playground. It's relatively straight forward to add it new functionality like this, with just a simple hack.

Since then, Joanie has been investigating the real problem with the GNOME Weather applet not speaking, and has checked in a solution that will appear in the next Orca tarball for GNOME 2.19.2 in just over a weeks time. Certain Orca users will also check out this very latest development version right away.

So, you have a choice. If you don't want to chance the very latest development release, you can wait a week or two and use the Orca v2.19.2 tarball or you can use Will's simple workaround. You can even wait for your favorite O/S distribution to include GNOME 2.19.2, but that will take a few weeks longer.

Compare this open-source approach to trying to get a similar problem fixed in a commercial proprietary software package.




Tuesday Apr 03, 2007

Orca Linux Screen Reader

Here's an experiment in Google page ranking.

As you probably know, Orca is a Linux screen reader. Orca has been the default Linux screen reader with the GNOME desktop since GNOME v2.16. Orca also runs on Solaris and FreeBSD.

We have been putting together an Orca wiki which hopefully covers all aspects of screen reading on Linux. We welcome feedback on this. If there is anything that's unclear or incomplete, then please let us know.

Our goal here is to provide a single location for everything pertaining to the Orca Linux screen reader.




Tuesday Mar 27, 2007

The Dogs of CSUN

At CSUN last week, I took several pictures of some of the guide seeing eye dogs there. There must have been a couple hundred in total. Mostly well behaved. I didn't hear a single bark all week. Now if only our dog could be like that.

Here are a few notes to go with some of the images:

  • If you ever wondered what happened to Network, the Sun mascot from the 90's, I'm pleased to tell you he's alive and well and reincarnated as the best looking dog at CSUN this year. As seeing eye dogs go, he still "needs work" as he gave me his paw then promptly sat down on the feet of a co-worker.

  • I attended a talk given by Mike and Joanie, a couple of the Orca developers. At the front of the room was a dog with an itch. For quite a while, she was rolling around on her back, snorting away quite loudly and trying to scratch that elusive itch. How rude! I've seen our dog Dusti (a small Norwich "mix") doing this many times. Now I got to see (and hear) a large dog doing it.

  • The dog looking at the balloons was in the Freedom Scientific booth. There was a small breeze that was causing the balloons to move around. This dog couldn't take his eyes of them.

  • The small dog is a Hearing Alert dog. The owner has hearing problems. If somebody comes to the door, then the dog will alert the owner by "tapping" her on the leg. The owner tried to get her to do this for me, but the dog was too distracted. With Dusti, we have the aural equivalent of this. She'll keep barking until one of us answers the door.




Monday Mar 26, 2007

Back From CSUN 2007

Just like in 2003, I've arrived back in the Bay Area from CSUN with a bad cold. It seems to just hit me the moment I relax.

I travelled down to the Marriot at Los Angeles airport last Tuesday. Five 1/2 hours but fairly uneventful. One thing that was obvious was that there were a lot of new crops and fruit trees planted in the fields on either side of I5 in the Central Valley, to replace those destroyed by the frost in January.

Setup for the conference was trivial this year. All our booth boxes arrived early and we had the stands up by 1:04pm on Wednesday (we don't normally start until 1:00pm).

It was a good conference and exhibition. Several talks on Orca and Open Source in general. I've included two small photo sets. One hosted on flickr and taken with my new Finepix camera and the other taken with my cell phone camera.

Here are a few notes to go with them.

  • Two shots of the main CSUN exhition halls. Seeing eye dogs everywhere. More on that later in the week.

  • Half of the Sun booth (off in one of the separate conference rooms so that's it's a little more private). We got a lot of traffic over the four days of the exhibition, mainly showing off Orca.

  • The Firefox booth, just over the way from ours. They too had a lot of traffic.

  • The view from my bedroom window. Lovely isn't it? Lot's of potential Project Blackbox containers here.

  • A One Laptop Per Child that I got to play with a bit. I failed the "how does this open?" test. I'm obviously not as smart as the intended audience. Or that part needs to be redesigned. Or there will be a lot of recipients asking "how does this open?"

  • Sometimes, special consideration for people with disabilities also help the general public. For example, those wheelchair ramps built into the pavements sidewalks that are so useful for people with pushchairs and skateboards. Here's another example. This digital cube timer. I'll probably be ordering one of those for our family.

  • And finally the product that most impressed me at the show. It's an Interactive Learning Station from Infocor (though I couldn't find this model on their website). A standard overhead projector focuses the computer screen down onto a 48" interactive board for people with gross motor skills. Wheelchairs can just slot right in underneath. There is already an extensive interactive curriculum developed for this product that you can just download and use that.

I traveled back on Saturday in 5 1/4 hours. It helps if you leave at about 6:20am. There's not much traffic on the road at that time. My manager mentioned that earlier in the week, as he drove up one evening to see his son at one of the universities in L.A., he was at a virtual standstill in traffic behind this brand new Ferrari. Hundreds of thousands of dollars of exotic sports car, toodling along at about 5mph, with nowhere to go quickly. Well I can beat that. Just outside Gilroy on the way back, I past 28 Ferrari's of different vintage going the other way. It must have been a local meeting of the Ferrari car owners club. And virtually all of them were red.





Tuesday Mar 13, 2007

Orca v2.18.0 Released

Will released Orca version 2.18.0 yesterday. This is a stable release for GNOME 2.18, which the GNOME community will release in the next few days.

Orca has come a long way in the last year. That was when we outted it and went public at the CSUN conference in Los Angeles. It was then added as the default screen reader to the GNOME desktop in the 2.16 release, about six months ago.

The announcement and release notes show what we've been concentrating on for GNOME 2.18.

What that doesn't really show is the user and developer community that has built up around Orca. There is a very active mailing list. One of the great things to see is that newbie questions are being answered by Orca users who were newbies themselves 6-9 months ago. We are getting lots of good feedback on not only accessibility problems found when using Orca, but also suggestions on how we can improve the product.

Which brings me nicely onto the way we are using Bugzilla with Orca. Will has written a nice page in the Orca wiki on this.

As of this writing, there are 156 "bugs" filed against Orca. 55 of those are what we call "tracking" bugs. The actual bug is for another component or application and maybe even in a different bug tracking system. We just keep a tracking bug against Orca so that users can have one stop shopping when they are looking for bugs that affect Orca. The downside of this is that it confuses automated scripts that do bug totalling and doesn't accurately reflect reality. We've learnt to live with that.

We also are very open about our future plans for Orca. We keep a spreadsheet as part of the Orca source code distribution. A lot of the tasks in that spreadsheet also have a matching Bugzilla entry.

And finally I'd like to congratulate Joanie Diggs, who over the last year, has gone from being an Orca community member, to an Orca developer, to being one of the five core Orca maintainers. Amongst many other things, Joanie authored the new Find functionality in Orca v2.18.0 and has been actively stomping on Firefox accessibility bugs in the last few weeks. Thankyou!

There aren't many female GNOME developers, but as Joanie points out, there is one advantage. You don't have to wait in line to use the restrooms at GUADEC.




Tuesday Feb 13, 2007

Orca Python Call Graph

Yesterday I saw a link on to pycallgraph, a Python library that will generate call graphs and thought that I'd give it a try with Orca

I had to wait until today to download it, as being popular knocked out their server. I also had to install Graphviz, a prerequisite. That was easy. Just a few clicks away via the Synaptic Package manager on my Ubuntu system.

Integrating the pycallgraph code into Orca was trivial. Two lines near the start of the application:

import pycallgraph

and then two lines just before it terminates:


Creating the call graph counts is very CPU and memory intensive, so I then had to make a couple other adjustments to the Orca code, to convince it that it hadn't commited suicide:

  • turn off the watchdog process than pings Orca to see if it was still alive.

  • turn off the timeout callback with Orca, so that it wouldn't think it was hung.

If anybody else is interested, here's the full set of diffs I had to make to Orca.

As Orca was pretty much unusable whilst these statistics were being instrumented, I just started up Orca and once it had fully started, I then just terminated it.

That generated a 16188 x 4187 PNG Orca call graph image, which is quite awkward to view.

Although it's interesting and quite clever (and probably very helpful with small, simple Python applications), I think in order to be useful with Orca, the call graph data needs to be in a different format. Maybe just plain old ASCII table entry. Bonus points if it can do a function tree hierarchical view usage in ASCII too. I also wonder whether this is something that an appropriate set of DTrace probes would solve, so much more simply.

Any good simple alternative Python call graph packages out there?







« June 2016