Лучшие средства программирования для программиста с параличом нижних конечностей

125

Прежде чем делать выводы, да, это связано с программированием. Он охватывает ситуацию, которая подпадает под заголовок «Вот, по благодати Божьей, идите вы или я». Для меня это совершенно новая территория, поэтому я прошу здесь серьезной помощи.

Молодой человек, Хонза Рипа , в соседнем городке проделал классический тупой трюк через две недели после окончания средней школы - он нырнул на мелководье в Русской реке и сделал перерыв C-4 / C-5 , который иногда называют плаванием. Перерыв в бассейне. За считанные секунды он превратился из исключительного гольфиста и борца в паралитика. (Прочтите историю ... всем нам должно было быть так повезло иметь такую ​​девушку, как Брианна.) Это было 10 месяцев назад, и он восстановил лишь незначительное количество контроля над своим указательным пальцем правой руки и парой других рук / движения стопы, ни одно из них не мелкозернистое.

Его полный контроль над своим компьютером (в настоящее время работает Win7, но мы можем изменить это по мере необходимости) посредством голосовой команды. Хонза не тупой. У него был средний балл 3,7 по математике и физике.

Проблемы:

  1. Поскольку весь его ввод осуществляется с помощью голосовых команд, он обеспокоен тем, что преобладание специальных символов в программировании потребует огромного количества подробных команд. Кто-нибудь знает какую-нибудь хорошо сделанную систему голосового ввода, специально разработанную для программистов? Я думаю о чем-то, что могло бы быть модальным - например, вы говорите «ввод Python», и он переходит в режим макроса для определения классов и т. Д. Учитывая весь RSI в мире программистов, должно быть что-то там. На каких ОС он работает?

  2. Я планирую обучить его Python, который я предпочитаю для программирования и обучения. Существуют ли какие-либо приложения / какие-либо приложения, написанные на Python, которые могли бы особенно хорошо помочь ему мысленно вовлечь его, поддерживая его инвалидность? Один из его интересов - инвестирование в акции, но это не может быть хорошей отправной точкой для новичка в программировании.

  3. Существует множество сред (Flash, JavaScript и т. Д.), Которые не особо удобны для людей с проблемами доступности. Я смутно помню (но не могу найти) исследовательский проект, который в основном создавал систему наложения поверх экранной среды, а затем позволял создавать макрокоманды поверх изображения экрана. Если мы сможем получить / обучить эту систему, мы сможем устранить многие препятствия на пути к использованию сети.

  4. Я особенно заинтересован в поиске проектов робототехники и роботизированных протезов на основе Python с открытым исходным кодом, чтобы он мог одновременно изучать передовые концепции программирования, одновременно учась решать некоторые из своих непосредственных проблем.

Я много раз гуглил по этому поводу, но знаю, что кое-что мне не хватает. Я прошу сообщество SO подойти к делу. Я знаю, что у этой группы есть ответы, поэтому позвольте мне их услышать! Поразите меня возможностями, которые у любого из нас могут быть / необходимы для программирования после такого жизненно важного события.

Обновление: я только что зарегистрировал computingforquads.org и буду создавать страницы для всевозможных решений всевозможных проблем. Спасибо за вашу помощь и ждем ответов!

