You are here

NVDA 2009.1 Portable (not completely portable) Development Test 1

2 posts / 0 new
Last post
computerfreaker
computerfreaker's picture
Offline
Last seen: 12 years 10 months ago
Developer
Joined: 2009-08-11 11:24
NVDA 2009.1 Portable (not completely portable) Development Test 1

Application: NVDA
Category: Accessibility
Description: Providing feedback via synthetic speech and Braille, NVDA allows blind and vision impaired people to access and interact with the Windows operating system and many third party applications.

Download NVDA Portable 2009.1 Development Test 1 [10.6MB download / 41.2MB installed]

(MD5: 3504f24bc371e510c378ddb870474ae2)

NVDA isn't completely portable: it leaves some files in the temporary storage directory. Although the files are deleted when the computer restarts, the fact that files remain means NVDA can never be an official PortableApps.com release. Unfortunately, nothing can be done about cleaning up the files before a computer restart, since forcing the files to delete could cause system instability.

Release Notes:

Development Test 1 (2010-02-12): Initial release

computerfreaker
computerfreaker's picture
Offline
Last seen: 12 years 10 months ago
Developer
Joined: 2009-08-11 11:24
Comments

I'm sure 99% of the people on here are going to wonder what the heck is going on with my "declaration of non-portability"; here's the two IRC logs from yesterday that explain it all.

Log of #nvda
Log of #portableapps

I was talking with the NVDA devs in #nvda; they proposed a solution for a pretty big problem, and I went into #portableapps to talk it over with Chris Morgan. Turns out the proposed solution was almost as bad as the problem, and an hour of frustration followed. The #nvda log is the main conversation; Chris and I used #portableapps as a private "aside" channel, almost like PM.

The problem is that NVDA injects two DLL's into various processes; the DLL's frequently can't be unhooked, especially from Firefox: when I used SpyDLLRemover to break the DLL hook, Firefox crashed.
After a long, long conversation, we all finally reached a mutual understanding: there's no way on this Earth NVDA can unload the DLL's.
The proposed solution, copying NVDA to %TEMP% and running from there, doesn't solve the DLL unhooking problem; it only makes it easier to work with/around. A reboot is still required to break the hook and delete the troublesome DLL files, so NVDA is not PAF-compliant and, unfortunately, never can or will be.

John, I accept that this can never be an official release because of the %TEMP% problem. However, would it be OK if, after some testing (everything should be just fine, since the launcher just copies NVDA to %TEMP% and gives it one command-line parameter), I created a custom splash for NVDA? It wouldn't be official, true, and the splash would say so, but at least it's better than perpetually having an "Alpha or beta quality" splash.

Also, if somebody could look over the launcher code, I'd be grateful. I had to do yet another ugly hack to work around the DLL hook havoc (it's all documented in the code), but I can't get the time plugin working. I had to !include the time.nsh file instead, which is really ugly.

"The question I would like to know, is the Ultimate Question of Life, the Universe and Everything. All we know about it is that the Answer is Forty-two, which is a little aggravating."

Log in or register to post comments