А затем наступил звездец. Переработав более суток без перерыва при сдаче релиза, первого сентября 2005 года я не смог почистить себе зубы, так как не сумел открыть зубную пасту. Была дикая боль и одновременно слабость в руках.
Месяц спустя врач, к которому уговорили пойти меня коллеги в Cisco, диагностировал «a mild case of RSI/CTS» (repetitive strain injury / carpal tunnel syndrome). Первые три месяца я практически не прикасался к программированию. Затем ещё полгода делал минимально общественно полезную деятельность: 50 строчек в день считалось удачей. Это с учётом написания писем. Код же, с его постоянными двух- или трёхклавишными комбинациями (скобки, подчёркивания, camelcase) набирать было особо неприятно. Если это считается «mild case», тогда что же такое severe case?..
Зато болезнь помогла мне читать книжки — а что ещё оставалось делать? Так был прочитан завал литературы, выучен Haskell, проштудирован Tufte.
Проверка предрасположенности к RSI у мужчин.
Человеческий организм очень неумело заживляет внутренние травмы, типа RSI: эволюционно человек не предрасположен к монотонной многочасовой деятельности, и у него нет развитых механизмов обнаружения (например, рецепторов боли, как на коже) и лечения внутренних травм сухожильной сумки.
Соответственно, полугодового «отдыха от работы» мне не хватило. Я мог написать 50-100 строк кода в один день, но потом боль не давала мне работать всю оставшуюся неделю. Я пытался отдыхать от клавиатуры неделю, две без перерыва. Работать тыльной стороной ладони — суставом мизинца. Это снимало боль, но как только я начинал программировать, боль возвращалась буквально через несколько написанных строк.
Позволить себе год держать руки абсолютно без травмирующей активности я не мог — или по крайней мере думал, что не мог. Кроме того, в 2006 у меня родился сын.
В конце концов, после многих экспериментов с тем, сколько же я «теперь» могу работать, с периодами воодушевления (о, я уже второй день не чувствую боли!) и разочарования (уже неделю отдыхаю, но попытка нажать клавишу всё равно ведёт к болезненным ощущениям), у меня сформировалась некоторая система. Система не привела к тому, что у меня пропал RSI. Система другого рода — она позволила планировать мою активность, знать, сколько я могу работать, и точнее предсказывать сроки, в которые работа будет завершена.
Сначала замечу, что RSI почти не лечится, или лечится десятилетиями. То, на что вы можете рассчитывать — это законсервировать процесс на текущем уровне. Главное, что может в перспективе хоть как-то помочь — это прекращение травмирующей активности, то есть программирования и работы с клавиатурой. Уйдите в менеджмент, в конце концов: email меньше травмирует, чем кодирование кода. Используйте менее многословные языки программирования, например функциональные языки программирования, Perl. В этом отношении PHP лучше, чем многословная Java, а Haskell лучше, чем PHP.
Рекомендую книгу Dr. Pascarelli's Complete Guide to Repetitive Strain Injury: What You Need to Know About RSI and Carpal Tunnel Syndrome.
Так вот, нехитрый список правил того, как жить с RSI:
- Мышку использовать нельзя. В списках причин RSI мышь стоит на первом месте. В опросниках у врачей по поводу RSI мышь стоит на первом месте: «Используете ли вы компьютерную мышку?» Используйте точпад. У меня есть точпад и планшет, но планшет мне неудобен для повседневной работы всё-таки. Некоторые говорят, что приноровившись, планшет эргономичнее. Чем что? Чем мышка — конечно. Чем точпад? Сомневаюсь.
- Используйте vi, а не Emacs. Многоклавишные комбинации вредят эргономике процесса http://xahlee.org/emacs/emacs_hand_pain_celebrity.html
Коротко стригите ногтиОбрезайте ногти под ноль. Два миллиметра — уже много. Нажатие на клавиатуру подушечками пальцев щадит связки сильнее, чем нажатие или задевание части поверхности клавиши ногтями.- Используйте клавиатуру с мягким ходом клавиш, без «дребезга» и щелчков. Шелчки передаются связкам и травмируют их.
- Сухожилия давят на сухожильную сумку и перетирают, раздирают её изнутри. Вывод: нужно держать руки так, чтобы сухожилие не проходило в запястье под углом. Эргономические клавиатуры нехило помогают, но не все клавиатуры, на которых написано «Ergonomic» являются такими. Например, клавиатуры с верхним рядом клавиш, расположенным выше (дальше от поверхности стола), чем нижний, такими не являются. Некоторые модели Kinesis рулят, Acer Ergo 31/61 рулит (но её невозможно достать). В крайнем случае, если уж совсем ничего нет, сойдёт Microsoft Ergonomic Keyboard.
- Печатайте размеренно, в одном ритме и подчёркнуто медленно. Старайтесь делать одинаковые интервалы между нажатиями клавиш, и не допускайте особо вредных взрывных нагрузок, когда после относительно долгого обдумывания строчка или токен набиваются моментально, одним проходом рук. Лучше помедленней набрать, чем сорвать руку таким образом.
- Для того, чтобы кисти приучались не изгибаться в процессе работы, нужны развитые кости и мышечный корсет. Если вам до 25 лет — идите в качалку, тренируйте мышцы рук. Это будет способствовать развитию костей. Если вы старше, то кости уже сформировались, и изменить их практически невозможно. Так что берите PowerBall и/или занимайтесь спортом, адресно тренирующим мышцы кистей: скалолазание или бадминтон, например. Не теннис.
- Будете использовать PowerBall — используйте без фанатизма. Регулярное превышение 6-8 тысяч оборотов на нём вам сделает RSI, если его даже не было. Для того, чтобы укрепить мышцы, надо систематично крутить его на относительно небольших оборотах: «столько, пока комфортно терпишь, плюс ещё тридцать секунд».
- Рука в процессе работы не должна лежать на клавиатуре или столе, а должна держаться на весу. Класть руку на подушку клавиатуры или на стол можно только если в это время не происходит нажатий на клавиши.
- Для больших движений используйте большие мышцы, для малых — малые. Это значит, что набирать на верхних рядах клавиш нужно перемещая всю руку, а не путём доставания до крайних рядов клавиш вытягиванием пальцев. Во время печати кисть не должна двигаться влево-вправо или вниз-вверх, следите!
- Сплинты — это такие медицинские перчатки без пальцев, укрепляющие кисть. Использовать их при работе нельзя, они приводят к деградации мышц при относительно недолгом использовании. Через неделю работы в сплинтах мышцы атрофируются настолько, что есть шанс совсем не суметь работать без сплинтов. Сплинты можно иногда использовать на ночь, чтобы во время сна не перегибать кисть. Но в конце концов надо от сплинтов избавиться. Я был только первые полтора года в сплинтах — спал в них, и лишь очень изредка работал.
- Ибупрофен — копеечное, но очень действенное лекарство, с минимумом побочных эффектов. Оно эффективно снимает боль и обладает противовоспалительным эффектом. Оба свойства подходят для снятия симптомов боли и/или онемения. Но использовать его во время работы нельзя — воспаление-то оно чуть притушит (хорошо), но симптом боли снимет. В итоге вы не будете чувствовать, когда требуется срочно прекращать активность. Короче, если пользоваться ибупрофеном — а на начальных этапах лечения именно его и рекомендуют — ибупрофен надо принимать после травмирующей работы, или перед сном. Чтобы боль во время работы никуда не исчезала и была индикатором того, что надо завершать процесс.
- Перед работой руки следует прогревать. Сначала тёплой водой под краном, затем разминающие, разогревающие мышцы и чуть-чуть растягивающие действия кистями.
- Не работайте на ноутбучной клавиатуре, и тем более, не работайте на ноутбуке лёжа. День работы на ноутбуке мне стоит трёх дней отходняка.
- Алкоголь дополнительно повреждает нервы в воспалённом районе кисти и, похоже, смазку сухожилий. FYI: пить вредно.
Следуя этой системе, теперь — через пять лет после пика травмы — я могу ежедневно писать до 100 строк кода или пропорциональное количество плейнтекста, не боясь долгое время провести в отходняке. Ну или можно написать до 300 строк, если знать, что следующие два-три дня можно устроить себе выходной и «отлежаться».