Meilleures aides à la programmation pour un programmeur quadriplégique

125

Avant de sauter aux conclusions, oui, c'est lié à la programmation. Il couvre une situation qui relève de la rubrique «Là, mais pour la grâce de Dieu, allez vous ou moi». C'est un tout nouveau territoire pour moi, donc je demande une aide sérieuse ici.

Un jeune homme, Honza Ripa , dans une ville voisine a fait le classique Dumb Thing deux semaines après avoir obtenu son diplôme de lycée - il a plongé dans les eaux peu profondes de la rivière russe et a fait une pause C-4 / C-5 , parfois appelée natation. Pause piscine. En quelques secondes, il est passé de golfeur et lutteur exceptionnel à tétraplégique. (Lisez l'histoire ... nous aurions tous dû avoir la chance d'avoir une petite amie comme Brianna.) C'était il y a 10 mois et il n'a repris que de petites quantités de contrôle de son index droit et de quelques autres mains / mouvements du pied, aucun d'eux à grain fin

Son contrôle total de son ordinateur (exécutant actuellement Win7, mais nous pouvons changer cela si nécessaire) se fait par commande vocale. Honza n'est pas stupide. Il avait un 3,7 GPA avec AP mathématiques et physique.

Les problèmes:

  1. Puisque toutes ses entrées se font par commande vocale, il craint que la prédominance des caractères spéciaux dans la programmation ne nécessite une grande quantité de commandes verbeuses. Quelqu'un connaît-il un système de saisie vocale bien conçu spécialement conçu pour les programmeurs? Je pense à quelque chose qui pourrait être modal - par exemple, vous dites "entrée Python" et il passe en mode macro pour faire des définitions de classe, etc. Étant donné tout le RSI dans le pays des programmeurs, il doit y avoir quelque chose là-bas. Sur quel (s) OS fonctionne-t-il?

  2. Je prévois de lui apprendre Python, qui est mon langage préféré pour la programmation et l'enseignement. Existe-t-il des applications / autres qui sont écrits en Python et qui seraient particulièrement adaptés pour l'impliquer mentalement tout en soutenant son handicap? L'un de ses intérêts exprimés est l'investissement en actions, mais ce n'est peut-être pas un bon point de départ pour un tout nouveau programmeur.

  3. Il existe de nombreux environnements (Flash, JavaScript, etc.) qui ne sont pas particulièrement adaptés aux personnes ayant des problèmes d'accessibilité. Je me souviens vaguement (mais je ne trouve pas) un projet de recherche qui a essentiellement créé un système de superposition au-dessus d'un environnement d'écran et a ensuite permis la construction de commandes macro au-dessus de l'image de l'écran. Si nous pouvons obtenir / former ce système, nous pourrons peut-être supprimer de nombreux obstacles à l'utilisation du réseau.

  4. Je suis particulièrement intéressé par la recherche de projets de robotique et de prothèses robotiques basés sur Python open source afin qu'il puisse simultanément apprendre des concepts de programmation avancés tout en apprenant à résoudre certains de ses propres problèmes immédiats.

J'ai fait beaucoup de recherches sur Google à ce sujet, mais je sais qu'il me manque des choses. Je demande à la communauté SO d'intervenir ici. Je sais que ce groupe a les réponses, alors laissez-moi les entendre! Accablez- moi avec les opportunités que chacun de nous pourrait avoir / avoir besoin de continuer à programmer après un événement aussi important.

Mise à jour: Je viens de m'inscrire à computingforquads.org et je vais créer des pages pour toutes sortes de solutions à toutes sortes de problèmes. Merci pour votre aide jusqu'à présent et continuez à recevoir ces réponses!

