- Ты у меня заработаешь, - приговаривал Сеня, быстро стуча по кнопочками на клавиатуре. - Ты у меня обязательно заработаешь.
На мониторе сменяли друг друга окна отладчика, пошагового компилятора, среды разработки ПО, всплывали на миг чёрно-белые текстовые окошки ДОС-исполнителя, ассемблера, трассировщика и тут же пропадали, противно пискнув. Но ничего не помогало. Программа не хотела работать правильно.
Сеня бился над кодом вторую неделю, вычищал и отлаживал, прогонял на тестах с покрытием, граничных условий, перекрёстных данных, всплывал методом разбиения на модули и агрегировал фронтальным способом. Ничего не помогало. Ежевечерняя сборка на полном прогоне тестов давала ошибку. И всегда в другом месте.
Плавающая ошибка - страшный сон любого программиста-разработчика. Единственным средством борьбы с ней было полное переписывание всего кода, а это месяцы и месяцы кропотливого труда. Сеня поёжился. "Ну уж нет, проще уволиться. - подумал он. - Другая фирма, такая же маленькая, с радостью возьмёт опытного разработчика к себе. А эту загадку компьютерного мира придётся бросить."
Сеня вылез из-за стола, накинул куртку и вышел проветрится.
- Здорово! - окликнул его на улице лысоватый дядька далеко за сорок.
- Здравствуйте, Николай Иваныч, - поприветствовал Сеня соседа по подъезду.
- Как, друг-Семён, дела у молодых программистов-надомников? - полюбопытствовал сосед.
- Фигово, - честно признался Сеня.
- Девушки не дают, да? - подмигнул сосед.
- Да нет, Николай Иваныч, по работе.
- Компьютер не даёт, хе-хе?
Сеня улыбнулся. Вот умеет Николай Иваныч поднять настроение. Вроде всё хреново, и впереди только хуже, а встретишь этого толстяка-добряка, пять минут, и жизнь, оказывается, не так уж и плоха.
- Компьютер даёт, да не то. Ошибки, - объяснил как мог понятнее Сеня. Он знал, что сосед отъявленный гуманитарий, то ли историк, то ли этнограф в Институте Африки, короче, в компьютерах ни бум-бум.
- Это бывает. Ничего, исправишь, - обнадёжил сосед.
- Хотелось бы, - Сеня вздохнул.
Два дня спустя в том же дворе Сеня жался на лавочке, уныло пиная раскисшую землю. Ничего не помогало, программа наотрез отказывалась работать. Мысли о переходе на другую работу обретали чёткость реального плана.
Из подъезда выкатился Николай Иванович, на ходу застёгивая пальтишко и наматывая шарф. Старомодный портфель из кожзаменителя сосед удерживал подмышкой.
- Здрасьте, Николай Иваныч, - поприветствовал спешащего гуманитария технарь-неудачник.
- А, друг-Семён, здорово! - откликнулся сосед. - Как жизнь молодых программистов-надомников? Охмуряем девчат, а?
- Охмуряем, - согласился Сеня и пнул ногой кусок лежалого снега.
- Врёшь, друг-Семён, врёшь. Это нехорошо, - Николай Иванович справился с одеждой, но вместо того, чтобы упрыгать по своим делам, взглянул на большие наручные часы, решительно поддёрнул брюки и плюхнулся на скамейке рядом с Сеней. - Рассказывай, друг-Семён, какие у тебя печали.
Сеня попытался как можно доходчивее объяснить специалисту по африканским культурам, что такое плавающая ошибка, и как трудно её найти, но видя полное непонимание собеседника, запнулся и умолк.
- Капризничает твоя программа, - понял по-своему Николай Иванович.
- Ну, можно и так сказать, - не стал спорить Сеня.
- Так-так, - задумчиво произнёс Николай Иванович. - Так-так.
Сеня поднялся, собираясь попрощаться и идти домой, но сосед жестом остановил его.
- Погоди, друг-Семён. Есть у меня одна мысль, как тебе помочь, - этнограф помолчал и продолжил. - Скажи-ка, а есть ли в твоей программе кусочек, который отвечает за... передачу полезных данных между разными частями программы?
Сеня задумался: "Что за странный вопрос. Все данные полезны. Или нет? Может, диспетчер сообщений?"
- Вроде есть такой, - неуверенно ответил программист.
- А есть кусочек, который поступающие данные обеззараживает?
Тут Сеня не сомневался.
- Конечно, есть.
- Отлично, друг-Семён, - обрадовался этнограф. - Ты бы мне эти кусочки распечатал.
- Сейчас?
- А чего тянуть? Только ты их пометь. На бактерицидном напиши "С", а на транспортном "К", идёт?
- Ладно, - согласился Сеня. А про себя подумал: "Может, у них в институте знакомые компьютерщики есть? Вдруг помогут."
День прошёл, ночь прошла.
Ранним утром раздался звонок в дверь. Невыспавшийся Сеня хмуро приветствовал соседа. Тот, напротив, был в приподнятом настроении.
- Ну, друг-Семён, пляши. Удалось твою задачку решить.
- Да? - вежливо поинтересовался Сеня.
- Да! Признаюсь, было непросто. Я-то в этих ваших компьютерах мало что смыслю. Но гостит у нас в институте один ямайский товарищ, большой спец по таким вопросам. Наколдовал он тебе решение. Вот, держи, - и Николай Иванович вытащил из пакета белую коробку, размером как из-под обуви.
"Что там может быть? - удивился Сеня. - Жёсткий диск? Стопка дивидишек?" Но он не угадал. В коробке лежала детская игрушка.
- Спасибо, Николай Иваныч, - поблагодарил доброхота Сеня и хотел закрыть дверь, но сосед решительно отстранил Сеню в сторону и прошёл в комнату.
- Нет, друг-Семён, ты не понимаешь. Показывай свою программу, а я научу тебя, как её исправить.
***
На предварительных и финальных тестах программа вела себя идеально.
Владелец фирмы, где работал Сеня, принимал поздравления от заказчиков, гордо восседая за длинным столом переговоров. На брифинге был и Сеня, сидел с краю, молчал, пропуская мимо ушей все славословия компьютерных профанов. И лишь когда переговоры подошли к концу, и обрадованные заказчики положили дистрибутив программы в кейс, что-то толкнуло Сеню к странному признанию.
Подойдя к одному из заказчиков вплотную, Сеня вполголоса сказал:
- Программа иногда, очень-очень редко, но может сбойнуть.
- Вот как?
- Нет-нет, не волнуйтесь, это очень, ну очень-очень маловероятно. Но на всякий случай, если такое произойдёт, просто ткните чем-нибудь острым вот в это, - сказал Сеня, протягивая заказчику тряпичную куклу-вуду.
Предыдущий рассказ серии здесь http://фантастика.рф/публикации/рассказы/лекарство-от-жизни.html
Похожие статьи:
Рассказы → Лекарство от жизни
Рассказы → В завязке (миниатюра)
Рассказы → Посылка (миниатюра)
Рассказы → Два соседа