Робин Слоун – Круглосуточный книжный мистера Пенумбры (страница 10)
Ой, да, девушка с каштановыми волосами до подбородка и в красной футболке с оттиснутым на ней горчично-желтым словом «Шмяк», да, вообще-то мы открыты.
— Безусловно, — говорю я. — Можете войти. Мы открыты всегда.
— Я тут ждала автобус, и мне пришло сообщение — кажется, я получила купон?
Она проходит прямиком к стойке, протягивая мне телефон, и там на экранчике моя гугловская реклама. Супертаргетированная рекламная кампания для местных — я забыл о ней, а она все идет, и вот кого-то нашла. И цифровой купон, нарисованный мной, вот он, поглядывает с поцарапанного экрана ее смартфона. У нее шикарные ногти.
— Да! — подтверждаю я. — И отличный купон. Самый лучший!
Я говорю слишком громко. Она сейчас развернется и уйдет. Непостижимые рекламные алгоритмы Гугла привели ко мне девчонку-суперочаровашку, а я понятия не имею, что мне с ней делать. Она крутит головой, оглядывая магазин. Как будто с недоверием.
От таких мелочей зависит история. Разница в тридцать градусов, и моя история окончилась бы прямо здесь. Но угол наклона моего ноута ровно таков, а на экране трехмерная модель магазина бешено вращается в двух плоскостях, как звездолет, кувыркающийся в пустыне космоса, и девушка бросает на него взгляд, и…
— Что это? — спрашивает она, подняв бровь.
Прекрасную темную бровь.
Ага, теперь я должен все сделать как надо. Не показаться конченным ботаном.
— Ну, это модель вот этого магазина, и тут видно, какие книги можно…
У девушки загораются глаза:
— Визуализация данных!
Недоверия как не бывало. Она чем-то внезапно довольна.
— Точно, — подтверждаю я. — Именно она. Вот, глядите.
Двинувшись навстречу друг другу, мы встречаемся на торце стойки, и я показываю 3D-книжный, который по-прежнему исчезает, если слишком раскрутится. Она наклоняется к экрану.
— Можно посмотреть исходный код?
Если злоба Эрика удивляла, то любопытство этой гостьи просто изумляет.
— Конечно, — отвечаю я и тасую темные окошки, пока экран не заполняется чистым Ruby, пестрящим красными, золотыми и зелеными фразами.
— Этим я занимаюсь на работе, — говорит девушка, нависая над экраном и вглядываясь в код. — Визуалом. Не против?
Она показывает на клавиатуру. Ха, нет, прекрасная ночная хакерша, я не против.
Моя лимбическая система настроена на определенный (очень низкий) уровень контактов с людьми (женщинами). И оттого что она стоит рядом и слегка касается меня локтем, я чувствую себя практически пьяным. Я пытаюсь продумать дальнейшие действия. Я посоветую ей «Визуальное отображение количественных характеристик» Эдварда Тафти — я ее видел на полке.
Здоровенная.
Девица быстро прокручивает мой код, а мне немного неловко, поскольку там внутри масса комментов типа «Вот так, блин!» или «давай, железяка, делай что велено».
— Великолепно, — говорит она, улыбаясь. — А вы, должно быть, Клэй?
Она это увидела в коде — там есть алгоритм под названием «клэй_молодчина». Наверное, такие бывают у каждого программиста.
— А я Кэт, — представляется она. — Кажется, я нашла, где сбой. Хотите, покажу?
Я колупался не один час, а эта девчушка — Кэт — нашла баг в моей модели за пять минут. Она гений. Объясняя мне процесс отладки, показывает ход своих рассуждений, быстрых и уверенных. И потом — цок, цок — глюк исправлен.
— Прости, я захапала, — говорит она, поворачивая ноут ко мне.
Убирает прядь волос за ухо, выпрямляется и заявляет с оперетточной серьезностью:
— Ну, Клэй, и зачем же ты ваяешь модель этого магазина?
На этих словах ее взгляд убегает по стеллажам к самому потолку.
Я не знаю, стоит ли быть с ней откровенным насчет полнейшей странности этого заведения. «Привет, рад познакомиться, я продаю старым чудакам книги, которые невозможно прочесть — не хотите со мной поужинать?» (Внезапно меня пронизывает уверенность, что один из этих чудаков вот-вот ввалится в двери. Прошу вас, Тиндэлл, Федоров, все остальные: сегодня не выходите из дому. Не бросайте чтения.)
Я захожу с другой стороны:
— Это своего рода исторический сюжет, — говорю я. — Этот магазин работает уже почти сто лет. Думаю, он старейший в городе — а то и на всем Западном побережье.
— Занятно, — говорит она. — Гугл по сравнению с этим просто дитя.
Вот и объяснение: девчушка из Гугла. Так что она и взаправду гений. А еще у нее мило обколот край зуба.
— Люблю данные такого типа, — она показывает подбородком в сторону ноута. — Данные о реальном мире. Старые данные.
В этой девчонке есть искра жизни. Это мой главный критерий отсева для новых знакомцев (девушек и не только) и самый лучший комплимент, какой я только могу сказать. Я много раз пробовал вычислить, что зажигает эту искру — какой букет условий должен сложиться в холодном черном космосе, чтобы возникла звезда. Я знаю, что дело главным образом в лице — и это не только глаза, но и брови, щеки, рот и микромышцы, соединяющие это все вместе.
У Кэт они такие симпатичные.
Она спрашивает:
— А ты пробовал написать визуализацию с повременной динамикой?
— Нет пока, не совсем, нет.
На самом деле я даже не знаю, что это такое.
— Мы в Гугле пишем ее для поисковых логов, — продолжает Кэт. — Это клево: ты видишь, как новые идеи вспыхивают и разбегаются по миру, будто маленькие эпидемии. А потом все выгорает за неделю.
Все это кажется мне очень интересным, но прежде всего потому, что мне очень интересна эта девушка.
Телефон Кэт бодро пикает, и она смотрит на экран.
— Ой, — говорит она. — Мой автобус.
Я проклинаю городской транспорт Сан-Франциско за внезапную пунктуальность.
— Я могу показать тебе эти штуки с временной визуализацией, — предлагает Кэт. — Хочешь, увидимся как-нибудь?
Ой, вообще-то да, хочу. Может быть, я осмелею и куплю ей Тафти. Я принесу его завернутым в коричневую бумагу. Погодите — а это не подозрительно? Книжка-то дорогая. Может, есть издание попроще, в мягкой обложке. Можно глянуть на Амазоне. Вот нелепость, я ведь в книжном работаю. (Может ли Амазон срочно доставить заказ?)
Кэт ждет моего ответа.
— Конечно, — скриплю я.
Она пишет свой мейл на одной из открыток Пенумбры: katpotente@, естественно, gmail.com.
— Купон сэкономлю до другого раза, — она машет телефоном.
— Пока.
Едва она исчезает, я лезу в настройки своей супертаргетированной кампании. Не выставил ли я там нечаянно галочку в графе «красавица»? (А что насчет графы «не замужем»?) Могу ли я позволить себе такие запросы? В чисто маркетинговом смысле моя кампания провалилась: я не продал ни одной книги: ни дорогой, ни вообще какой-либо. Более того, я влетел на доллар, из-за подписанной открытки. Но тревожиться не о чем: из моего исходного бюджета в одиннадцать баксов Гугл удержал только семнадцать центов. Взамен я получил единственный показ — единственный идеальный показ, — случившийся ровно двадцать три минуты назад.
Позже, когда час ночного одиночества и вдыхания лигнина меня немного отрезвляет, я совершаю два действия.
Первое: я пишу Кэт и спрашиваю, как она насчет пообедать завтра, то есть в субботу. Может, я немного трусоват, но ковать я стараюсь, пока горячо.
Второе: я гуглю повременную динамику и начинаю работать над новой версией модели, надеясь, что, может быть, прототип впечатлит Кэт. Меня не на шутку увлекает тот тип девушек, которых можно впечатлить прототипом.
Идея в том, чтобы не просто показать, какие книги взяты сейчас, а анимацией изобразить, какие и когда вообще брались. Сначала я перекидываю дополнительные имена, названия и даты из моего журнала в ноут. Затем приступаю к работе.
Программирование программированию рознь. У обычных письменных языков разные ритмы и идиомы, так? Ну вот, и в языках программирования то же самое. Язык под названием
А вот Ruby, мой рабочий язык со времен «НовоБублика», разработал жизнерадостный японец, и он читается как звучные и понятные стихи. Билли Коллинз[9] в роли Билла Гейтса.
Но, разумеется, смысл языка программирования в том, что ты его не просто читаешь: ты на нем еще и пишешь. Ты заставляешь его делать какие-то вещи. И вот тут-то, по-моему, Ruby восхитителен.
Представьте, что вы готовите еду. Но вам не нужно шаг за шагом следовать рецепту, уповая на лучшее, а можно добавлять и вынимать ингредиенты из котла в любой момент. Посолил, попробовал, покачал головой и достал соль обратно. Можно испечь идеальную хрустящую корку отдельно, а уж потом добавить внутрь что хочешь. Это уже не линейный процесс, оканчивающийся успехом или (в моем случае, как правило) обидным провалом. Нет, это цикл, или вензель, или легкая завитушка. Это игра.