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