[Из песочницы] Опыт программирования на Юниксе*
Под программированием понимается собственно процесс программирования на С для мелких микроконтроллеров, а также трассировка печатных плат, рисование моделек в Солиде, редактирование доков в Офисе, чтение интернета и написание этой заметки.
Вот это устройство UNIX FIT MX-450V, или кратко – *ЮНИКС, на котором и осуществляется процесс программирования.
Все составные части девайса многократно описаны в литературе, никаких революционных свершений не предлагается, зато приведен в целом успешный опыт инсталляции и использования. Вообще, всё вместе это 1001-е выступление на тему «о правильном рабочем месте программиста». Фотки – частично из сети, частично из моей рабочей берлоги, заранее прошу прощения за невысокое качество – условия тотальной захламленности + убогое освещение + я, увы, не фотограф совсем. Устройство классическое – подъёмный стол и под ним беговая дорожка. Под катом – множество подробностей, включающих вивисекцию невинных железочек с элементами колхоза.
Обоснование
Это вовсе не значит, что довелось в полной мере испытать все их прелести, и у меня нет убедительных научных фактов, подтверждающих их непременное появление от сидячего образа жизни. С возрастом я узнал много плохих слов: геморрой, аденома простаты, остеохондроз поясничного отдела позвоночника, стенокардия, аритмия и просто бессонница. Настала время, когда с этим пора уже что-то делать. Однако, смутные субъективные ощущения иногда мотивируют сильнее железобетонных логических аргументов.
Впрочем, для сильных и волевых мужчин, готовых каждые 45 минут вскакивать и выполнять производственную гимнастику, а также трижды в неделю посещать спортзал, всё что я дальше написал, наверно не так актуально.
Выбор исходников
При ближайшем знакомстве с продаванами выяснилось, что они также совершенно не в курсе чем торгуют, и после того, как узнают, что мой вес не больше 100 кг, и что нужна именно электрическая, а не механическая дорожка, (на этом все их классификационные признаки заканчиваются) так сразу вянут и переходят к классическому – берите что понравилось. Начиная выбирать беговую дорожку, я столкнулся с тем, что для неподготовленного юзера они все одинаковы и как их выбирать непонятно.
Мне понравился именно ЮНИКС по следующим соображениям:
- Минимальная начальная скорость = 0,8 км/час. Это важно, так как я программирую уже не так быстро, и большая часть программирования происходит со скоростью до 1 км/час. Не все дорожки умеют так медленно.
- У ЮНИКСа есть электрическое изменение угла наклона поверхности. Пока не часто этим пользуюсь, но идея куда-то лазить под стол и что-то там регулировать вручную в процессе программирования, мне представляется абсолютно исключающей вообще тему изменения наклона.
- Конструктив ЮНИКСа легко разбираемый — это очень важно, так как руки на него накладывать неизбежно придется, и очень радует, что все обходится кручением гвоздей, без применения болгарки и сварочника.
- Замечательная ручка на корме для подъёма девайса в вертикальное положение. За неё же очень удобно таскать ЮНИКС, когда под ним пылесосят. Пустячок, но очень приятный.
- Название. Признаюсь честно, эмоциональный компонент в выборе тоже присутствовал.
Со столом проще.
Простейший запрос «стол с электроприводом» выкатывает замечательные конторы, в одной из которых и был взят «Ergostol Duo», управляемый тремя кнопками: «вверх», «вниз», и «пожалуйста разрешите мне прямо сейчас подвигать этот стол» (круглая).
Чтобы не тянуть, — вот общая компоновка при первоначальном тестировании.
Слева – книжные шкафы, справа – стол с паяльником, напильником, осциллографом и сопутствующим хламом. Очевидно, что места занимается совсем немного. (Там работать на ЮНИКСе почему-то не получается.)
Инсталляция и настройка
К счастью, они закреплены на болтах, до которых, сняв боковые пластиковые крышечки, легко добраться. Инсталляция ЮНИКСа начинается с обламывания ему рогов, с ними он под стол не залезет.
Отрывая рога, важно не порвать проводные соединения с пультом, их нужно нежно освободить от пластиковых «галстуков» и добраться до разъёма, который, хоть и залеплен термоклеем, но легко разъединяется.
Из оторванной верхней части нужно выковырять красивый пульт (крепится на 4-х саморезах), отломать два неплохих динамика, а вот всё остальное железо придется выкинуть, правильного применения ему я не нашёл.
Вот пульт, он в дальнейшем пригодится.
Но две главные – большие и выделены зелёным и красным, что приятно. Несмотря на нарядный дизайн, поводов для радости немного: дисплей подслеповатый, да и кнопки, к сожалению, — самый эконом-класс, просто халтурно наклеенная наклейка с мембранными выпуклостями, нажимать – так себе. По идее там ещё целый набор всяких вкусностей, типа программы тренировок и музыкального плеера, но в реале, для программирования, это всё избыточно, музыка на рабочем компе намного удобнее.
С обратной стороны пульта видны все эти кишочки, на которые смотреть не надо, а лучше прикрыть куском пластика/деревяшки, благо четыре стойки под саморезы это обеспечивают с лёгкостью.
Было несколько попыток его как-то пристроить, но выяснилось, что на столе ему совсем не место – не дело светить синим экраном прямо в глаза программисту, и так уже дисплеи стараются. Следующий сталинский удар – как правильно разместить этот пульт управления. Правильное решение было найдено — слева от программирующей персоны, экраном в небо, просто как продолжение поверхности стола. Загнать его под стол – неудобно, потому что дешёвый экранчик виден только под определенным углом наклона зрения, то есть под столом цифры не читаются совсем. Да, понадобился кронштейн в виде куска прямоугольной дюралевой трубы, но думаю, сойдет и вообще что угодно, например, вульгарный обломок доски деревянной. Так и в глаза не светит, и когда захочешь с ним о чем-то пообщаться, — никаких проблем, все цифирки очень даже заметны, и кнопочки под рукой.
Впрочем, всё индивидуально, если кто-то из начинающих кодеров чувствует себя неуверенно в таком стиле программирования, тогда лучше прицепить его за какую-нибудь одежду. С датчиком, обеспечивающим интимную связь программера с пультом, я заморачиваться не стал, просто приклеил его на двухсторонний скотч на мордочку пульта, смотрится эстетично и наукоёмко, не мешается, а при моих скоростях программирования – от 0,8 до 2 км/час, фича представляется необязательной совсем. Что несомненно утешает. От возможного падения он вряд ли спасет, но вот от перерасхода электроэнергии, затраченной на вращении ленты под упавшим и потерявшим сознание программистом, скорее всего защитит.
Более высокий стол сразу стоит почти вдвое дороже, так не годится. При первоначальном тестировании обнаружилось, что высота столешницы Эргостола регулируется только от 66 до 120 см, что разумеется оказалось мало, так как не забываем, программирование производится не на полу, а на ЮНИКСе, высота поверхности которого находится примерно в 15 см от пола. Применяем экологически чистую технологию – красивые клеёные бруски, сечением 15 х 15 см, подложенные под ножки Эргостола! Что делать?
Мне известны попытки внедрить эту «беговую» технологию в программирование, которые закончились провалом именно по причине того, что каждое изменение статуса «сели-встали» сопровождалось перетаскиванием беговой дорожки в другой конец комнаты. Всё стоит ровно, не качается, и высота, наконец, вполне комфортна для работы и сидя и стоя.
Да-да, сидя тоже можно и нужно! Значит путем прикладывания одного места к другому выяснилось, что защитные короба по краям ленты идеально совпадают с расстоянием между ногами обычного офисного стула типа Бюрократ. Разумеется, надолго энтузиазма не хватало.
В качестве таковых были применены две беленькие пластиковые дощечки из ПВХ, тупо приклеенные к боковинкам на двухстороннюю липучку. Правильная установка Бюрократа на ЮНИКС должна сопровождаться какими-то дополнительными утилитами, препятствующими самопроизвольной деинсталляцией Бюрократа в самый ответственный момент. Процедура «сели» упростилась до минимума: (Подойдёт вообще какой угодно листовой материал, но вот мне под руки попался именно ПВХ лист 5 мм.)
Вот теперь ноги Бюрократа не соскальзывают, да и когда нужно поставить одно на другое, тоже не приходится особенно прицеливаться, направляющие рулят.
- жмак кнопку на пульте, ЮНИКС остановился;
- жмак-жмак две кнопки на пульте стола, стол опустился;
- одной рукой хватаем Бюрократа и ставим его на ЮНИКС.
Всё.
Процедура «встали» – выполняем стек в обратном порядке, начиная с убирания Бюрократа под соседний стол.
Вуаля, программировать подано.
Ещё раз прошу прощения за качество изображаемого, но вот это – реальность, то есть, несмотря на крайне стесненные условия рабочего бардака, технология прижилась и функционирует весьма успешно.
Замеченные особенности
То есть в процессе программирования он не издаёт никаких громких звуков, отвлекающих или раздражающих. ЮНИКС достаточно тих и тактичен. Чуть слышное довольное урчание наоборот создает мирный и позитивный настрой.
То есть если он функционирует, а я легкомысленно отошел в сторонку и чем-то занялся, он начинает недовольно кряхтеть, поскрипывать и вообще проявлять неудовольствие. ЮНИКС ревнив. Дисциплинирует: хочешь сойти с дистанции — останови дорожку и тогда уже иди по своим делам.
По крайней мере известный наш тезис «не подмажешь – не поедет» оправдывается полностью. ЮНИКС традиционен. Где-то в конце первой бутылочки масложор закончился, недовольные кряхтения и скрипы прекратились, стало быть конструкция вышла на режим. В комплект поставки входят две бутылки с силиконовым маслом, ну так вот не надо скупиться (по инструкции — капать время от времени), а заливать масло надо с самого начала и с запасом! Ну и подтянуть ленту нужно, примерно через полгода, чтобы шла ровно и не провисала.
Программирование на неподвижном ЮНИКСе нисколечко не способствует, а наоборот только ухудшает, ноги начинают ныть и настроение падает. ЮНИКС должен крутиться для того, чтобы на нём программировать.
Результат
То есть реально получается прогуливаться по 3-4 часа кряду, совершенно не замечая усталости, этого я от себя не ожидал. Неожиданно позитивный. Поразительно, что не понадобилось, почему — так пока и не понял, то ли хватает общей массы конструкции, то ли облокачивание верхней половиной тела на стол создаёт субъективно комфортное восприятие колеблющегося монитора, так как он колеблется вместе со всей моей тушкой, не знаю. Второе откровение – перед покупкой, глядя в сети на картинки этих смешных поднимающихся столов, я не предполагал за ними никакой устойчивости, и заранее готовился «прибивать» стол к стене в поднятом положении, чтобы экран не трясся при наборе текста и движениях мыши. Больше всего я опасался, что при таком «вертикальном программировании» не получится трассировка печатных плат, так как процесс сильно завязан на точные движения мыши. Но и в очках, и без очков процесс вполне комфортен. Конечно всё это – субъективщина, не хватает статистики для каких-то определенных выводов. Ан нет, всё прекрасно заработало, то есть удалось нормально уходить в транс, мышь двигалась чётко, не отвлекала, более того возник неожиданный бонус – ритмичные движения ног по музыку (ну а ручная трассировка-то всегда под музыку) по-своему способствуют креативному процессу и как-бы «подталкивают» его. Впрочем, тезисы «танцевальное программирование» или «креативный марш юниксойдов», ещё подлежат осмыслению, возможно в этом что-то и есть.
То есть совершенно реально на 3-4 часа «загулять», совершенно не замечая времени и того, что происходит под ногами. Основной режим программирования оказался именно прогулочный, слишком быстро бегать пока не получается. Примерно 20-30 минут, и всё, релакс закончен, можно снова продолжать танец лихих кодеров на несколько часов, в общем усталость от ходьбы практически не ощущается. Потом – заседание, но не на долго, даже с учётом дополнительной подушки, Бюрократ — всё-таки не самое комфортная среда программирования, поясница затекает, да и вообще сидя спать хочется.
Негатива пока нет, но ожидается, так как непонятен ресурс рабочей ленты ЮНИКСа и что делать, когда он наконец кончится. Разумеется, масса позитива от изменения самочувствия, — все субъективные диагнозы заметно поутихли, а некоторые так и вообще спрятались. Время тестирование на сей момент – 1 год, пока полёт нормальный. Также настороженно высматриваю долговременные последствия для своей абсолютно неспортивной тушки от прогулочного образа программирования, пока вроде тоже нет, но наблюдения продолжаем.
Планов громадьё
В наступившем году хотелось бы улучшить мироздание в следующем направлении:
- запилить простейшую автоматику, чтобы стол поднимался и опускался до фиксированного уровня коротким нажатием на одну кнопку (а не длинным на две),
- как-то нормализовать свисающие лианы проводов, наверно какие-нибудь красивые короба приделать и всё туда убрать, хотя в общем и так всё работает, ничего не задевает при спуске-подъёме;
- детально разобраться с наклонными режимами программирования, то есть поисследовать как проистекает процесс при разных углах наклона ЮНИКСа.
Ну и было бы славно узнать об аналогичных опытах и свершениях, буде ими кто-то поделится.