Да, я очень хочу. Может, я даже сам куплю ей книгу Тафти. Заверну в коричневую бумагу и подарю. Стоп… я не сошел с ума? Книга-то дорогая. Может, есть издание попроще, в мягкой обложке. Можно купить и на «Амазоне». Хотя это глупо, я же работаю в книжном. (А «Амазон» быстро доставит?)
Кэт все еще ждет ответа.
– Конечно, – пищу я.
Она записывает свой адрес на открытке Пенумбры:
– А купоном в следующий раз воспользуюсь, – обещает она, взмахнув телефоном. – Пока.
Как только она уходит, я открываю свою гипертаргетированную рекламную кампанию. Я там что, случайно отметил пункт «красивая»? (А «одинокая»?) Я вообще могу себе это позволить? Чисто в плане маркетинга это был провал: я не продал ни одной книжки, ни дорогой, ни дешевой. Более того, я должен доллар: Кэт написала адрес на открытке. Но особых поводов для беспокойства нет: из моего первоначального бюджета в одиннадцать баксов «Гугл» вычел всего семнадцать центов. За единственный показ рекламы – единственный и безупречный, который состоялся ровно двадцать три минуты назад.
Позднее, когда час ночной изоляции и вдыхание паров лигнина отрезвляют меня, я делаю две вещи.
Во-первых, пишу Кэт и спрашиваю, не хочет ли она пообедать завтра, то есть в субботу. Я иногда бываю трусоват, но верю, что железо надо ковать, пока горячо.
А во-вторых, я гуглю «визуализацию временнóго ряда» и начинаю работу над новой версией своей модели в надежде произвести на Кэт впечатление своим прототипом. Я люблю девушек, на которых можно произвести впечатление прототипом.
Я задумал сделать анимацию, чтобы данные о том, как брали книги, отображались в динамике, а не одновременно. Первым делом я переписываю побольше имен, названий и сведений о времени из книги учета в ноутбук. А потом начинаю свой хакатон.
Не все программирование одинаково. В обычных письменных языках есть разные ритмы и идиомы, так? В языках программирования тоже. Язык си строится на жестком императиве – примерно так и говорят компьютеры. Лисп похож на одно длинное закрученное предложение с кучей придаточных – до того длинное, что забываешь, о чем, собственно, шла речь. Про эрланг все понятно из названия: скандинавский и эксцентричный. Ни на одном из них я программировать не умею, потому что они слишком трудные.
А вот руби, мой любимый язык со времен «Нового бейгла», придумал японский программист-весельчак, поэтому руби читается как понятные дружелюбные стихи. Билли Коллинз[9] переоделся Биллом Гейтсом.
Хотя, разумеется, язык программирования придуман не для того, чтобы на нем просто читать, – надо еще и писать. Ты пишешь – он на тебя работает. И вот тут руби, по-моему, просто звезда.
Это как готовка. Только ты не следуешь рецепту шаг за шагом в надежде на лучшее, а можешь в любой момент вынимать ингредиенты из кастрюли и класть обратно. Можно посолить, попробовать, покачать головой и убрать лишнюю соль. Можно взять отдельно идеальную хрустящую корочку, а внутрь добавить все, что захочешь. Это уже не линейный процесс, который заканчивается успехом или (как правило, у меня) огорчительным провалом. Это кольцо, завитушка или каракуля. Игра.
Итак, добавив соли и немного масла, я к двум часам ночи получаю рабочий прототип новой визуализации. И тут же замечаю нечто странное: разноцветные огни повторяют друг друга.
Визуализация показывает, что Тиндал берет книгу с самого верха второго ряда. А через месяц Лапин берет книгу с той же полки. Через пять недель оттуда же забирает книжку и Имберт, а Тиндал тем временем уже возвращает ту и берет другую книгу снизу первого ряда. Он на шаг впереди всех.
Раньше я этой закономерности не видел, потому что биты информации разнесены в пространстве и времени, – это как если бы в музыке проходило по три часа между каждой нотой и все они игрались в разных октавах. Но когда я вывел информацию на экран и ускорил, все стало очевидно. Эти люди играют одну и ту же мелодию, или танцуют один и тот же танец, или – ну да – решают одну и ту же головоломку.
Звенит колокольчик. Это Имберт: невысокий, крепкий, черная щетина и кепка-восьмиклинка набекрень. Он кладет на прилавок то, что сдает (громадную книжищу в красном переплете). Я быстренько прокручиваю визуализацию, чтобы найти место Имберта в общем узоре. На экране загорается оранжевая лампочка, и не успевает он открыть рот, я знаю, что он попросит книгу из середины второго ряда. Это будет…
– «Прохоров», – хрипит Имберт. – «Прохоров» следующий.
Я лезу по лестнице, и на полпути у меня начинает кругом идти голова. Что тут происходит-то? В этот раз я не делаю никаких отчаянных маневров – мне бы на ногах устоять. Я беру с полки тонкую книжку в черном переплете. «Прохоров».
Имберт подает карточку – 6MXH2I – и забирает свою книгу. Звякает колокольчик, и я снова остаюсь один.
Я фиксирую обмен в книге учета, упоминая в том числе кепку Имберта и тот факт, что изо рта у него пахло чесноком. А потом пишу для неизвестного будущего работника и, может, для того, чтобы доказать самому себе, что это все реально: