I migliori aiuti di programmazione per un programmatore quadriplegico


125

Prima di saltare alle conclusioni, sì, questo è legato alla programmazione. Copre una situazione che rientra nel titolo di "Là, ma per la grazia di Dio, vai tu o io". Questo è un territorio nuovo di zecca per me, quindi sto chiedendo un aiuto serio qui.

Un giovane, Honza Ripa , in una città vicina ha fatto la classica cosa stupida due settimane dopo essersi diplomato al liceo - si è tuffato in acque poco profonde nel fiume russo e ha avuto una pausa C-4 / C-5 , a volte chiamato Nuoto Pausa piscina. Nel giro di pochi secondi è passato da un eccezionale giocatore di golf e lottatore a un quadriplegico. (Leggi la storia ... tutti noi avremmo dovuto essere così fortunati da avere una ragazza come Brianna.) È successo 10 mesi fa e ha riacquistato solo una piccola quantità di controllo dell'indice destro e un paio di altre mani / movimenti del piede, nessuno dei quali a grana fine.

Il suo controllo totale del suo computer (attualmente in esecuzione Win7, ma possiamo cambiarlo secondo necessità) è tramite comando vocale. Honza non è stupida. Aveva un GPA 3.7 con matematica e fisica AP.

I problemi:

  1. Poiché tutto il suo input è tramite comando vocale, è preoccupato che la predominanza di caratteri speciali nella programmazione richieda una grande quantità di comandi dettagliati. Qualcuno sa di qualche sistema di input vocale ben progettato specificamente progettato per i programmatori? Sto pensando a qualcosa che potrebbe essere modale - ad esempio, dici "input Python" e entra in una modalità macro per fare definizioni di classe, ecc. Data tutta la RSI nella terra dei programmatori, ci deve essere qualcosa là fuori. Su quale sistema operativo funziona?

  2. Sto pensando di insegnargli Python, che è la mia lingua preferita per la programmazione e l'insegnamento. Ci sono domande / domande scritte in Python e sarebbero particolarmente adatte per coinvolgerlo mentalmente mentre supportava la sua disabilità? Uno dei suoi interessi espressi è l'investimento in azioni, ma questo non potrebbe essere un buon punto di partenza per un programmatore nuovo di zecca.

  3. Esistono molti ambienti (Flash, JavaScript, ecc.) Che non sono particolarmente adatti alle persone con problemi di accessibilità. Ricordo vagamente (ma non riesco a trovare) un progetto di ricerca che fondamentalmente ha creato un sistema di sovrapposizione in cima a un ambiente dello schermo e quindi ha permesso la costruzione di comandi macro in cima all'immagine dello schermo. Se riusciamo a ottenere / addestrare questo sistema, potremmo essere in grado di rimuovere molti ostacoli all'uso della rete.

  4. Sono particolarmente interessato a trovare progetti di robotica e protesi robotica basati su Python open source in modo che possa apprendere simultaneamente concetti di programmazione avanzata mentre impara a risolvere alcuni dei suoi problemi immediati.

Ho fatto un sacco di ricerche su questo, ma so che ci sono cose che mi mancano. Sto chiedendo alla comunità SO di fare un passo avanti nel piatto qui. Io so questo gruppo ha le risposte, per cui vorrei li sento! Mi travolgono con le opportunità che ognuno di noi potrebbe avere / avere bisogno di programmare ancora dopo un evento che cambia la vita.

Aggiornamento: ho appena registrato computingforquads.org e creerò pagine per tutti i tipi di soluzioni a tutti i tipi di problemi. Grazie per il tuo aiuto finora e fai in modo che arrivino quelle risposte!


4
Forse i bravi ragazzi di superuser.com hanno una buona conoscenza dei software di accessibilità. Non posso dire per più strumenti relativi alla programmazione, però. Scusa se non posso aiutarti.
zneak,

3
Hmm, suggerirei piuttosto di usare un linguaggio di compilazione personalizzato piuttosto che provare a costruire qualcosa che funzionerà perfettamente per Honza. Esistono lingue come COBOL che sono realmente basate su parole chiave e "leggibili dall'uomo" (e possono essere pronunciate). Come per la robotica, perché non iniziare con LEGO? IMHO un po 'di linguaggio con le tartarughe (robot - qualcosa che si muove attraverso lo schermo e può tracciare linee) e una semplice sintassi può essere abbastanza buona. Ho delle difficoltà a programmare me stesso e capisco che essere "diverso" non è molto, ma in questo caso mi sembra ragionevole.
Gabriel Ščerbák,

