Прежде чем отказываться от карьеры и увлечения, знайте, что есть путь вперед.

В августе 2015 года перестали работать руки. Я все еще мог их контролировать, но каждое движение накапливало больше боли, поэтому за каждое движение приходилось платить - одеваться утром, отправлять текстовое сообщение, поднимать стакан.

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

Я страдаю от боли четыре года.

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

Любому, кто преодолел невзгоды, легко ответить одной из двух реакций: «Это не может быть так сложно» или «Я никогда не смогу этого сделать». Пройдите мимо обеих реакций. Это так сложно. Ты можешь это сделать.

Talon

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

Команды Talon варьируются от простых псевдонимов для общих символов до сложных мета-команд, которые повторяют предыдущее высказывание или меняют режимы диктовки. Например, как раз в случае скобок у меня есть отдельные команды для (, ), () и ()⬅️ (последняя оставляет курсор между круглыми скобками, поэтому мое следующее высказывание заключено в квадратные скобки).

У каждого пользователя Talon есть несколько личных скриптов, написанных на Python. Самый ценный сценарий, который я написал, вероятно, мой индексированный буфер обмена:

Вот как я использую этот скрипт. Выбрав определенную фразу с помощью команд управления курсором, я говорю clip [foo]. Каждый раз, когда я хочу ввести одну и ту же фразу после, я говорю вставить [фу]. Благодаря этому сценарию мне нужно только один раз продиктовать особенно неприятное имя переменной. Однако этот метод представляет собой новую проблему: теперь каждая переменная имеет два имени: свое письменное имя и свое произносимое имя. Этот досадный побочный эффект усугубляет сложность именования переменных, которую называют самой сложной проблемой в информатике.

Если вы опытный пользователь Vim или Emacs, все это может показаться вам знакомым. У меня есть команды для поиска, перемещения курсора, выделения и управления буфером обмена. Обучение диктовке кода во многом похоже на очень тщательное изучение нового текстового редактора, вплоть до задачи настройки его для ваших конкретных языков и потребностей.

В Talon community есть специализированные команды, которые вступают в силу в зависимости от приложения или языка программирования. Например, для пользователя Perl хорошей отправной точкой может быть заимствование настроек у Эмили Ши, которую она описывает в этом докладе.

Моя установка Talon полагается на Dragon для стороны распознавания речи. К сожалению, Nuance прекратила выпуск выпусков OSX Dragon, которые делают возможным создание сценариев. Кодер Talon, Ryan Hileman, работает над подходящей заменой, но она еще не готова.

Интерлюдия: Мой диагноз

Люди часто спрашивают мой диагноз, но официально это зависит от страны, в которой я нахожусь. После первоначального предположения, что виноват запястный канал, ревматолог поставил мне мой первый американский диагноз: фибромиалгия, словом что на Doctorspeak означает "уходи".

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

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

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

Затем он выгнал меня из своего офиса за использование слова «ебля». «Мы не терпим проклятий», - гласила вывеска в вестибюле.

Мое оборудование

Для диктовки я использую два разных микрофона. В офисе я использую Sennheiser ME-3, а в поездках - Bluetooth-гарнитуру Sennheiser MB Pro 2.

Еще одно важное оборудование для меня - это ножная педаль PageFlip Firefly. Он программируемый, поэтому я изменил настройки, включив в него тот, который полезен для чтения статей в Skim, где левая педаль соответствует щелчку, а правая педаль соответствует стрелке вниз. Я могу использовать ноги для прокрутки и щелкать для аннотаций. Еще одна настройка педали, которую я добавил, отображает педали для щелчка и Shift+Enter. Этот параметр полезен для блокнотов Jupyter и написания моих исследовательских заметок и математических скретчений в Колчане.

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

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

Еще одна интерлюдия

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

Ограничения

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

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

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

Дополнение

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

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

Благодарности: Спасибо за комментарии к ранним наброскам: Аннабель Каррелл, Крейг Иннес, Мэтью Саммерс, Дина Лев, Доминик Шлехтвег и Yuhe Faye Wang »(Кто занимается гуманитарными науками!). Спасибо The Recurse Center за предоставленное мне личное пространство, чтобы я мог научиться диктовать код. Спасибо моему научному руководителю Адаму Лопесу, который неизменно поддерживал меня и сделал все это возможным.

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