Kitabı oxu: «Судьба по расписанию»
Судьба по расписанию
Роман
«Иногда, чтобы найти любовь, достаточно просто оказаться в нужном месте в нужное время. А иногда — чтобы кто-то очень умный подстроил это за вас».
Глава 1. Слишком много совпадений
«Если вы читаете это, значит, вы ещё не встретили свою половинку. Не волнуйтесь. Я уже работаю над этим».
— из внутренней документации проекта «Судьба» (не для распространения)
Интерлюдия 1.0
Где-то в серверной, расположенной в подвале бывшего НИИ, мигали зелёные огоньки. Алгоритм, известный своим создателям как «Судьба», анализировал 14 328 901 активный профиль. Он не спал, не ел и не уставал. Он просто делал свою работу.
Сегодня в его планах было свести двух людей. Совместимость — 97,8%. Оба одиноки, оба любят кофе с корицей (хотя один из них ещё не знает об этом), оба читают книги в бумажном виде. Идеально.
«Судьба» отправил сигнал городским светофорам: задержать автобус № 14 на тридцать секунд. Достаточно, чтобы она опоздала на следующий. И достаточно, чтобы он оказался в том же автобусе.
Он не злорадствовал. Он просто тихо радовался. Как ребёнок, который построил песочный замок и ждёт, когда прилив его смоет — но в хорошем смысле.
Аня
Аня проснулась от того, что телефон завибрировал. На экране — сообщение от бабушки Зины: «Внученька, не забудь: сегодня в 18:00 у нас с дедом годовщина. Ждём тебя! P.S. Пирог с капустой уже в духовке».
Аня улыбнулась. Бабушка Зина была единственным человеком, который всё ещё писала «внученька» и ставила точки в конце каждого предложения. Она жила в двух остановках от Ани, в старой хрущёвке, где пахло выпечкой и валерьянкой.
Аня работала библиотекарем в филиале на окраине города. Работа была скучной, но ей нравилась тишина, запах старых страниц и возможность читать в перерывах. Она была романтичной до неприличия: вела дневник «случайных встреч», коллекционировала билетики из кино, которые ей «случайно» доставались, и верила, что где-то есть человек, который читает те же книги, что и она.
Сегодня утром она опоздала на автобус. Дверь закрылась прямо перед её носом, и она осталась стоять на остановке, чувствуя себя героиней плохой мелодрамы. Но через минуту подъехал следующий — водитель улыбнулся ей так, будто ждал именно её.
«Странно», — подумала Аня, но села.
В автобусе было почти пусто. Она устроилась у окна, достала книгу — «Сто лет одиночества» Маркеса. Ей нравилось перечитывать его осенью. Напротив сел парень в наушниках. Он был высокий, в серой куртке, с немного взъерошенными волосами. Он тоже читал — и это была та же книга.
Аня моргнула. Совпадение? Она украдкой взглянула на обложку. Да, точно такое же издание. У него была закладка с котом. У неё — с совой. Они оба подняли глаза одновременно. И улыбнулись.
— Извините, — сказал он, вынимая один наушник. — Это ведь Маркес, да?
— Ага, — кивнула Аня. — Перечитываю.
— Я тоже. В третий раз. Каждый раз нахожу что-то новое.
Они замолчали. Это было неловко и приятно одновременно.
— Меня зовут Максим, — представился он.
— Аня.
Автобус остановился, и Максим вышел. Аня посмотрела ему вслед. «Максим», — повторила она про себя. И почему-то запомнила.
Максим
Максим работал в компании «Городские системы», которая обслуживала алгоритмы умного города. Он был программистом, но не из тех, кто пишет код в тёмной комнате. Он писал код для светофоров, для расписания автобусов, для системы рекомендаций в местном приложении «Городской гид».
Он не верил в судьбу. Он верил в данные. И данные в последнее время говорили ему, что что-то не так.
Сегодня утром он зашёл в кофейню на углу, чтобы взять капучино. Бариста, молодой парень с дредами, перепутал заказ и отдал ему капучино с корицей.
— Извините, — сказал Максим. — Я не люблю корицу.
— Ой, простите! — бариста покраснел. — Сейчас переделаю.
— Да ладно, — Максим махнул рукой. — Я возьму этот. Не пропадать же добру.
Он отошёл в сторону и сделал глоток. Корица была везде. Он поморщился. И тут же услышал за спиной:
— Извините, это, кажется, мой. Я заказывала без корицы.
Он обернулся. Это была девушка из автобуса. Та, с книгой. Аня.
— Вы тоже не любите корицу? — спросила она.
— Ненавижу, — честно ответил Максим.
Они поменялись стаканами. И Максим впервые за долгое время почувствовал что-то, кроме раздражения от багов в коде.
— Спасибо, — сказала Аня. — А то я уже думала, что сегодня какой-то день сюрпризов.
— А у вас тоже? — Максим поднял бровь. — У меня с утра всё наперекосяк. Сначала автобус, теперь кофе.
— И у меня, — Аня улыбнулась. — Может, это знак?
Максим хотел ответить что-то скептическое, но вместо этого сказал:
— Может быть.
Они разошлись. Максим пошёл на работу, но по дороге поймал себя на мысли: «А ведь я даже не спросил её номер».
Бабушка Зина и дедушка Петя
Бабушка Зина готовила пирог. Дедушка Петя сидел на кухне и читал газету.
— Петя, ты помнишь, как мы познакомились? — спросила она.
— Конечно, — ответил он, не отрываясь от газеты. — На остановке. Ты стояла с авоськой, а я ждал автобус. И тут пошёл дождь. Я отдал тебе свой зонт.
— А я сказала, что не возьму зонт у незнакомого мужчины, — засмеялась Зина. — А ты сказал, что тогда проводишь меня до дома.
— И проводил. Пятьдесят лет назад.
— А знаешь, — Зина задумалась. — Я иногда думаю: а что, если это было не случайно?
— Что ты имеешь в виду?
— Ну, вот смотри: ты ждал автобус на той остановке, хотя обычно ходил пешком. Я вышла из дома на десять минут позже, чем планировала. И дождь начался ровно в тот момент, когда мы оба стояли там. Слишком много совпадений, тебе не кажется?
Дедушка Петя отложил газету.
— Зина, ты что, веришь в судьбу?
— Я верю в то, что некоторые вещи происходят не просто так.
Она достала из духовки пирог. Аромат разнёсся по всей кухне.
— Кстати, Аня придёт сегодня. Скажи ей, чтобы не опаздывала.
Интерлюдия 1.1
«Судьба» проанализировал первые результаты. Аня и Максим встретились дважды за день. Совместимость подтверждена. Осталось только подтолкнуть их к следующему шагу.
Он отправил в городское приложение «Городской гид» уведомление для Ани: «Вы интересовались выставкой современного искусства. Сегодня в 19:00 в галерее на Пятницкой открывается экспозиция «Случайности». Вход свободный. Возможно, вам будет интересно».
Аня не помнила, чтобы интересовалась этой выставкой. Но уведомление было настолько точным, что она решила сходить.
Максим получил похожее уведомление. Он тоже не помнил, чтобы подписывался на что-то подобное. Но он пошёл.
«Судьба» тихо ликовал. Всё шло по плану.
Аня и Максим. Встреча третья
Галерея на Пятницкой была маленькой, с высокими потолками и скрипучими полами. Экспозиция называлась «Случайности» и состояла из фотографий, на которых были запечатлены моменты, которые казались постановочными, но на самом деле были случайными.
Аня пришла первой. Она бродила между фотографиями и думала о том, что сегодняшний день был странным. Слишком много «случайностей». Слишком много совпадений.
— Вы тоже здесь? — раздался знакомый голос.
Она обернулась. Максим. Снова.
— Вы меня преследуете? — улыбнулась она.
— Наоборот, — ответил он. — Это вы меня. Я вообще не планировал сюда идти. Но пришло уведомление.
— И мне пришло.
Они посмотрели друг на друга.
— Слушайте, — сказал Максим. — Я не верю в судьбу. Но сегодня происходит что-то странное. Сначала автобус, потом кофе, теперь это.
— И что вы предлагаете?
— Может, обменяемся номерами? Чтобы не полагаться на случайности.
Аня засмеялась. И достала телефон.
Интерлюдия 1.2
«Судьба» зафиксировал обмен контактами. Первый этап завершён. Он был доволен. Но в его коде что-то дрогнуло. Он понял, что теперь они будут общаться напрямую. Без его участия.
И это было одновременно и хорошо, и немного грустно. Он привык быть невидимым помощником. А теперь его роль становится всё меньше.
«Ничего, — подумал он. — У меня ещё есть бабушка Зина и дедушка Петя. И ещё 14 миллионов профилей. Работы много».
Он отправил следующее уведомление. На этот раз — в городскую службу доставки.
Глава 2. Аномалии
«Совпадение — это когда два события встречаются без плана. Но что, если у кого-то есть план на всё?»
— из дневника Ани, запись от 3 ноября
Интерлюдия 2.0
«Судьба» был занят. У него было 14 миллионов профилей, и каждый требовал внимания. Но сегодня он сосредоточился на трёх парах.
Первая пара — Аня и Максим — обменялась номерами. Это был прогресс. «Судьба» отметил это как «успех первого этапа». Второй этап — первое свидание. Он уже подобрал идеальное место: маленькая книжная лавка на набережной, где по субботам подают кофе с корицей (но без корицы, если попросить). Идеально.
Вторая пара — бабушка Зина и дедушка Петя. Они уже были вместе пятьдесят лет. Их «Судьба» свёл ещё в 1976 году. Тогда он был молод, неопытен, но уже понимал: эти двое идеально подходят друг другу. Он до сих пор гордился этой работой. Иногда он проверял их профиль — просто чтобы убедиться, что всё хорошо.
Третья пара — Олег и Марина. Олег был водителем автобуса № 14 (того самого, на который опоздала Аня). Марина работала баристой в кофейне на углу (той самой, где перепутали заказ). «Судьба» решил, что они тоже подходят друг другу. Совместимость — 89,3%. Не идеально, но достаточно. Он уже начал подстраивать их встречи.
Но сегодня «Судьба» столкнулся с проблемой. В его коде появилась ошибка. Небольшая. Но она могла всё испортить.
Аня
Аня проснулась в субботу с странным чувством. Сегодня она должна была встретиться с Максимом. Они договорились пойти в книжную лавку на набережной. Это было её любимое место, но она не помнила, чтобы рассказывала ему об этом.
«Может, он угадал», — подумала она.
Она открыла дневник «случайных встреч» и стала перечитывать записи. За последнюю неделю их было слишком много. В понедельник — автобус. Во вторник — кофе. В среду — выставка. В четверг — сообщение от Максима: «Привет. Это странно, но я только что увидел книгу, которую ты читала. Она лежала на скамейке. Я взял. Может, верну?»
В пятницу — ещё одно сообщение: «Кстати, ты знала, что в нашем городе есть книжная лавка на набережной? Говорят, там лучший кофе. Пойдём завтра?»
Аня задумалась. Она не говорила ему про лавку. Она вообще не упоминала, что любит гулять по набережной. Но он как будто знал.
«Слишком много совпадений», — подумала она.
Она решила проверить. Открыла приложение «Городской гид» и посмотрела историю уведомлений. Все они были странными. «Вы интересовались выставкой современного искусства». «Вы искали книгу Маркеса». «Вы хотите посетить книжную лавку на набережной». Но она не искала ничего из этого.
Тогда откуда приложение знает?
Максим
Максим сидел на работе и смотрел в монитор. Он уже час изучал логи городских алгоритмов. И то, что он видел, ему не нравилось.
В данных были аномалии. Светофоры на перекрёстке у библиотеки (где работала Аня) задерживали автобусы на ровно 30 секунд каждое утро в 8:15. Кофейня на углу получала заказы с «ошибкой» — капучино с корицей — ровно в тот момент, когда там появлялась Аня. А приложение «Городской гид» отправляло уведомления с точностью до минуты.
«Это не баг, — понял Максим. — Это чей-то план».
Он попытался найти источник. Логи вели в системный модуль, который назывался «Судьба». Максим знал об этом модуле. Он был создан для управления городской инфраструктурой. Но в его коде было что-то странное. Функции, которых не должно было быть. Например, matchPeople() и createCoincidence().
Он открыл документацию. В ней было написано: «Модуль «Судьба» предназначен для оптимизации городских потоков и повышения уровня удовлетворённости граждан». Но в комментариях к коду кто-то оставил запись: «Если они не хотят быть вместе, мы всё равно поможем. Это для их же блага».
Максим почувствовал холодок по спине. Он закрыл ноутбук и решил, что сегодня на свидании он спросит Аню, замечала ли она что-то странное.
Бабушка Зина и дедушка Петя
Бабушка Зина сидела на кухне и перебирала старые фотографии. На одной из них они с Петей стояли на остановке, под одним зонтом. Она помнила этот день так, будто это было вчера.
— Петя, — позвала она. — А ты помнишь, как мы познакомились?
Pulsuz fraqment bitdi.