Питер Роуэлл
источник
4
Может быть, хорошие парни на superuser.com хорошо разбираются в программах для специальных возможностей. Однако не могу сказать о дополнительных инструментах, связанных с программированием. Извините, что не могу помочь.
zneak
3
Хм, я бы посоветовал лучше использовать какой-нибудь собственный язык сборки, чем пытаться создать что-то, что идеально подойдет для Honza. Есть языки, такие как COBOL, которые действительно основаны на ключевых словах и "удобочитаемы" (и их можно произносить вслух). Как и в случае с робототехникой, почему бы не начать с LEGO? ИМХО какой-то язык с черепахами (роботы - что-то, что движется по экрану и может рисовать линии) и простой синтаксис могут быть довольно хорошими. У меня есть некоторые трудности с программированием, и я понимаю, что быть «другим» - это ничего особенного, но в данном случае для меня это выглядит разумным.
Габриэль Щербак
7
Мы уже обсуждали голосовое программирование (по сути, это все еще грубое, экспериментальное и практически неподдерживаемое). См. Stackoverflow.com/questions/1408874/… и stackoverflow.com/questions/87999/… .
dmckee --- котенок экс-модератора
4
К сожалению, на большую часть этого у меня нет хорошего ответа. Однако в статье я заметил, что движения указательного пальца достаточно, чтобы он мог управлять маленьким джойстиком на своем инвалидном кресле. Вы можете поискать небольшую USB-мышь в стиле джойстика. Я видел несколько раньше. Хотя это не особенно дешево (слишком малый объем), оно может оказаться полезным в качестве дополнительного устройства ввода.
Николас Найт
2
@RCIX: Я понимаю и ценю ваш энтузиазм. Подобные онлайн-недоразумения восходят, по крайней мере, к PLATO IV Notes 1973 года, когда мы узнали, что набор текста не передает важного языка тела и тона голоса. В 1974 году была одна «Война пламени» (возникшая из-за недоразумения), которая стала основой, вероятно, первой магистерской диссертации о межличностном взаимодействии в компьютерной социальной среде. 2 и 3 июня состоится конференция PLATO @ 50 в Музее компьютерной истории на горе. View, CA. Вокруг будет ковылять много седобородых. :-)
Питер Роуэлл

Ответы:

92

У меня спортивные травмы, и я не могу набрать больше нескольких символов без серьезной боли.

Вместо этого я использую emacs вместе с Dragon NaturallySpeaking. Я написал макросы и скрипты, чтобы помочь с этим справиться. Система не идеальна, но работает. Я программирую в основном на C ++, но также использую python.

Если хочешь, я помогу тебе с этим. Я должен вас предупредить, требуется несколько месяцев, чтобы привыкнуть к программе преобразования речи в текст и обучить ее. кроме того, я не являюсь носителем английского языка, уверен, что это мешает

Не отчаивайтесь, решения есть.

здесь ссылка на файлы emacs и Dragon (к сожалению, еще не задокументированы)

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

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

кроме того, если вам нужна дополнительная информация, мой номер 515 230 9363 (США, Айова). Буду рад помочь вам если смогу

оборота Anycorn
источник
1
Пожалуйста, не позволяйте этой проверке, поскольку «ответ» помешает вам опубликовать больше возможностей. Я также добавлю, что (задыхаясь) я работаю с vi (а теперь и с vim) с 1980 года, поэтому мне придется создать «набор макросов vi», чтобы дополнить работу, которую Андре уже сделал, и, вероятно, также набор Notepad ++ или набор Aptana (Eclipse + PyDev).
Питер Роуэлл,
Вау, ааа, я этого не знал, пока не прочитал твой пост. Все ваши сообщения, которые я видел до сих пор, не показывают этого ... по крайней мере, я знаю, что Dragon NaturallySpeaking вам подходит.
Ксавье Хо
19

Стоит взглянуть на проект Dasher , который позволяет достаточно быстро вводить текст даже для серьезно отключенных. Dasher построен на вероятностной модели языков, поэтому более вероятные высказывания легче вводить в систему. Демонстрационная система поставляется с довольно впечатляющей коллекцией естественных языков. Должно быть легко получить большой корпус программ, написанных на Python, загрузить Dasher вместе с корпусом и создать специальную версию для входа в программы Python.

Норман Рэмси
источник
Отличное предложение! Я старый фанат нейронных сетей из 80-х, и это звучит очень многообещающе.
Питер Роуэлл,
8

Это не является частью какого-либо профессионального программного обеспечения, но когда я это увидел, я подумал, что он будет хорош для ввода текста с использованием отслеживания движения глаз или минимального движения мыши. См . Страницу Обработки Кена Перлина и посмотрите на апплеты для «перьевого ввода».

