[nvda-addons] Addon development resources in general - Re: Help Getting Started Properly

  • From: "Damien C. S. Pendleton" <damien@xxxxxxxxxxxxxxxxx>
  • To: <nvda-addons@xxxxxxxxxxxxx>
  • Date: Tue, 16 Dec 2014 17:59:26 -0000

Hi,
Jim, you are not the only person who was confused when starting to walk the tricky path of addon maintenance, whether documentation or coding. I would so much like to be able to develop my own addons to be able to share with the community and there are so many stumbling blocks that I couldn't help but feel like I had no choice but to leave it to the more experienced. As a background, I have done plenty of scripting, but little to no programming. I began to learn C and C++, but grew discouraged because of the amount of tools that were required to maintain everything properly, especially since I was struggling to learn certain low-level concepts that scripting always tends to do automatically in the background. My very first look at writing programs was in Visual Basic 6, and that is also a matter of opinion as to whether that is programming or scripting. When I started using NVDA and saw that certain programs were not as verbose as they were using other screenreaders that I had previously been accustomed to using, I went about researching how I might customise the screenreader to be able to read these sections. I thought that most other screenreaders have some form of scripting or customisation mechanism, so NVDA must have it too. I then discovered that NVDA was open-source, and thus I realised that there was no official bespoke scripting or customisation engine, that it had to be done, essentially, by customising the screen reader itself. The only real difference I saw to simply changing the NVDA source code to support the application was that NVDA deals with the addon packages, and even compiles the addon source code to a binary .pyo file if and when needed. In that light I began to read the reams and reams of documentation on Python from personal blogs, forums, online books and, indeed, Python itself to attempt to figure out where to go. I had been previously discouraged by Python because of its inability to natively compile into executable code, making it necessary for third party tools to be installed. However my reasoning was that if I were to make NVDA addons I would not need this functionality. A new problem then arose. I was now familiar with the Python syntax and language, but not the full extent of its internal functionality and capabilities. Furthermore, I then saw that, to be able to perform certain tasks even when coding, even more extensions and tools must be installed and plugged into Python. I therefore had no idea what to install and what not to install. I then took a look at the NVDA development guide (both the official and the new version currently hosted on Bitbucket) to be able to find out if there were any real life examples, to show you how certain things were done. However a lot of the time it referred to concepts which I was unaware of which then tried to lead me to the source code's documentation. I thus then had to learn how to download the code using Git, having never used an SCM repository in my life, and of course even to run the NVDA source code, the list of dependencies was absolutely staggering. Even then though, I could not manage to build the source code documentation on its own. Chances are I've probably missed one minuscule ingredient in the recipe. It therefore seems to me that the learning curve is literally a circular reference (no pun intended), without weeks, possibly months of heavy research into not only the language, but the extensive modules, extensions and packages that can be plugged into and built around Python, the workings of Git itself, and then downloading, building the source code documentation, or perhaps even reading the source code itself. After all this, my brain felt well and truly fried. I kind of feel that the community would benefit with a beginner's guide to addon development which, if I ever get to reach the end of the maze without getting stuck at the first hazard, I would be more than willing to compile.
Thoughts and opinions welcome.
Cheers.
Damien.



-----Original Message----- From: Jim
Sent: Tuesday, December 16, 2014 5:12 PM
To: nvda-addons
Subject: [nvda-addons] Help Getting Started Properly

Hi,
I'd like to help with add-on documentation, especially the add-on
guide. Where do I read about how to get started with the Git I need to
know, and the proper way to work with the team? I have Git installed,
and I was just trying to understand the bit bucket site, but not
understanding how that works.

Thanks.

Jim

--
e+r=o
Skype: jim.homme
----------------------------------------------------------------

NVDA add-ons Central: A list for discussing NVDA add-ons

To post a message, send an email to nvda-addons@xxxxxxxxxxxxx.

To unsubscribe, send an email with the subject line of "unsubscribe" (without quotes) to nvda-addons-request@xxxxxxxxxxxxx.

If you have questions for list moderators, please send a message to nvda-addons-moderators@xxxxxxxxxxxxx.

Community addons can be found here: http://addons.nvda-project.org
----------------------------------------------------------------

NVDA add-ons Central: A list for discussing NVDA add-ons

To post a message, send an email to nvda-addons@xxxxxxxxxxxxx.

To unsubscribe, send an email with the subject line of "unsubscribe" (without 
quotes) to nvda-addons-request@xxxxxxxxxxxxx.

If you have questions for list moderators, please send a message to 
nvda-addons-moderators@xxxxxxxxxxxxx.

Community addons can be found here: http://addons.nvda-project.org

Other related posts: