реклама
Бургер менюБургер меню

Робин Слоун – Круглосуточный книжный мистера Пенумбры (страница 10)

18

Ой, да, девушка с каштановыми волосами до подбородка и в красной футболке с оттиснутым на ней горчично-желтым словом «Шмяк», да, вообще-то мы открыты.

— Безусловно, — говорю я. — Можете войти. Мы открыты всегда.

— Я тут ждала автобус, и мне пришло сообщение — кажется, я получила купон?

Она проходит прямиком к стойке, протягивая мне телефон, и там на экранчике моя гугловская реклама. Супертаргетированная рекламная кампания для местных — я забыл о ней, а она все идет, и вот кого-то нашла. И цифровой купон, нарисованный мной, вот он, поглядывает с поцарапанного экрана ее смартфона. У нее шикарные ногти.

— Да! — подтверждаю я. — И отличный купон. Самый лучший!

Я говорю слишком громко. Она сейчас развернется и уйдет. Непостижимые рекламные алгоритмы Гугла привели ко мне девчонку-суперочаровашку, а я понятия не имею, что мне с ней делать. Она крутит головой, оглядывая магазин. Как будто с недоверием.

От таких мелочей зависит история. Разница в тридцать градусов, и моя история окончилась бы прямо здесь. Но угол наклона моего ноута ровно таков, а на экране трехмерная модель магазина бешено вращается в двух плоскостях, как звездолет, кувыркающийся в пустыне космоса, и девушка бросает на него взгляд, и…

— Что это? — спрашивает она, подняв бровь.

Прекрасную темную бровь.

Ага, теперь я должен все сделать как надо. Не показаться конченным ботаном.

— Ну, это модель вот этого магазина, и тут видно, какие книги можно…

У девушки загораются глаза:

— Визуализация данных!

Недоверия как не бывало. Она чем-то внезапно довольна.

— Точно, — подтверждаю я. — Именно она. Вот, глядите.

Двинувшись навстречу друг другу, мы встречаемся на торце стойки, и я показываю 3D-книжный, который по-прежнему исчезает, если слишком раскрутится. Она наклоняется к экрану.

— Можно посмотреть исходный код?

Если злоба Эрика удивляла, то любопытство этой гостьи просто изумляет.

— Конечно, — отвечаю я и тасую темные окошки, пока экран не заполняется чистым Ruby, пестрящим красными, золотыми и зелеными фразами.

— Этим я занимаюсь на работе, — говорит девушка, нависая над экраном и вглядываясь в код. — Визуалом. Не против?

Она показывает на клавиатуру. Ха, нет, прекрасная ночная хакерша, я не против.

Моя лимбическая система настроена на определенный (очень низкий) уровень контактов с людьми (женщинами). И оттого что она стоит рядом и слегка касается меня локтем, я чувствую себя практически пьяным. Я пытаюсь продумать дальнейшие действия. Я посоветую ей «Визуальное отображение количественных характеристик» Эдварда Тафти — я ее видел на полке.

Здоровенная.

Девица быстро прокручивает мой код, а мне немного неловко, поскольку там внутри масса комментов типа «Вот так, блин!» или «давай, железяка, делай что велено».

— Великолепно, — говорит она, улыбаясь. — А вы, должно быть, Клэй?

Она это увидела в коде — там есть алгоритм под названием «клэй_молодчина». Наверное, такие бывают у каждого программиста.

— А я Кэт, — представляется она. — Кажется, я нашла, где сбой. Хотите, покажу?

Я колупался не один час, а эта девчушка — Кэт — нашла баг в моей модели за пять минут. Она гений. Объясняя мне процесс отладки, показывает ход своих рассуждений, быстрых и уверенных. И потом — цок, цок — глюк исправлен.

— Прости, я захапала, — говорит она, поворачивая ноут ко мне.

Убирает прядь волос за ухо, выпрямляется и заявляет с оперетточной серьезностью:

— Ну, Клэй, и зачем же ты ваяешь модель этого магазина?

На этих словах ее взгляд убегает по стеллажам к самому потолку.

Я не знаю, стоит ли быть с ней откровенным насчет полнейшей странности этого заведения. «Привет, рад познакомиться, я продаю старым чудакам книги, которые невозможно прочесть — не хотите со мной поужинать?» (Внезапно меня пронизывает уверенность, что один из этих чудаков вот-вот ввалится в двери. Прошу вас, Тиндэлл, Федоров, все остальные: сегодня не выходите из дому. Не бросайте чтения.)

Я захожу с другой стороны:

— Это своего рода исторический сюжет, — говорю я. — Этот магазин работает уже почти сто лет. Думаю, он старейший в городе — а то и на всем Западном побережье.

— Занятно, — говорит она. — Гугл по сравнению с этим просто дитя.

Вот и объяснение: девчушка из Гугла. Так что она и взаправду гений. А еще у нее мило обколот край зуба.

