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

  • From: "Joseph Lee" <joseph.lee22590@xxxxxxxxx>
  • To: <nvda-addons@xxxxxxxxxxxxx>
  • Date: Tue, 16 Dec 2014 11:44:57 -0800

Hi Damien and others,
You've raised a very important point: for some time, I've been thinking
about how to make the add-on development process easier for new developers
and to make it so that developers can teach the add-on process to the next
generation of developers. Some of the ideas were:
* Produce a tutorial series just on add-ons: we have people who are willing
to produce user tutorials for NvDA, so I can now concentrate on development
side of things. Similar to JAWS scripting tutorial, I thought about
producing a set of audio or text tutorials on creating add-ons and
eventually moving onto beginnings of core development.
* Add-on development seminar during NvDACon: The next NVDACon is scheduled
for February or March 2015, and I thought this would be a good opportunity
to hold a day-long seminar on creating and maintaining add-ons. This will
allow people to ask questions, get some hands-on sessions with add-on
development and discuss next add-on proposals.
Other suggestions and feedback, especially for add-on development guide
(which I wrote) are highly appreciated.
Cheers,
joseph

-----Original Message-----
From: nvda-addons-bounce@xxxxxxxxxxxxx
[mailto:nvda-addons-bounce@xxxxxxxxxxxxx] On Behalf Of Damien C. S.
Pendleton
Sent: Tuesday, December 16, 2014 9:59 AM
To: nvda-addons@xxxxxxxxxxxxx
Subject: [nvda-addons] Addon development resources in general - Re: Help
Getting Started Properly

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

----------------------------------------------------------------

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: