Люди с кодопрошлым 2: баги наносят ответный удар

от автора

Сергей вздохнул и упал в кресло. Кибигребаный тысяча двадцать четвертый прогон. ТЫСЯЧА ДВАДЦАТЬ ЧЕТВЕРТЫЙ. Е**ный стыд.

Сергей посмотрел на часы. Два часа ночи. Через пять часов у «Князя тьмы» закончится школа. Последним уроком у него алгебра. Он (или она?) неспешно соберет рюкзак, выйдет из класса, пройдет по коридору, выйдет на улицу, спустится в метро, сядет на сорок вторую линию и достанет из кармана свой Paranoid. Позор, позор джунглям! Тысяча двадцать четыре раза гребаный прогон.

Неприятности начались, когда позвонил агент Кузнецов из службы поддержки. «Слушай, старик», сказал он, «не хочу тебя расстраивать, но похоже в интеллигенте баг». Сперва Сергей просто не понял всего ужаса ситуации. Потом подумал, что это — шутка. Потом понял — не шутка. И дрожащим голосом спросил «Кому это г**но мамонта понадобилось?»

Г**но мамонта понадобилось некоему Князю Тьмы, учащемуся три миллиона четыреста сорок тысяч двести тридцать второй школы и довольно-таки перспективному объекту, в перспективе — приемнику. Сергей на собственной шкуре знал, что интель — мягко говоря не самая лучшая платформа для обучения. Динозавр — лучше. Что и заявил, в довольно категоричной форме Кузнецову.

Дальше выяснилась интересная вещь. Выяснилось, что Князь Тьмы раскопал в Архивусе одну статейку двенадцатого года. В этой статейке обнаружились такие вещи, что у самого Сергея глаза полезли на лоб. Немудрено, что Князь Тьмы статейкой страшно заинтересовался (Сергею, прекрасно знавшему цену архитектурным извратам, и самому после прочтения статейки пришло на ум несколько полезных идей). Разумеется, Князь Тьмы немедленно полез воплощать свои программистские фантазии в жизнь. В эмуляторе «Интеллигент». Который предмет злосчастной статейки — баг загрузки состояния задачи не эмулировал и эмулировать не мог.

Короче говоря, Сергею лично был брошен вызов. Сергей его принял, внутренне дрожа от страха. Интеллигента писал ушедший на покой три года назад Палыч, программист замечательный во всех отношениях, кроме любви к Unix, C и микроядрам. После его ухода, Сергей, поминая его незлым тихим словом, переписал заново под свою собственную помесь MVS, VM/360, MTS, VAX/VMS, RSX-11, RSTS-11, KeyKOS, TOPS-20, ITS, POP-2, Fort, Python, COBOL, BCPL и Algol-60 компилятор, ядро, менеджер нагрузки, библиотеки, сервер безопасности, сервер базы данных, внутрицодовую сеть, JRE, Dalvik и CLI и написал для своих нужд System-level runtime к S/360-67, S/370, ESAME, PDP-8/11, VAX и GE-600. Но чувствовал, что монстр IA-eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee ему не под силам. Да и потом — не любил Сергей Legacy Support девяностых-нулевых. Работает — и ладно.

И все-таки, challenge was accepted. Сергей надеялся управиться за две недели — в конце концов, нужно было всего лишь добавить пару проверок. Но во-первых выяснилось, что Интеллигент представляет собой сто мегабайт исходников на C с использованием Makefile. Во-вторых, вся логика программы противилась корректной эмуляции. По идее, надо было все выбросить и написать заново, вот только пока Сергей будет писать все заново, Князь Тьмы решит что программирование — профессия прошлого века и станет грузчиком. Поэтому, пришлось копаться в чужом коде (хвала Великому Червю, хоть хорошо оформленном). Сергей надеялся, что отловил все баги и исправил большую часть. Оставалась, собственно, всего одна функция (вернее, Функция), которая в полном соответствии с законами бутерброда отняла у него двадцать часов рабочего времени и двадцать лет пенсии, и, судя по всему, собиралась отнять еще столько же.

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

Зазвонил телефон.

— Да…

— Алло, привет Сережа, это я.

— Здравствуй, мама! Как дела?

— У меня все ничего. А у тебя как? Чем занимаешься?

