... BAT BLOG: posts/2016-04-20_working_environment.md
блог старой летучей мыши. /m/ /v/ /β/
   2016-04-20 23:12

Рабочая среда.

Сказка о том, как в одиночку сделать то, что сделать невозможно в принципе.

The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time.

Tom Cargill

….В далёкой-далекой параллельной вселенной, населенной сплошь интеллектуальным большинством гумманоидов, жил-был сисадмин. У гуманоидов там было по две руки с тремя пальцами: на левой - один палец - для клавиатуры, второй - для ковыряния в носу, третий - для ковыряния в ухе, а на правой - все три пальца были заняты видимостью работы, которая проявлялась в неспешном ворочании “мышки” по столу. Окошки в компьютере поперетаскивать с места на место, поля в табличках с циферками повыбирать в какой-нибудь базе данных… Сисадмин был мутантом: он имел полноценно работающий мозг и на руках у него было по пять пальцев. И ему было очень тяжело работать в средах, предназначенных для 95% гумманоидов, его просто-таки задалбывало тратить время на перекладывание пасьянса из открытых окон, и наблюдать разноцветие оконных интерфейсов, не имеющих общего знаменателя. Ему, знаете ли, работать было нужно. Приходит он обычно на работу, открывает два десятка сессий к разным рабочим серверам - и работает, скрежеща зубами от “удобства”.

Однажды его нервы не выдержали: “невозможно же так работать!” - воскликнул наш герой, свернул все свои окна, сделал rm -rf / на локальной машине, и ушел, громко хлопнув дверью, под непонимающими взглядами коллег-гумманоидов.

Наш сисадмин взял “творческий отпуск” и начал работать над рабочей средой для себя и себе подобных. За основу он взял широко известный в узких кругах оконный менеджер DWM, “по дороге” очень сильно пропатченный и перепиленный. Шли годы, лаборатория нашего героя наполнялась различной электроникой, так или иначе предназначенной для его амбициозного проекта.

Система росла, развивалась, матерела, но не показывалась широкой публике. Тестировавшие систему коллеги неизменно восхищались простотой и элегантностью подходов стройного сочетания “костылей и велосипедов”, которые изобретал наш персонаж. В это время за стенами лаборатории случилось несколько разных по силе революций, некоторое количество войн, карта мира была перекроена, - всё это мало волновало нашего пресловутого героя. Периодически просматривая интернет в поисках нужных ему костылей и подпорок он обратил внимание на тревожную тенденцию деградации некогда элитарного сегмента IT-рынка: труд десятипалых профессионалов всё больше обесценивался, гумманоидный шестипалый подход к работе начал отравлять тот самый сегмент рынка, в котором трудился наш герой.

…Ядро системы было готово, были готовы интерфейсы, инструменты для сборки, ядра были собраны и оттестированы, но… Наш герой сделал одну ошибку, - он переоценил разумность своих десятипалых коллег-профи. Надо сказать, что система нашего героя строилась на базе нескольких популярный мейнстримовых дистрибутивов, кастомизированных “сверху” (рабочая среда) и “снизу” (специализированное ядро системы). Весь “средний” уровень был отдан “на откуп” мейнстриму. Который, внезапно, взял да и протух. Гумманоиды торжествовали - их концепция “пусть работают какие-нибудь другие люди, а мне думать - западло” локально победила. Появился systemd. Старая добрая система с перкрасно работавшими и досконально изученными подходами была сломана случайно удачливым выскочкой. Рвать на себе волосы было поздно - необходимо было искать выход из созданного в мейнстриме тупика.

Поскольку наш герой был тёртым калачом - выход был найден сразу. “Зачем мне такая система, в которой я не могу ничего сделать, настроить и проконтролировать?!” - спросил он себя, и тут же ответил - “не нужна”.

В кратчайшие сроки был подобран подходящий пакетный менеджер, была собрана новая база пакетов будущего дистрибутива, с учетом потребностей мейнстрима, концепция инициализации системы была максимально упрощена, все непонятные и сложные системные “штуки с наворотами” выброшены на помойку, туда же отправился и набор недоязыков недопрограммирования, очень любимый мейнстримерами. Скелет платформы была готов. Оставалось написать скрипты инициализации для новой двухкомпонентной системы init'а и нарастить систему “мясом”. И эта задача была выполнена. Не очень быстро, но всё же.

…Прошли осень и зима, наступила весна. Рынок информационных технологий продолжал стагнировать, начиная местами подгнивать. Мейнстримовые дистрибутивы радостно сжигали пути к отступлению для трезвеющих гумманоидов с индексом интеллекта выше среднего, систематически уничтожая “устаревшую” документацию о проверенных и стабильных методах работы с системой.

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

Оглянувшись на проделанную работу наш герой был немного шокирован - “и это всё сделал я один?! Не может быть!”.

Приближался радостный момент релиза, ради которого и трудился наш герой…

…А скриншоты и видео будут в следующем посте… 8)

future is coming, open the doors wider


2016-04-20 19-51