How a Blind Person Programs
blog.freecodecamp.com
blog.freecodecamp.com
Becoming blind is one of my biggest fears and I consider programming to be one of my favourite activities on the planet, I'm happy that if the worst were to ever happen to me, I wouldn't be completely screwed. However I gotta wonder how well he's able to hold all his code in his head just off hearing it, whenever I program I often go back and read and re-read parts I've already written, I imagine having to hear it over just glancing over it would slow the whole process down a lot. I know he mentioned that he's gotten very good at mentally conceptualising his code which no doubt takes a lot of training but damn, a really large codebase would throw me for a tizz.
LISP's might make an interesting language of choice to due to the simplicity of their syntax and the ease of navigation through forms. Hmmmm.
It'd be really interesting to try out a technique like that with a lisp, I think.
How would you render (do (blah bler) (bip bop)) to make it different from (do (blah bler bip bop))? Emphasis?
(I also helped introduce him to stumpwm when he absolutely had to have a GUI to do some specific testing; he was shocked and pleased that such a thing existed)
So many questions ...
I can't for the life of me code in any Lisp-like language. Too much nesting, and whereas speech synthesis inserts pauses at commas and other punctuation marks, Lisp's lack of them makes it hard to parse a heavily-nested function call by ear. This is true to a lesser extent with Haskell and its emphasis on ., $ and other operators that change how a function call is structured.
As always, opinions expressed are my own, and shouldn't be taken as a statement of how collective blind people do X. I'm one of many, so please don't walk away from this thinking Lisps are hard for blind folks. They're tough for me, and above are my particular reasons why.
When I was younger and being taught how to get around a new area, I had a hell of a time trying to get my instructors to draw me a map. Not sure if I wasn't explaining myself well or if those instructors just decided to play stupid, but I had to fight to get even a simple drawn tactile map, and once I had one everything more or less clicked into place. Now that we have accessible touchscreens on just about every modern mainstream OS, I'd love a shared whiteboard app that could accessibly render UML diagrams or whatever else drawn on one tablet to a roomful of connected phones, laptops and tablets. You couldn't necessarily convey shapes and such exactly, but if you could position a shape meaningfully and add some sort of access hint metadata (I.e. "downward-pointing arrow") I could spatially explore a UI or system diagram and everyone else can have their pretty pictures.
I'm a programmer by profession, but at one stage there were no such jobs available, so I went back to teaching. Teaching office computer skills (typing, Microsoft Office, drawing apps, ...) to kids who were "*-challenged", i.e. blind, deaf, mentally impaired and disturbed, and others.
The most exhausting, and rewarding, job I've ever had.
Vincent (one of the blind guys) ran into trouble with Word. Can't remember what the problem was, but I solved it with a simple Word macro. His flabber was gasted - not only did he then grok the fact that all the programs had code behind them, but the code was all plain text, hence was often easier to comprehend in a screen reader than what he heard from most programs. Even text in Word can be a pain to hear when every font change is also announced.
Of course the text might be easier to hear, but the logic behind can also tougher to grasp. But Vincent loved it and wanted to learn, and I much preferred teaching VB than teaching Word, so we soon had a programming class going within the office skills class. Some found it interesting, but Vincent found it easy and got a City & Guilds 425 Application Programming cert from the course. Went on to get a job programming before I did.
So I'd say he got into it the same way as me - one day I sat down in front of a terminal and wrote some code, which eventually worked, and I was hooked!
It was just easier for me because the terminal was more accessible and no-one thought it was "obvious" that I wouldn't be able to use it.
Please keep sharing your experience with the community, I think your input can bring about more benefits to sighted developers than you may have realized.
Many ions ago, I volunteered for an organization called "Recordings for the Blind and Dyslexic" (now known as Learning Ally - http://www.learningally.org/). Groups of individuals (mostly retired professors and other students) would record textbooks for college students. It was all volunteer and donation based. It would typically take days to weeks from starting a book until the recording was ready.
I loved almost all of it. The one thing I didn't like was that we would read a book in shifts and you wouldn't always be working on the same book from shift to shift, so you might read scene three of a play one shift, then the next day read chapter seven of a calculus 2 textbook. Regardless, it was always interesting and we always knew that there were students benefiting from our effort. As an extremely nearsighted child, one of my fears growing up was that I would grow to be so nearsighted I would be functionally blind, so it was a little personal for me.
Since then, I've been in charge of 508 conformance on many different websights [1]. I have always appreciated the sensory-challenged sharing how they are, or are not, able to use websites. I never cease to be amazed at the human ability to adapt and overcome such challenges!
[1] Freudian slip that I noticed but decided was worth sharing ;-)
When I consider at expressions with infix notations, I visually scan then from left to right and right to left. Visually matching parenthesis is also important.
I get the impression that if one were to listen to an expression in one pass, reverse polish notation would be the most intelligible. What's your experience like here? Does it make a difference?
Postfix notation, or reverse polish notation places operators after the operands. So that same expression would read " x y z - * ". The idea is that you push x on a stack, then y, then z. Then comes the minus sign, you pop the top two elements, y and z, and push their difference on the stack. Finally you pop the two elements, x and y-z, and replace them with their product.
In reverse polish notation, you still need to remember something, the state of the stack, but there are no parenthesis. I get the impression it would easier to parse if listening to the expression, but I may be wrong.
So which parses most easily for you? x * (y-z), or x y z - * ?
- Thank you so much for sharing!
- You mention,
>Premier tools that coders use every day, like the IntelliJ editor, as well as all its offshoots (PHPStorm, WebStorm, PyCharm), are completely inaccessible, due simply to the fact that the developers of these programs have not adhered to the accessibility guidelines. They've failed to give screen readers textual labels or accessibility descriptions to work with. The same goes for applications like SourceTree, which is slowly getting better, but is still a pain to use.
Have you tried VIM, eMacs, Sublime or Brackets; if so, how would you rate them?
What is your experience with HN's interface? I know I frequently wish there were more visual indicators of new/unread responses, but I can at least scan the beginning of messages and skip ones that I've previously read; do you have a corresponding way to skip responses?
If you check out the HN page source you'll notice the HTML anchors for voting are essentially empty save for an empty HTML DIV element with it's background image set to the arrow icon. Needless to say, the way it's designed is dead wrong and highly problematic for systems like terminal text browsers.
(I'm the author of MBraille, now working on Vietnamese braille table for liblouis, so braille is in my mind...)
The speed of the screen reader Zersiax uses is unbelievable fast. I can't understand a single word:
If that rate were the norm, I'd be classified as hearing impaired. I can't identify a single word.
Florian @zersiax 2 hours ago
mate, could you comment on there that I created a channel on freenode called #zersiax if peeps have questions?
Florian @zersiax 2 hours ago
seems I posted too many comments on HN , its blocking me from sending more :) and I do want to reply o all these
https://twitter.com/zersiax/status/560810466789044224 https://twitter.com/zersiax/status/560810548263407617
---
There's something beautiful about a typo from a visually impaired person :)
But still, as I understand you somewhat have a grasp of what color actually is, it isn't just "some word other people use", is it?
But what of notion of visual beauty? Does it mean something to you, when somebody says that this picture, or woman, or sculpture is beautiful? Can you tell if sculpture is "beautiful" or not after touching it with your fingers? If so, would it be meaningful to discuss something like that with your seeing friends or you would be more likely addressing something completely different from what they do?
And a couple more questions, if you don't mind. Are you completely functional in well-known environment? For example, how hard cooking in your own kitchen is for you? And how much of a problem it is if somebody was working in the kitchen before you and left some items, like knife, in the wrong places? How hard it is to you to move in completely unfamiliar environment? Like, say, can you travel to some distant new location completely on your own, without a dog or another human? How long would it take to being accustomed to the new environment, like when being guests at somebody's place? Could you take a walk in the forest or a big park on your own? Would you feel insecure being there for the first time?
I'm sorry if I'm bothering you, it's just I really, really wanted to ask all these questions and more for quite a long time.
The questions you asked are answerable in this framework I guess, although even adding a new dimension is less than getting a full new sense.
I will try to use the HTML5 accessibility tags and attributes whenever I can from now on (I currently don't even know what is there about accessibility to be implemented).
apologies for the horrible pun
Another advantage of the ruby community's general commitment to produce a language that can be written in any old text editor. I think Java long past that point, you really need an effective IDE with certain features that it knows about Java to be effective in Java.
Making sure things are still doable with a plain text editor gives developers a lot more options (including for developing new editing environment improvements), instead of locking them in to certain IDEs. A lot more options for accessibility reasons or any reasons.
It's interesting that he's using Windows 8 and I'd have liked if he'd talked about that briefly. I'd always thought that Apple was way ahead of the other vendors on this accessibility, but perhaps with third-party software available on the desktop for screen reading that's not the case.
https://github.com/wcochran/accessiblesudoku
Apple usually has fantastic documentation, but we had to experiment a lot to figure out the accessibility API.
He has ambitions to do hardware hacking, but has been thwarted by difficulties with identifying parts (i.e. resistors are color-coded), among other things. I've been meaning to sit down with him sometime and work on something.
This sample is playing at 16 syllables per second and it already sounds like COMPLETE gibberish to me: https://rdouglasfields.files.wordpress.com/2010/12/speech16-...
(http://www.scientificamerican.com/article/why-can-some-blind...)
Makes you wonder who the "impaired" ones are.
I have a question on how you imagine/think. People with eye sigh often think with pictures. Even thinking about abstract things like programming. I often visualize how a data structure looks and how it interacts with other code. I have found it tremendous useful as I can replay/test such scenario in my head.
Do you have similar experience when you think? Do you construct mental picture (such as circle, a binary tree) in your head? What is it like?
It is a fascinating topic. I hope to have a chance to understand how brain really works in my lifetime.
Thank again!
http://bsdtalk.blogspot.co.at/2008/03/bsdtalk143-bsd-hobbies...
If this existed would there any good reason to be using a GUI at all (for a Visually Impaired Person)?
I had to download the audio example and lower the playback speed to a third of what it was before it started making sense! It is a reading of an earlier draft of the first bit of the post, btw, so there are several divergences which make it even harder to try to match text to speech.
We always joked he did our UI.
I always wondered what happened to that dude.
It's a shame that so many programs don't follow the accessibility guidelines, but it's just too damn easy to forget about the disabled if you aren't. But this article was an eye-opener for me (no pun intended).
(I'm not blind)
- A grid of electrodes on the tongue, activating with a pattern fed from a camera. After a while, blind experimental subjects reported actually seeing what the grid displayed.
- A belt of buzzers hooked to a compass. The buzzer closest to magnetic north was always active. After a couple months, subjects weren't really conscious of the buzzing, but got a really good mental map of their environment and their position in it. They could navigate unfamiliar environments much better than before...and then much worse, when the experiment ended.
There are also some well-known cases of blind people using echolocation pretty effectively, without any special hardware.
Don't have links handy, unfortunately.
[0]http://www.thisamericanlife.org/radio-archives/episode/544/b...
How does that work? A single neuron is a single neuron. My understanding is that the brain has lots of neurons and also they are assembled in certain "NN architectures" that are far more advanced than what we currently have. But I think that if you go the the single neuron level then they are pretty similar in terms of problem solving capabilities.
That's what I remember and I just took some neuroscience courses. There are multiple books out there attempting only to describe behaviour mathematically, let alone describing the underlying mechanisms, which is true "here be dragons" territory.
http://www.sciencedaily.com/releases/2011/03/110316104123.ht...
If someone can understand at that speed, listening to audiobooks must be a very quick activity...
It's the same difference between Sync (O_DIRECT) and Async disk writes.
I've heard people say that before but I still don't understand how to do it.
I found that it was easier to catch a few words from that file when I closed my eyes to shut out other distractions. I still couldn't understand much, but I could see how there would be a progression to build to that level.
[1] http://yuiblog.com/blog/2007/05/14/video-intro-to-screenread...
you have a bug there :)
also, why not use different sounds for ( [ { etc?
would a different beep for each instead of "left paren" make life easier?