NVDA Hack Fest November 2008

I joined Mick in Melbourne on Sunday, 9 November for the third NVDA hack fest. Discussion during the hack fest included significant changes and additions to the design of NVDA, organisation of the source code, optimisation of the braille support, project management and policy, and solutions to some long-standing problems. See NVDAHackFestNov2008 for detailed technical notes on the major topics of discussion.

Aside from discussion, we did quite a bit of coding as we had hoped. The first item we tackled not long after I arrived was a rather long standing task that we've been putting off for months: the storage of voices and variants in the configuration file as unique identifiers instead of indices. This makes voice settings more reliable across systems and configuration changes. We had already begun work on this several days before, but there was still some work to be completed. We were very excited and relieved when we were finally able to merge the changes and declare this ticket fixed late on Sunday evening. (Amusingly enough, despite our excitement, we forgot to close the ticket until after the hack fest.)

Our next major undertaking was some changes to improve NVDA under Windows Vista. In earlier versions of Windows, it was tedious at best to run specific applications or tasks with administrative privileges, and therefore, it was common practice for some users (particularly home users) to simply always run with administrative privileges. Many applications, including NVDA, expect to be able to write to protected areas of the system, such as the Program Files directory. This is obviously a huge security hole. This is no longer the case in Windows Vista, which prefers that applications specify what privileges they require by way of an associated manifest. Applications which do not provide this information are run in a compatibility mode, wherein data written to protected locations is redirected to a "virtual store" writeable by the user. This is not ideal and can cause problems. We updated NVDA to provide a manifest, which means that NVDA now runs without this compatibility hack. This additionally required that we change NVDA to store all configuration data in the user's Application Data directory for installed copies. This also benefits Windows XP users, allowing individual users to have their own configurations and to save their configurations without administrative privileges. Furthermore, it is the first small step towards supporting User Access Control in Windows Vista.

Another significant change we implemented (which won't be noticeable to users) is that the default appModule is no longer a separate level through which scripts and events pass. Rather, all other appModules inherit from the default appModule class. This makes for a much clearer, object oriented design, allowing scripts and events to be overridden or extended with ease. It also cuts down the number of levels through which scripts and events must pass.

There were also several other minor bug fixes and changes, including some for braille and the new SAPI 4 driver.

On Wednesday evening, Mick, Mat and I attended a mini-expo on adaptive technology for Vision Australia staff. The mini-expo was attended by 9 suppliers and between 35 and 40 Vision Australia staff. Mick and I came prepared to demonstrate NVDA, including the all new braille display support. Mick also had Ubuntu Linux and Orca installed for demonstrations. Unfortunately, it was far too loud for demonstrations with speech, so most of the evening was spent talking to the various staff that approached us. We learnt that some staff are already recommending NVDA to users who cannot afford commercial screen readers and some of these users are using NVDA with great success. Unfortunately, NVDA is still not officially recognised by Vision Australia, perhaps due to our inability to offer direct technical support. Nevertheless, we are hoping this will change in time.

I returned to Brisbane early on Friday afternoon. Overall, we were quite happy with our achievements during the week. As well as the immediate benefits, these hack fests always help to revitalise our working relationship. On a personal level, it was also great to catch up again. Mick and I talk a lot on both IRC and the phone, but there's nothing quite like a face to face meeting. :)

Comments

1. jajoehl -- 2008-11-23 17:09

Hello James, Mick and others. I just registered on here a few minutes ago so hopefully my comment will show up. But anyway, you guys are doing an awesome job! I installed NVDA on two computers at a part-time job and so far so good. NVDA is the only screen reader over there since I could not obtain the resources to purchase one of the commercial screen readers or have it purchased for me. I also use SA to Go but as you know that only works when an Internet connection is present. Here at home I have JAWS which I am most probably getting rid of entirely. I also use SA to Go here, and I have used NVDA in the past and I'm going to download the latest version. I like eSpeak a lot. Currently I can't afford a Braille display but I hope to change that in the not-so-distant future. All this open-source technology is fabulous! Best of luck to all of you in the future, and let's hope that more and more agencies begin to recognize NVDA and implement it as an option for their consumers.