– Да ёпт, какого рожна! – Я сплюнул, осознав, что уже загорелся авантюрной идеей, и ломаюсь лишь из чистого упрямства.
Ощутив на лице вечерний летний ветер, полный неясных будоражащих запахов, я вздохнул полной грудью, сделал две коротких затяжки, отшвырнул сигарету и направился обратно.
– OK, – я протянул руку. – Let's do it.
Вернувшись, мы с ходу взялись за дело. Ариэль принёс лэптоп, и я переписал нужные компоненты. Настроил симулятор, подключил графическую визуализацию, наскоро объясняя, что к чему. Получилась вполне сносная виртуальная лаборатория. Шеф задал пару уточняющих вопросов, весьма меня обнадёживших. Алгоритмика совсем не его стихия, и я опасался, что толку от этой затеи будет мало, а нюансы кода в столь сумбурном изложении окажутся для него дремучим лесом.
Мы расставили приоритеты, и Ариэль отправился в кабинет. Я вышел на галерею, нервно перебирая в памяти разрозненные фрагменты. По сути, моя работа всегда заключалась в том, чтобы генерировать требуемое решение вопреки острой нехватке ресурсов и, зачастую, знаний. То, чем я занимаюсь, в широком смысле, даже не алгоритмика, а – proof of concept или feasibility, то есть доказательство концептуальной осуществимости. Моя задача – всеми возможными правдами и неправдами слепить прототип. Линейное развитие тут неприемлемо – ни времени, ни финансирования на последовательную разработку, как правило, не имеется, и направление часто выбирается по наитию. Так что к таким раскладам мне не привыкать. Однако одной ночи на эквизишн – это не просто в обрез, а катастрофически недостаточно. Голой интуиции будет мало, нам должно ещё крайне повезти. Но нежданно наладившееся взаимопонимание с Ариэлем и, главное, масштаб, заведомая невыполнимость и значимость происходящего, подогревали самолюбие, вселяя пьянящую радость предстоящей борьбы.
– Так, я, кажется, закончил, – заработавшись, я не заметил, как вернулся Ариэль. – Вот список проблематичных случаев.
Он протянул листок, заполненный ровными столбцами.
– Отлично, сейчас гляну. Открой директорию, скину новую версию.
Ариэль удалился, а я взялся за баги. Если наш многострадальный эквизишн действительно заработает, это будет невероятное чудо. Надо отдать должное Тиму, сделавшему выбор с умом, выпросив ключевой, но, вместе с тем, безопасный участок. Располагая достаточным количеством времени, можно спокойно разобраться и всё наладить без риска и зыбких наитий, сопряжённых с разработкой самого алгоритма. Расчётливый ход осторожного игрока. Вот только как провернуть то же самое до рассвета…
Поток праздных раздумий был прерван телефонным звонком:
– Привет, – приглушённо донёсся Ирин голос, – Ты вернулся?
Я бросил взгляд на часы и осознал, что незаметно пролетело больше четырёх часов, время – начало первого, а конца-края даже не видно.
– Привет Ир, ты чего не спишь-то? Всё в порядке?
– Да… – она помолчала. – Всё нормально. Ты уже дома?
– Не, – пробормотал я, продолжая таращиться в экран, – Я это…
Тут обнаружился очередной баг, я исправил, запустил и стал сверяться с показаниями осциллографа.
– Илья, что случилось? Ты где?
– Да-да, Ира, милая, я на работе, – спохватился я. – У нас цейтнот… В общем, это долгая история. Завтра расскажу.
Оторваться от бегущих цифр было выше моих сил.
– С тобой точно всё в нормально?
– Да, всё пучком, Арик теперь у меня на побегушках. Ладно, Ир, sorry, я по уши в работе.
– Хорошо, не буду мешать. Мы завтра увидимся?
– Конечно. Я позвоню.
Ариэль разделался с проверками и в начале пятого предложил съездить привезти пиццу. Есть не хотелось, но, оставшись без дела, он сублимировал нервозность в бессмысленное мельтешение, понукания и крайне содержательные вопросы о наших продвижениях. Пусть лучше сгоняет, решил я.
К утру эквизишн работает, но в пяти процентах присутствуют шумы, полностью перекрывающие сигнал, и сколько не бьюсь, никак не удаётся ни систематизировать условия их возникновения, ни их характеристику. Обнаружив закономерность, я смог бы если не устранить первопричину, то хотя бы научиться избегать проблематичных случаев. Радует лишь одно – начальник не докучает. Подкрепившись, он отправился паковать аппаратуру, и это занятие поглотило его целиком.
– Хватит, пора заканчивать, – выпаливает Ариэль, ворвавшись в комнату. – До вылета полтора часа.
Я заворожённо пялюсь в код, судорожно щёлкаю функции и процедуры, и уже ничего не вижу и не соображаю.
– Брось это. Помоги мне, я один не справлюсь.
– Ариэль, – я на миг оглядываюсь, – мы не можем так ехать.
– Илья, пять процентов – это ерунда, – настаивает он. – Если сейчас же не начнём, то попросту не успеем.
– Пять процентов – не ерунда. Мне не удаётся локализовать проблему, ошибки появляются рандомно.
– И что? Нас вполне устроит девяностопяти процентный успех. Всё, Илья, время истекло.
– Слушай! – я вскакиваю, теряя терпение. – Ты понимаешь, что это значит? Пока мы не выясним, что происходит, невозможно ничего гарантировать. Я же говорю – рандомные ошибки…
Мы стоим друг против друга в тесном проходе между столом, загромождённым аппаратурой и гипсовой перегородкой.
– Пять процентов – это…
– Ариэль, это не пять процентов! Это ран-дом-ное яв-ле-ни-е! Сейчас пять, а при других условиях, возможно, восемьдесят пять! Или сто!
– Илья, мы поедем как есть, пора действовать, либо…