Выбрать главу

– Так, стоп, – я тоже постучал по столу и, поймав себя на подражательстве, отдёрнул руку. – Пойду покурю, попробую понять, насколько это вообще реально. Надо вспомнить, что там в каком состоянии.

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

– О’кей, – я протянул руку. – Поехали.

Вернувшись, мы с ходу взялись за дело, я переписал Ариэлю нужные компоненты, настроил симулятор, подключил графическую визуализацию, наскоро объясняя, что к чему. Получилась вполне сносная виртуальная лаборатория. Шеф задал пару уточняющих вопросов, которые меня обнадёжили. Алгоритмика совсем не его стихия, и я опасался, что толку от этой затеи будет мало.

Мы расставили приоритеты, и Ариэль отправился в кабинет. Я нервно перебирал в памяти разрозненные фрагменты. По сути, подобные ситуации и были самой интересной частью моей работы. То, чем я занимаюсь, в широком смысле, даже не алгоритмика, а – proof of concept или feasibility, то есть доказательство концептуальной осуществимости. Моя задача – всеми возможными правдами и неправдами слепить прототип. Линейное развитие тут неприемлемо – ни времени, ни финансирования на последовательную разработку, как правило, не имеется, и направление часто выбирается по наитию.

Но одна ночь на эквизишн – это не просто в обрез, а катастрофически недостаточно. На голой интуиции не выехать, нам должно ещё крупно повезти.

– Так, я, кажется, закончил. – Заработавшись, я не заметил, как вернулся Ариэль. – Вот список проблематичных случаев, – он протянул листок, заполненный ровными столбцами.

– Отлично, сейчас гляну. Открой директорию, скину новую версию.

Ариэль удалился, а я взялся за баги. Если наш многострадальный эквизишн действительно заработает, это будет невероятное чудо. Надо отдать должное Тиму, выбравшему важный, но, вместе с тем, безопасный участок. Располагая достаточным количеством времени, можно спокойно разобраться и всё наладить без наитий и риска, сопряжённого с разработкой самого алгоритма. Расчётливый ход осторожного игрока. Вот только как провернуть то же самое до рассвета?..

Сражение с багами было прервано телефонным звонком:

– Привет, – приглушённо донёсся Ирин голос, – ты вернулся?

Я бросил взгляд на часы и осознал, что незаметно пролетело больше четырёх часов, время – начало первого, а конца-края даже не видно.

– Ир, ты чего не спишь? Всё в порядке?

– Да… – она помолчала. – Всё нормально. Ты уже дома?

– Не, – пробормотал я, продолжая таращиться в экран, – я это…

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

– Илья, что случилось? Ты где?

– Да-да, Ир, я на работе, – спохватился я. – У нас цейтнот… долгая история. В общем, завтра расскажу.

– Мы завтра увидимся?

– Конечно. Я позвоню.

Ариэль разделался с проверками и в начале пятого предложил съездить за пиццей. Есть не хотелось, но я сразу согласился. Оставшись без дела, он бесцельно метался по офису, понукал меня и всё больше раздражал.

К утру эквизишн работает, но в пяти процентах присутствуют шумы, полностью перекрывающие сигнал, и сколько не бьюсь, никак не удаётся систематизировать ни условия их возникновения, ни их характеристику. Обнаружив закономерность, я бы мог если не решить проблему, то по крайней мере научиться её избегать. Радует лишь одно – подкрепившись, Ариэль отправился паковать аппаратуру и больше не докучает.

– Хватит, пора заканчивать, – выпаливает Ариэль, ворвавшись в комнату. – До вылета полтора часа.

Я заворожённо пялюсь в код, судорожно щёлкаю функции и процедуры.

– Брось это. Помоги мне, я один не справлюсь.

– Ариэль, – я на миг оглядываюсь, – мы не можем так ехать.

– Пять процентов – это ерунда, – настаивает он. – Если сейчас же не начнём, то попросту не успеем.

– Пять процентов – не ерунда. Мне не удаётся локализовать проблему, ошибки появляются рандомно.

– И что? Нас вполне устроит девяностопятипроцентный успех. Всё, Илья, время истекло.

– Слушай! – я вскакиваю, теряя терпение. – Ты понимаешь, что это значит? Пока мы не выясним, что происходит, невозможно ничего гарантировать. Я же говорю – рандомные ошибки…