Peter Rowell
la source
4
Peut-être que les bons gars de superuser.com ont un bon aperçu des logiciels d'accessibilité. Je ne peux pas dire plus d'outils liés à la programmation, cependant. Désolé de ne pas pouvoir vous aider.
zneak
3
Hmm, je suggérerais plutôt d'utiliser un langage de construction personnalisé que d'essayer de créer quelque chose qui fonctionnera parfaitement pour Honza. Il existe des langages comme COBOL qui sont vraiment basés sur des mots clés et "lisibles par l'homme" (et peuvent être prononcés). Comme pour la robotique, pourquoi ne pas commencer avec LEGO? IMHO un langage avec des tortues (robots - quelque chose qui se déplace à travers l'écran et peut dessiner des lignes) et une syntaxe simple peut être très bonne. J'ai quelques difficultés à me programmer moi-même et je comprends qu'être «différent» n'est pas grand-chose, mais dans ce cas, cela me semble raisonnable.
Gabriel Ščerbák
7
Nous avons déjà discuté de la programmation vocale (en gros, c'est encore difficile, expérimental et largement non pris en charge). Voir stackoverflow.com/questions/1408874/… et stackoverflow.com/questions/87999/… .
dmckee --- ex-moderator chaton
4
Malheureusement, je n'ai pas de bonne réponse pour la plupart de ces questions. Je remarque dans l'article, cependant, que le mouvement de l'index est suffisant pour qu'il puisse contrôler le petit joystick de son fauteuil roulant. Vous pouvez rechercher une petite souris USB de type joystick. J'en ai déjà vu quelques-uns. Bien que pas particulièrement bon marché (un élément à trop faible volume), il peut s'avérer utile en tant que périphérique d'entrée supplémentaire.
Nicholas Knight
2
@RCIX: Je comprends et j'apprécie votre enthousiasme. Des malentendus en ligne comme celui-ci remontent au moins à PLATO IV Notes en 1973, où nous avons appris que la frappe ne transmet pas un langage corporel et un ton de voix importants. Il y avait un FlameWar en 1974 (qui est né d'un malentendu) qui a été la base de ce qui était probablement la première thèse de maîtrise sur l'interaction interpersonnelle dans un environnement social informatisé. Les 2 et 3 juin, il y aura une conférence PLATO @ 50 au Computer History Museum de Mt. View, CA. Il va y avoir beaucoup de barbes grises qui traînent. :-)
Peter Rowell

Réponses:

92

J'ai des blessures sportives et je ne peux pas taper plus de quelques caractères sans douleur sérieuse.

Au lieu de cela, j'utilise emacs avec Dragon NaturallySpeaking. J'ai écrit des macros et des scripts pour l'aider à s'en sortir. Le système n'est pas parfait, mais il fonctionne. Je programme principalement en C ++, mais j'utilise aussi python.

Si vous le souhaitez, je vais vous aider. Je dois vous prévenir, il faut quelques mois pour s'habituer au logiciel de synthèse vocale et le former. de plus, je ne suis pas de langue maternelle anglaise, je suis sûr que cela gêne

Ne désespérez pas, il existe des solutions.

ici un lien vers les fichiers emacs et Dragon (malheureusement pas encore documentés)

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

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

aussi, si vous avez besoin de plus d'informations, mon numéro est le 515230 9363 (États-Unis, Iowa). Je serai heureux de vous aider si je peux

Anycorn
la source
1
Ne laissez pas cette vérification car la "réponse" vous empêche de publier plus de possibilités. J'ajouterai aussi que (halètement) je suis un gars de vi (et maintenant de vim) depuis 1980, donc je vais devoir créer un "ensemble de macros vi" pour compléter le travail qu'André a déjà fait, et probablement également un ensemble Notepad ++, ou un ensemble Aptana (Eclipse + PyDev).
Peter Rowell
Wow, aaa, je ne savais pas ça avant d'avoir lu votre message. Tous vos messages que j'ai vus jusqu'à présent ne le montrent pas ... au moins je sais que Dragon NaturallySpeaking fonctionne bien pour vous.
Xavier Ho
19

Cela vaut la peine de regarder le projet Dasher , qui permet de saisir du texte assez rapidement, même pour les personnes gravement handicapées. Dasher est construit sur un modèle probabiliste de langages, de sorte que les énoncés les plus probables sont plus faciles à entrer dans le système. Le système de démonstration est livré avec une collection assez impressionnante de langues naturelles. Il devrait être facile d'obtenir un grand corpus de programmes écrits en Python, de charger Dasher avec le corpus et de créer une version spéciale pour entrer dans les programmes Python.

Norman Ramsey
la source
Excellente suggestion! Je suis un vieux jock neuronal des années 80 et cela semble très prometteur.
Peter Rowell
8

Cela ne fait partie d'aucun logiciel professionnel, mais quand j'ai vu cela, j'ai pensé que ce serait bien pour la saisie de texte en utilisant le suivi des mouvements oculaires ou un mouvement minimal de la souris. Voir la page de traitement de Ken Perlin , et regardez les applets pour la "saisie au stylet".

PaulMcG
la source
Merci! Excellent lien! Cela peut être particulièrement utile avec le contrôle du curseur, ce qui, je pense, est encore un peu un défi pour lui. Ce n'est que lorsque vous devez réellement résoudre ces types de problèmes que vous commencez à comprendre que certaines de ces personnes escaladent le mont. Everest chaque jour juste pour faire ce à quoi nous ne pensons rien.
Peter Rowell
5

Je connais quelqu'un dans un village de l'Inde qui est paraplégique, qui utilise le logiciel Dragon Speech to Text pour écrire sur son ordinateur. Je ne sais pas si c'est bien adapté pour un programmeur (elle n'est pas programmeur), mais c'est un début.

