VelvetDarkness

VelvetDarkness

Пикабушник
Дата рождения: 11 ноября 1954
поставил 2769 плюсов и 2375 минусов
отредактировал 3 поста
проголосовал за 10 редактирований
Награды:
10 лет на Пикабу
11К рейтинг 6 подписчиков 1 подписка 2 поста 1 в горячем

Ответ на пост «Типичный женский любовный роман»

Ответ на пост «Типичный женский любовный роман» Юмор, Картинка с текстом, Жизненно, Книги, Мат, Ответ на пост
Показать полностью 1

Стражи ночи / The night watch

Оригинал: Jeremy Mickens, The night watch
Перевод отсюда: http://habrahabr.ru/post/203276/

Будучи высококвалифицированным исследователем, я потратил немало времени на продвижение науки вперёд. Но я родился на Юге и искренне убеждён, что прогресс — это выдумка, и что нужно готовиться к Судному дню, к жатве того, что мы посеяли и к появлению быстрых зомби, медленных зомби, и даже вежливых зомби, которые обращаются к вам «сэр» или «мадам», но в итоге пытаются съесть ваш мозг дабы заполучить ваши навыки. Когда нагрянет революция, нужно быть готовым; поэтому в моменты тишины и покоя, когда я не произвожу очередной прорыв в науке, я размышляю над тем, что же я буду делать, когда прогноз погоды изменится на «РЕКИ КРОВИ ЦЕЛЫЙ ДЕНЬ ДО СКОНЧАНИЯ ВРЕМЁН».

В основном я думаю о тех, кто будет прикрывать мою спину, поскольку шансы на выживание в постапокалиптическом мире напрямую зависят от размера и качества того сброда, который вы будете называть своей командой. Очевидно, мне понадобятся: слесарь (чтобы двери вскрывать), экспертподрывник (если уж у слесаря закончатся идеи) и конечно же тот парень, что отловит, выдрессирует и затем будет швырять змей в моих врагов (потому что в мире умершей надежды бросок змеёй — это разумный способ урегулирования разногласий). В сией антиутопии они помогут мне прослыть воинствующим философом.

Но! Но… Самым важным членом моей банды будет системный программист, ибо в гоббсовском кошмаре невероятных масштабов умеющему отладить драйвер устройства или распредёленную систему человеку можно доверять; системный программист видел ужасы Вселенной и понимает безысходность бытия. Системный программист писал драйверы для устройств, прошивку которых создавал то ли пьяный ребёнок, то ли трезвый карась. Системный программист отлавливал проблему с сетью через восемь машин, три часовых пояса и с дружеским визитом в Омск, откуда ее перенаправили в левое переднее копыто той лошади, что избавила Трою от перенаселения. Системный программист читал исходники ядра для лучшего понимания процессов мироздания и видел комментарий «И ЭТО РАБОТАЕТ ЛОЛ» в коде планировщика, и не смеялся он, но плакал; и отправил он патч ядра для восстановления баланса Силы и устранения инверсии приоритетов, что приводила к зависанию MySQL. Системный программист знает, что делать, когда общество падёт, потому что он уже живет в мире, где царит беззаконие.

Впрочем, я не говорю, что остальные айтишники бесполезны. Я свято верю (хоть и не могу доказать), что у PHPразработчиков есть душа. Я считаю, что оптимизирующие SELECTFROMWHERE люди делают полезную работу, хоть и единственное, что этим не выразишь — это матерные частушки. Не пойму почему, но я рад, что теоретики исследуют эквивалентность пятимерной машины Тьюринга и Эдварда РукиНожницы. И в большинстве случаев дизайнеры GUI не должны бросаться друг на друга с вилами, когда я кричу: «МОДАЛЬНЫХ ОКОН НЕТ! ЭТО СПАРТА!» Я — Статуя Свободы: признаю всех, будь они жалкими, уродливыми или любителями Haskell. Но когда ситуация накалится до предела, я хочу иметь под рукой людей «целевого назначения», которые в очках ночного виденья спустятся с вертолета и проведут секретную операцию для защиты моей свободы под музыку в стиле кантри. Системный программист способен на такие вещи и я вполне серьёзно могу прозвать такого человека «Гремучей Змеёй» или «Молотом Зевса». Но ни от кого еще я не слышал: «Эти полупрозрачные иконки действительно полупрозрачны! НЕ МОЛОТА ЗЕВСА ЛИ ЭТО РАБОТА?»

