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