Vous voudrez peut-être également vous pencher sur Natural Point . C'est une souris contrôlée par les yeux, ce qui pourrait aider Honza

J'espère que cela t'aides

inspecteurG4dget
la source
Honza utilise actuellement assez bien Dragon. Nous nous sommes particulièrement concentrés sur la manière détaillée de saisir les caractères spéciaux qui sont partout dans la programmation.
Peter Rowell
3

iPython avec achèvement

Du côté python, iPython affiche les paramètres, les fonctions, etc., et a la complétion de commande. Peut-être pourrait-il également être personnalisé pour répondre aux différents périphériques d'entrée?

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

Mark Harrison
la source
1

Une chose qui peut aider (je l'ai obtenu à partir de cette question ) est http://shorttalk-emacs.sourceforge.net/ . Cela semble être une interface entre emacs et la reconnaissance vocale. Et en ce qui concerne les langues, je recommanderais d'utiliser Lua sur Python. Il a un flux anglais plus naturel.

RCIX
la source
1

Je sais que cette question est assez ancienne maintenant. Je me demande comment les choses se passent pour Honza en ce qui concerne la programmation. Ce serait bien de vous entendre.

Pour ce que ça vaut, je souffre de RSI et j'essaie maintenant de minimiser l'utilisation du clavier et surtout de la souris.

Ma propre expérience de la reconnaissance vocale est que ce truc fonctionne. J'utilise le logiciel de reconnaissance vocale intégré de Windows pour Windows 7 (WSR). J'ai également utilisé le doigt vocal (http://voicefinger.cozendey.com/) pour aider à déplacer le pointeur de la souris. Certains points clés que je voudrais mentionner sont:

Apprenez les raccourcis.Vous pouvez faire presque n'importe quoi en utilisant les raccourcis et les prononcer fonctionne très bien avec la reconnaissance vocale en "mode de saisie" (voir ci-dessous).

Utilisez le mode de saisie.À moins que vous ne dictez du texte, c'est idéal pour prononcer des raccourcis vers l'ordinateur ou pour épeler des mots étranges. Fait intéressant, ce n'est pas une fonction clairement «annoncée» de WSR.

Alphabet phonétique. Pour bien utiliser le mode de saisie, apprenez l'alphabet phonétique: http://en.wikipedia.org/wiki/NATO_phonetic_alphabet Vous ne pouvez pas vous en passer de manière réaliste lorsque vous utilisez une forme de reconnaissance vocale.

VIGUEUR. (ou emacs je suppose - pas sûr). Vim est idéal pour éditer du texte sans toucher la souris - jamais. Cela le rend idéal pour l'édition de textes à l'aide de WSR. Je ne suis moi-même qu'un débutant en VIM, mais je trouve cela incroyablement utile.

Navigation sur le Web. D'après mon expérience, la navigation sur le Web est toujours une chose extrêmement difficile à faire sans souris. Il y a tout simplement trop de situations qui nécessitent que vous survoliez avec la souris pour accéder aux commandes sous-jacentes. C'est vraiment dommage. Néanmoins, il existe de très bons plugins Firefox pour vous aider à naviguer sans souris.

  1. Navigation sans souris: https://addons.mozilla.org/en-us/firefox/addon/mouseless-browsing/ C'est un petit outil sympa avec de nombreuses options de configuration pour mettre des chiffres à côté de tous les liens. Vous pouvez ensuite taper ces chiffres pour activer le lien
  2. Vimperator: http://vimperator.org/ Cela va bien plus loin que la navigation sans souris. Il vous donne fondamentalement un contrôle complet de vim comme le contrôle de Firefox. Je trouve que cela fonctionne mieux que la navigation sans souris, mais peut être ennuyeux dans les cas où cela change le comportement par défaut de Firefox.

Ce ne sont que mes propres expériences personnelles. Ce serait formidable de savoir comment Honza se porte.

Phèdre
la source