Вообще, последний пример я привёл от балды. Поверьте, я уважаю специалистов по человекокомпьютерному взаимодействию. Но когда ЧКВшники отлаживают свой код, это похоже на выставку картин или саммит ООН с перерывами на чай и шуточками на французском, а нефункциональные шарфы хоть и не обязательны, но поощряются. Когда код ЧКВшника не работает, проблема решается построением грандиозных теорий, связывающих Форму и Восприятие с вашими глубокими чувствами к овалам. И будут бурные дебаты о социальноэкономических последствиях Helvetica Light, и в какойто момент вам прийдется решить, являются шрифты с засечками дерзкой заявкой на современность или же тайно поддерживающим феодализм и невежество инструментом гегемонического гнета. Элегантней ли «обвестиинежнотапнуть», нежели «сжатьиперетащить»? Эти насущные проблемы не решатся сами по себе. Но после долгой отладки ЧКВкода в сердце всё еще теплится надежда и нет места злости; даже если вы волнуетесь, не лучше ли вместо выпадающего списка сделать radio button, список доживет до конца дня. А назавтра будет новый восход, восхитительно яркий, и он вдохновит вас на соединение полос прокрутки и щелчка левой кнопки мыши в печальном танце, что вы увековечите в сонете, вернувшися с покупками с базара.

В мире системных программистов всё иначе. Когда вы отлаживаете распределённую систему или ядро ОС, вы делаете это поковбойски. Вы сколачиваете команду черствых, непробиваемых, видевших смерть мужиков, выдаёте им несколько примитивных вещей вроде компаса, рюкзака и заточеной с одного конца палки и идёте в глушь с твёрдым намерением нарваться на неприятности, попутно пожёвывая табак. Вы — системный хакер, и должны быть готовы голыми руками убить убежавший поток, писать напрямую в сетевые порты с помощью telnet и замшелой копии RFC, подобранной вами в Ватикане, и совершать другие дикарские поступки, о которых не говорят вслух. Когда вы отлаживаете системный код, нет никаких споров о вкусных шрифтах и лучшей форме для квадрата, потому что это — Старый Завет, бесцветный и жестокий мир, и совсем не важно, узкий ваш Arial или жирный, когда в стране ад, чума и все гнут спину на царя. ЧКВшники находят баги после получения письма от психотерапевта. Системщики находят баги, просыпаясь в холодном поту и обнаруживая, что их первенец пропал, а на стене кровью написано «ETIMEDOUT».

Что есть отчаяние? Внемлите мне, ибо я познал его. Отчаяние — это когда вы отлаживаете драйвер ядра и смотрите в дамп памяти, а оттуда на вас смотрит указатель со значением 7. ДА НИ ОДНА АРХИТЕКТУРА НЕ ВЫРОВНЕНА НА 7. К тому же, 7 — ЭТО СЛИШКОМ МАЛО, И ТОЛЬКО ЗЛОВРЕДЫ ПЫТАЮТСЯ ДОСТУЧАТЬСЯ ПО ТАКИМ АДРЕСАМ. Неправильно адресованная память с малыми значениями указателя погубила десятилетия моей жизни. Хуже этого только правильно адресованная память с невозможно огромной длиной буфера. О да, когда в вечер пятницы вы производите «один мааахонький послееедненький» проход по логам и обнаруживаете правильно адресованную память с длиной буфера равной КОЛИЧЕСТВУ ЭЛЕКТРОНОВ ВО ВСЕЛЕННОЙ. Такое оставляет шрамы на сердце, ведь пагубность чтения 2^893 байт — это единственное, в чём сходятся коммунисты и единороссы. Чтото вроде «медицинское страхование — это, возможно, хорошо, а возможно и плохо, но попытки считать всю информацию Вселенной хреналлион раз и засунуть это в хреналлионмерный массив — тут уж извините…»

Несистемщикам не понять эту войну за кусочки счастья в мире систем. Ведь когда алгоритм машинного обучения принимает кота за слона, это и правда смешно. Можно распечатать картинку кота в костюме слона, добавить смешную подпись — и это развеселит пару не слишком обременённых интеллектом индивидов. А копии потом можно раздать на работе, радуясь тому, что всё, в общемто, в порядке. Ничего веселого при неправильно адресованной памяти распечатать не получится, потому что ваш компьютер умер, а принтеров в царстве мёртвых как бы и нет. Буфер невозможного размера — это еще хуже: он сидит за кулисами, не отсвечивая, и тихонько нашпиговывает состояние злом. Если чтение плохого адреса сжигает ваш дом единожды и полностью, то непомерные буферы забираются к вам через окно, подсыпают песок в кровать и зубную пасту и наблюдают, как вы постепенно осознаёте, что безумие овладело вашей жизнью. Ведь правда: обычный случай отлова безграничного буфера — это когда ваша программа работает, а потом вдруг пытается отобразить строку «Hello, World», но на выходе получается «#a[5]:3!» или любой другой синтаксически правильный Perlскрипт, и вы такие «КАКОГО МАМУ ЛЕШЕГО», а потом до вас доходит, что ваши обращения к памяти подобны Халку, услышавшему просьбу написать эссе на тему «Почему крушить плохо».

Продолжение в комментах.
Показать полностью
Отличная работа, все прочитано!