7
Abbiamo già discusso della programmazione vocale (in pratica è ancora approssimativo, sperimentale e ampiamente non supportato). Vedere stackoverflow.com/questions/1408874/… e stackoverflow.com/questions/87999/… .
dmckee --- ex gattino moderatore,

4
Purtroppo non ho una buona risposta per gran parte di questo. Noto nell'articolo, tuttavia, che il movimento dell'indice è sufficiente per poter controllare il piccolo joystick sulla sua sedia a rotelle. Potresti voler cercare un piccolo mouse USB in stile joystick. Ne ho visti alcuni là fuori prima. Sebbene non sia particolarmente economico (un articolo di volume troppo basso), può rivelarsi utile come dispositivo di input aggiuntivo.
Nicholas Knight,

2
@RCIX: capisco e apprezzo il tuo entusiasmo. Incomprensioni online come questa risalgono almeno alle note PLATO IV del 1973, dove abbiamo appreso che la digitazione non trasmette un linguaggio del corpo e un tono di voce importanti. C'era una FlameWar nel 1974 (nata da un malinteso) che era la base per quella che probabilmente era la prima tesi del Master sull'interazione interpersonale in un ambiente sociale basato su computer. 2 e 3 giugno ci sarà una conferenza PLATO @ 50 al Computer History Museum a Mt. Visualizza, CA. Ci saranno un sacco di greybeards che zoppicano in giro. :-)
Peter Rowell,

Risposte:


92

Ho degli infortuni sportivi e non posso scrivere più di pochi personaggi senza un forte dolore.

Invece, uso emacs insieme a Dragon NaturallySpeaking. Ho scritto macro e script per aiutarlo a cavarmela. Il sistema non è perfetto, ma funziona. Programma principalmente in C ++, ma utilizzo anche Python.

Se vuoi, ti aiuterò in questo. Devo avvisarti, ci vogliono alcuni mesi per abituarsi a parlare al software di testo e addestrarlo. inoltre, non sono di madrelingua inglese, sono sicuro che si frapporrà

Non disperare, ci sono soluzioni.

qui un link a emacs e file Dragon (purtroppo non sono ancora documentati)

http://code.google.com/p/asadchev/source/browse/#svn/trunk/home/Dragon

http://code.google.com/p/asadchev/source/browse/#svn/trunk/emacs/elisp

inoltre, se hai bisogno di ulteriori informazioni, il mio numero è 515 230 9363 (Stati Uniti, Iowa). Sarò felice di aiutarti se posso


1
Si prega di non lasciare che questo sia verificato poiché la "risposta" ti impedisce di pubblicare più possibilità. Aggiungerò anche che (gasp) sono stato un ragazzo vi (e ora vim) dal 1980, quindi dovrò creare un "set di macro vi" per completare il lavoro che Andre ha già fatto, e probabilmente anche un set Notepad ++ o un set Aptana (Eclipse + PyDev).
Peter Rowell,

Caspita, non lo sapevo fino a quando non ho letto il tuo post. Tutti i tuoi post che ho visto finora non lo mostrano ... almeno so che Dragon NaturallySpeaking funziona bene per te.
Xavier Ho,

19

Vale la pena dare un'occhiata al progetto Dasher , che consente di inserire il testo ragionevolmente rapidamente anche per i disabili gravi. Dasher è basato su un modello probabilistico di lingue, in modo che le espressioni più probabili siano più facili da inserire nel sistema. Il sistema dimostrativo viene fornito con una raccolta abbastanza impressionante di lingue naturali. Dovrebbe essere facile ottenere un ampio corpus di programmi scritti in Python, caricare Dasher con il corpus e creare una versione speciale per accedere ai programmi Python.


Suggerimento eccellente! Sono una vecchia rete neurale degli anni '80 e questo suono è molto promettente.
Peter Rowell,

8

Questo non fa parte di alcun software professionale, ma quando l'ho visto, ho pensato che sarebbe stato utile per l'inserimento di testo utilizzando il monitoraggio del movimento degli occhi o il movimento minimo del mouse. Vedi la pagina Elaborazione di Ken Perlin e guarda le applet per "input penna".


Grazie! Ottimo collegamento! Questo può essere particolarmente utile con il controllo del cursore, che credo sia ancora un po 'una sfida per lui. Solo quando devi davvero affrontare questo tipo di problemi, inizi a capire che alcune di queste persone stanno scalando il monte. Everest ogni singolo giorno solo per fare ciò di cui non pensiamo nulla.
Peter Rowell,

5

Conosco qualcuno in un villaggio in India che è un paraplegico, che usa il software Dragon Speech to Text per scrivere sul suo computer. Non so quanto sia adatto per un programmatore (non è un programmatore), ma è un inizio.

Potresti anche voler esaminare Natural Point . È un topo controllato dagli occhi, che potrebbe aiutare Honza

Spero che questo ti aiuti


Honza sta attualmente usando Dragon abbastanza bene. Ci siamo concentrati in particolare sul modo dettagliato in cui si inseriscono i caratteri speciali che si trovano ovunque nella programmazione.
Peter Rowell,

3

iPython con completamento

Sul lato Python, iPython mostra parametri, funzioni, ecc. E ha il completamento del comando. Forse potrebbe anche essere personalizzato per rispondere anche ai vari dispositivi di input?

http://ipython.scipy.org/moin/



1

So che questa domanda è piuttosto vecchia ora. Mi chiedo come andranno le cose per Honza rispetto alla programmazione. Sarebbe bello risentirti.

Per quello che vale, soffro di RSI e ora provo a ridurre al minimo l'uso della tastiera e soprattutto del mouse.

La mia esperienza di riconoscimento vocale è che questa roba FUNZIONA. Uso il software di riconoscimento vocale integrato di Windows per Windows 7 (WSR). Ho anche usato il dito vocale (http://voicefinger.cozendey.com/) per aiutare a spostare il puntatore del mouse. Alcuni punti chiave che vorrei menzionare sono:

Scopri le scorciatoie. Puoi fare quasi tutto usando le scorciatoie e parlarle funziona alla grande usando il riconoscimento vocale quando sei in "modalità di digitazione" (vedi sotto).

Usa la modalità di digitazione. A meno che tu non stia dettando testo, questo è ottimo per pronunciare scorciatoie al computer o per scrivere parole strane. È interessante notare che non è una funzione chiaramente "pubblicizzata" di WSR.

Alfabeto fonetico. Per fare buon uso della modalità di digitazione apprendi l'alfabeto fonetico: http://en.wikipedia.org/wiki/NATO_phonetic_alphabet Non puoi realisticamente cavartela senza questo quando usi qualsiasi forma di riconoscimento vocale.

VIM. (o emacs credo - non ne sono sicuro). Vim è un ottimo strumento per modificare il testo senza mai toccare il mouse. Questo lo rende ideale per la modifica di testi tramite WSR. Sono solo un principiante VIM, ma lo trovo incredibilmente utile.

Navigare su Internet. Nella mia esperienza, la navigazione web è ancora estremamente difficile da fare senza un mouse. Esistono semplicemente troppe situazioni che richiedono di passare con il mouse per accedere ai comandi sottostanti. È un vero peccato. Tuttavia ci sono alcuni plugin di Firefox davvero buoni per aiutarti a navigare senza mouse.

  1. Navigazione senza mouse: https://addons.mozilla.org/en-us/firefox/addon/mouseless-browsing/ Questo è un piccolo strumento pulito con molte opzioni di configurazione per mettere i numeri accanto a tutti i collegamenti. È quindi possibile digitare questi numeri per attivare il collegamento
  2. Vimperator: http://vimperator.org/ Questo va ben oltre la navigazione senza mouse. Fondamentalmente ti dà il controllo completo di Firefox come Firefox. Trovo che funzioni meglio della navigazione senza mouse, ma può essere fastidioso nei casi in cui cambia il comportamento predefinito di Firefox.

Queste sono solo le mie esperienze personali. Sarebbe bello sapere come sta andando Honza.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.