— Как у вас, математиков, говорят? Сексом с тремя неизвестными?

— А ну, тогда не буду тебя отвлекать.

— Нет уж, лучше отвлеки, а то я завис совсем.

Они немного поговорили, потом мама вспомнила про пирог в печке и Сергей снова остался один на один с Функцией. Некоторое время он потупил в код, а потом телефон зазвонил опять.

— Да…

— Сергей, это Иванов. Сейчас привезут восьмерку.

— Уху, а чего в три часа ночи?

— Да ну их совсем… Скажи спасибо, что вообще привезли. Кстати как у тебя дела с…

— Плохо.

— Все со страницами развлекаешься?

— Нет, теперь с эмиттером.

— Не переживай, рано или поздно — взлетит. Ну извини, я побежал. Давай, удачи.

— Давай.

«Восьмерка — это хорошо», подумал Сергей, «а то уже тесновато становиться». Он спустился из машинного зала в комнату отдыха и разбудил Петрова.

— Чего, уже утро? — прохрипел Петров.

— Нет, восьмерку везут.

— Нашли время, однако. Кстати, как у тебя…

— Плохо.

— Ну ничего, что-нибудь придумаешь.

Петров встал, накинул куртку, натянул ботинки и спустился к выходу. Сергей вернулся в машинный зал. Некоторое время он тупил в код, попробовал пару-тройку вариантов (доведя количество прогонов до тысяча пятидесяти), а потом прислушался к разговору двух грузчиков за стойками, протаскивающих черный угловатый ящик восьмерки по коридору. Грузчики, видимо бывшие «кодеры», ныли о потерянной молодости, завидовали черной завистью Демиургу, спорили что лучше: NodeJS или PHP, в общем жаловались на жизнь.

«Три года вёрстки и js под все браузеры… всего человек 10 программистов бывших, и они работают тут только по той причине, что с местным начальником раньше знакомы были, как и я впрочем… курилке и начинают рассказывать, как чей-то телефон сделал сайт в 14 раз быстрее бригады программистов и вообще без ошибок…»

Тут Сергей подпернулся. И эти, хм, граждане, называют себя программистами. Телефон, е-мое. Сергей безнадежно посмотрел на «телефон», а на самом деле — «Демиурга», пятидесятивершковый шкаф в дальнем конце комнаты. Несмотря на якобы аэрогельевую изоляцию, на стенке проступал конденсат. Внутри шкафа сновали кубиты, перебирая чьи-то научные статьи, резюме, сайты о цветочках, эльфах и эллиптических кривых. Интеллект шкафа был всемогущ и всеведущ, у него была только одна слабость: он не мог сделать работу за Сергея. «Точно так же, как человек (сейчас это уже доказано) не может постигнуть природу своего сознания, не может спроектировать человека,» подумал Сергей, «искусственный интеллект неспособен понять архитектуру Фон Неймана, хоть ты об него бейся головой. Что-то меня на философию потянуло.» В свое время Сергей убил кучу времени пытаясь преодолеть Барьер Гёделя-Эшера-Баха, игнорируя любые математические доказательства, убеждения однокурсников и вздохи учителей. Потом он понял, что занимается квадратурщиной. И слава Великому Червю — значит, у Сергея всегда будет кусок хлеба с маслом.

Из коридора раздался зычный голос Петрова: «Долго вы будете копошиться?» «Четыре пролета осталось!» — ответил грузчик и продолжил вполголоса: «А ее сервер — это просто ее телефон, который лежит у нее всегда в правом кармане».
Сергей прыснул и скатился под стол, ударившись макушкой об тот самый сервер, занимавший, между прочим, целую стойку. Полежал некоторое время, пытаясь унять смех. А потом внезапно Понял.

Сергей медленно и осторожно встал, пододвинулся к клавиатуре, пробарабанил по клавишам и нажал «Отправить задание». Потом сел, закрыв лицо ладонями. Негромко повторил число e до двенадцатого знака, как учила в таких случаях мама: «Двасемьодинвосемьдвавосемьодинвосемьдвавосемьчетырепятьдевять…» Вдохнул и выдохнул, повернулся и открыл глаза. Полуметровый светофор на стене, подарок Дизвейта, ярко, весело, на всю комнату, светил зеленым.

ссылка на оригинал статьи http://habrahabr.ru/post/202648/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *