Re: [orca-list] What I can do for orca



On 02/07/2010 12:44 PM, Willie Walker wrote:
Hi Michael:

Growing our virtual community of developers is always a goal, so welcome aboard! No need to wait for AT-SPI/D-Bus - the pyatspi interface will remain the same between the CORBA and D-Bus implementations.

OK, no excuse for me to delay. Initially I may start with the stable version of orca on my system so that I know it should work to an extent and be an example which should work. I would hope to move on to GIT code fairly quickly after may be writing a script or two or some fixes for stable code.

The fact that you can program and know Python and Linux gives you a huge leg up. For a general view of the accessibility infrastructure, you can read:

http://live.gnome.org/Accessibility/PythonPoweredAccessibility
http://www.linuxjournal.com/article/9991
http://library.gnome.org/devel/accessibility-devel-guide/nightly/

Thanks for those links, I have read the first, think I understand it. Looked a bit at gedit with accerciser. I hope that the number of nodes in a at-spi tree won't be too much of a problem. I guess orca mainly deals with nodes close to the focus and so doesn't need to deal with very long paths, is this right?

I'd also suggest writing simple Python applications that sniff accessibility traffic. Here's a trivial 5 line app I wrote the other day to debug something going awry with AT-SPI/D-Bus. It just listens for object:state-changed:showing events from the AT-SPI:

import pyatspi
def blah(event):
    print event
pyatspi.Registry.registerEventListener(blah,"object:state-changed:showing")
pyatspi.Registry.start()

Once you are familiar with the kinds of things applications give you via the AT-SPI, I'd suggest digging into Orca. The Orca internals docs at the following URL are a little dated, but give you the general idea:

http://git.gnome.org/browse/orca/plain/docs/doc-set/internals.pdf

Any chance of a HTML version, or will I need to rely on PDF conversion tools to get something I am more comfortable reading?

Note that we created a lot of Orca with minimal resources. My motto was "let the user experience drive the architecture, not the other way around." As a result, I veered away from the school of astronautical architecture (i.e., paralysis by analysis) and stayed closer to the school of practicality. In addition, when faced with some toolkit implementations that were perhaps a bit buggy or provided their own unique interpretation of the AT-SPI specification, we had to make things work regardless of the bad taste those toolkits left in our mouths (and unfortunately the code).

I guess an example might be java and non-alphanumeric keys. I suppose I need to view it as a user (shouldn't be too hard as I am a orca user) and make it that if I want to be perfectionist then make it perfectionist for the user rather than the technicality. I don't know if it is fair, but comparing orca to LSR, I never got on with LSR, I felt it didn't really try and focus on making the system usable for me, orca feels much more focused.

From there, dig into default.py and have a look around -- it is the big mainspring of the Orca clock. Turn debug on and take a look at the debug log. Note that we also try to use copious documentation in the code to help us remember why we did what we did (versus just telling you what the code is doing); eschew obfuscation. :-)

Thanks, I will start looking at this.

Note that working on Orca also can mean working on *everything*. You may need to become expert in someone else's code outside Orca in order to debug problems since bugs often lie in the applications and toolkits. So, you need to keep a sense of humor and steer clear of that sense of despair to the best of your abilities.

I guess what I was getting at saying I want to focus on orca is to do with my skills, not knowing C will limit my ability to try and dig into other code (eg. gecko) to find and fix bugs. Yes I am prepared to help resolve issues lying else where, its just I don't know how much I could do.

Michael Whapples

Will

On Feb 6, 2010, at 4:18 PM, Michael Whapples wrote:

Hello,
After all that has been said recently and after considering what even I have said about ensuring the future of orca, I felt its time to roll up my sleeves and use the skills I have for some good.

Before I begin I feel it probably is best to be open on what my situation is so that either I don't say I can do more than I can or so that others don't get the impression I will be a knight in shining armour and expect too much from me.

All effort I will be putting into orca will be purely voluntary although I should be able to commit a reasonable amount of time to orca at the present moment (possibly enough to be considered full-time) as I am not in employment. This does lead to some of the reasons why I am wanting to help orca. There are the personal reasons, I find Linux/unix a good system to use and that it probably is the correct operating system for me and it would be a sad loss if orca were to drop into a unmaintained state. Other than the personal reasons, I do have possibly slightly more greedy reasons, I am looking for employment in software development and it has been suggested to me (I agree as well) that it may be worth me working on opensource projects in the meantime as generally employers say I lack experience for them to see what I have achieved in the past. Regardless of if the second set of reasons achieve what they intend to, personal reasons is enough to motivate me on this, the second set is more to warn that at some point I may end up having to lower (I don't intend to abandon orca, its just my free time might be less) my input should employment be found.

Now to my skills and what I could do for orca. I am a python programmer (I suppose a good start), and have been using Linux for some time. I would say I have a reasonable knowledge on common issues of the accessibility infrastructure of gnome (enough to work out what might be causing the problem), but I don't know a great deal with the internals of this stuff (I guess I am saying I am not willing to step into other parts of gnome accessibility at the moment, orca is probably enough to start with). Some things I am thinking of which I know about which may be useful for orca development, brltty (I think some time ago I did write a small application for myself which used brltty python bindings), liblouis and its python bindings, speech-dispatcher and python bindings, gobject (may be not used directly but I guess many components orca uses are based on gobject) and cython (a fork of pyrex for creating extensions for python in C).

OK, looking at that lot of skills, yes probably really time to get on and do something. May be I could ask those knowledgeable in orca's code (probably Joanie and Will) where should I start on learning about developing orca? May be a start of a very general overview (what is the very heart of orca, how much is done by scripts, etc). Also when learning about scripts, which ones may be simpler to start with to learn about scripting and then once I am knowledgeable I can tackle the others. Probably once I get going with reading orca's code I will get to understand about using at-spi, but is there any good documentation for getting started with developing at-spi applications? The final question at the moment, should I really wait until the at-spi-dbus stuff is done or get going now? I mean by that, how big are the changes between orca in 2.28.x and after the dbus work?

Michael Whapples
_______________________________________________
Orca-list mailing list
Orca-list gnome org
http://mail.gnome.org/mailman/listinfo/orca-list
Visit http://live.gnome.org/Orca for more information on Orca.
The manual is at http://library.gnome.org/users/gnome-access-guide/nightly/ats-2.html
The FAQ is at http://live.gnome.org/Orca/FrequentlyAskedQuestions
Netiquette Guidelines are at http://live.gnome.org/Orca/FrequentlyAskedQuestions/NetiquetteGuidelines
Log bugs and feature requests at http://bugzilla.gnome.org





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]