PaulMcG
источник
Спасибо! Отличная ссылка! Это может быть особенно полезно при управлении курсором, что, как мне кажется, для него все еще является проблемой. Только когда вам действительно придется решать эти проблемы, вы начинаете понимать, что некоторые из этих людей поднимаются на гору. Эверест каждый божий день просто для того, чтобы делать то, о чем мы ничего не думаем.
Питер Роуэлл,
5

Я знаю человека в деревне в Индии, который страдает параличом нижних конечностей, который использует речь дракона в тексте. чтобы писать на своем компьютере. Не знаю, насколько это подходит для программиста (она не программист), но это начало.

Вы также можете изучить Natural Point . Это мышь с управлением глазами, которая может помочь Хонзе

Надеюсь это поможет

inspectorG4dget
источник
Хонза в настоящее время довольно хорошо использует Дракона. Мы были особенно сосредоточены на подробном вводе специальных символов, которые часто встречаются в программировании.
Питер Роуэлл,
3

iPython с доработкой

На стороне Python iPython показывает параметры, функции и т. Д. И имеет завершение команд. Возможно, его также можно настроить так, чтобы он реагировал на различные устройства ввода?

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

Марк Харрисон
источник
1

Одна вещь, которая может помочь (я понял это из этого вопроса ), - это http://shorttalk-emacs.sourceforge.net/ . Похоже, это интерфейс между emacs и распознаванием речи. Что касается языков, я бы рекомендовал использовать Lua вместо Python. В нем более естественный английский оттенок.

RCIX
источник
1

Я знаю, что этот вопрос довольно старый. Интересно, как обстоят дела у Honza в отношении программирования. Было бы приятно получить ответ.

Как бы то ни было, я страдаю от RSI и теперь стараюсь свести к минимуму использование клавиатуры и особенно мыши.

Мой собственный опыт распознавания голоса показывает, что это ДЕЙСТВИТЕЛЬНО работает. Я использую встроенное в Windows программное обеспечение распознавания речи для Windows 7 (WSR). Я также использовал голосовой палец (http://voicefinger.cozendey.com/), чтобы перемещать указатель мыши. Я хотел бы упомянуть следующие ключевые моменты:

Изучите ярлыки. С помощью ярлыков вы можете делать практически все, и их озвучивание отлично работает с функцией распознавания голоса в «режиме набора текста» (см. Ниже).

Используйте режим набора текста. Если вы не диктуете текст, он отлично подходит для коротких сокращений на компьютере или для написания странных слов. Интересно, что это не явно «разрекламированная» функция WSR.

Фонетический алфавит. Чтобы эффективно использовать режим набора текста, изучите фонетический алфавит: http://en.wikipedia.org/wiki/NATO_phonetic_alphabet. Вы не можете обойтись без этого при использовании любой формы распознавания речи.

VIM. (или emacs, я думаю - не уверен). Vim отлично подходит для редактирования текста, никогда не касаясь мыши. Это отлично подходит для редактирования текстов с помощью WSR. Я сам только новичок в VIM, но считаю его невероятно полезным.

Просмотр веб-страниц. По моему опыту, просмотр веб-страниц без мыши по-прежнему является чрезвычайно сложной задачей. Слишком много ситуаций, когда вам нужно навести курсор мыши, чтобы перейти к основным командам. Это большой позор. Тем не менее, есть несколько действительно хороших плагинов для Firefox, которые помогают просматривать сайты без мыши.

  1. Просмотр без мыши: https://addons.mozilla.org/en-us/firefox/addon/mouseless-browsing/ Это изящный маленький инструмент с множеством параметров конфигурации для размещения чисел рядом со всеми ссылками. Затем вы можете ввести эти числа, чтобы активировать ссылку
  2. Vimperator: http://vimperator.org/ Это намного дальше, чем просмотр без мыши. Это в основном дает вам полный vim-контроль над Firefox. Я считаю, что это работает лучше, чем просмотр без мыши, но может раздражать в тех случаях, когда он изменяет поведение Firefox по умолчанию.

Это всего лишь мой личный опыт. Было бы здорово услышать в ответ о том, как идут дела у Хонзы.

Федр
источник