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