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