— Люблю данные такого типа, — она показывает подбородком в сторону ноута. — Данные о реальном мире. Старые данные.

В этой девчонке есть искра жизни. Это мой главный критерий отсева для новых знакомцев (девушек и не только) и самый лучший комплимент, какой я только могу сказать. Я много раз пробовал вычислить, что зажигает эту искру — какой букет условий должен сложиться в холодном черном космосе, чтобы возникла звезда. Я знаю, что дело главным образом в лице — и это не только глаза, но и брови, щеки, рот и микромышцы, соединяющие это все вместе.

У Кэт они такие симпатичные.

Она спрашивает:

— А ты пробовал написать визуализацию с повременной динамикой?

— Нет пока, не совсем, нет.

На самом деле я даже не знаю, что это такое.

— Мы в Гугле пишем ее для поисковых логов, — продолжает Кэт. — Это клево: ты видишь, как новые идеи вспыхивают и разбегаются по миру, будто маленькие эпидемии. А потом все выгорает за неделю.

Все это кажется мне очень интересным, но прежде всего потому, что мне очень интересна эта девушка.

Телефон Кэт бодро пикает, и она смотрит на экран.

— Ой, — говорит она. — Мой автобус.

Я проклинаю городской транспорт Сан-Франциско за внезапную пунктуальность.

— Я могу показать тебе эти штуки с временной визуализацией, — предлагает Кэт. — Хочешь, увидимся как-нибудь?

Ой, вообще-то да, хочу. Может быть, я осмелею и куплю ей Тафти. Я принесу его завернутым в коричневую бумагу. Погодите — а это не подозрительно? Книжка-то дорогая. Может, есть издание попроще, в мягкой обложке. Можно глянуть на Амазоне. Вот нелепость, я ведь в книжном работаю. (Может ли Амазон срочно доставить заказ?)

Кэт ждет моего ответа.

— Конечно, — скриплю я.

Она пишет свой мейл на одной из открыток Пенумбры: katpotente@, естественно, gmail.com.

— Купон сэкономлю до другого раза, — она машет телефоном.

— Пока.

Едва она исчезает, я лезу в настройки своей супертаргетированной кампании. Не выставил ли я там нечаянно галочку в графе «красавица»? (А что насчет графы «не замужем»?) Могу ли я позволить себе такие запросы? В чисто маркетинговом смысле моя кампания провалилась: я не продал ни одной книги: ни дорогой, ни вообще какой-либо. Более того, я влетел на доллар, из-за подписанной открытки. Но тревожиться не о чем: из моего исходного бюджета в одиннадцать баксов Гугл удержал только семнадцать центов. Взамен я получил единственный показ — единственный идеальный показ, — случившийся ровно двадцать три минуты назад.

Позже, когда час ночного одиночества и вдыхания лигнина меня немного отрезвляет, я совершаю два действия.

Первое: я пишу Кэт и спрашиваю, как она насчет пообедать завтра, то есть в субботу. Может, я немного трусоват, но ковать я стараюсь, пока горячо.

Второе: я гуглю повременную динамику и начинаю работать над новой версией модели, надеясь, что, может быть, прототип впечатлит Кэт. Меня не на шутку увлекает тот тип девушек, которых можно впечатлить прототипом.

Идея в том, чтобы не просто показать, какие книги взяты сейчас, а анимацией изобразить, какие и когда вообще брались. Сначала я перекидываю дополнительные имена, названия и даты из моего журнала в ноут. Затем приступаю к работе.

Программирование программированию рознь. У обычных письменных языков разные ритмы и идиомы, так? Ну вот, и в языках программирования то же самое. Язык под названием C весь состоит из жестких императивов, это практически голый машинный код. Язык под названием Lisp — это одно длинное, петляющее предложение, напичканное придаточными, такое бесконечное, что к концу обычно забываешь, о чем оно вообще-то было. Язык Erlang похож на свое название: эксцентричный и скандинавский. Ни на одном из этих языков я программировать не умею, они слишком трудные.

А вот Ruby, мой рабочий язык со времен «НовоБублика», разработал жизнерадостный японец, и он читается как звучные и понятные стихи. Билли Коллинз[9] в роли Билла Гейтса.

Но, разумеется, смысл языка программирования в том, что ты его не просто читаешь: ты на нем еще и пишешь. Ты заставляешь его делать какие-то вещи. И вот тут-то, по-моему, Ruby восхитителен.

Представьте, что вы готовите еду. Но вам не нужно шаг за шагом следовать рецепту, уповая на лучшее, а можно добавлять и вынимать ингредиенты из котла в любой момент. Посолил, попробовал, покачал головой и достал соль обратно. Можно испечь идеальную хрустящую корку отдельно, а уж потом добавить внутрь что хочешь. Это уже не линейный процесс, оканчивающийся успехом или (в моем случае, как правило) обидным провалом. Нет, это цикл, или вензель, или легкая завитушка. Это игра.