Часть 1: Откат к счастью
Максим Откатов яростно барабанил пальцами по пустому месту над карманом джинсов, где обычно покоилась его клавиатура. Перед ним в воздухе застыла чашка кофе, выскользнувшая из рук начинающей официантки Любы. Время остановилось, как зависший Excel, – ровно в тот момент, когда коричневая жидкость готовилась украсить его белоснежную рубашку авторским принтом.
— Да чтоб тебя! — прошипел Максим и машинально нажал большим и указательным пальцами воображаемое сочетание клавиш.
Чашка дрогнула и послушно вернулась в руки опешившей Любы. Кофе красиво перетек обратно в фарфоровое вместилище, будто кто-то перемотал реальность на пару секунд назад.
— Я… это… — пролепетала девушка, крепче стискивая чашку.
— Ничего страшного, — автоматически ответил Максим, все еще глядя на свои пальцы так, словно они внезапно научились показывать фокусы.
После двадцати лет работы редактором в издательстве “Словесный Дождь” его пальцы настолько привыкли к комбинации Ctrl+Z, что, казалось, срослись с ней на генетическом уровне. Но чтобы это работало в реальности?
— Может, мне принести вам новый кофе? — Люба переминалась с ноги на ногу, как нашкодивший котенок.
— Нет-нет, этот вполне… — Максим не договорил. В его голове щелкнуло что-то, похожее на звук сохранения файла. — А давайте проверим.
Он резко выхватил чашку из рук Любы и демонстративно опрокинул ее на себя. Горячий кофе обжег грудь, и рубашка моментально приобрела вид географической карты неизвестного континента.
— Господи, что же вы… — начала Люба, но Максим уже привычно щелкнул пальцами.
Кофе послушно вернулся в чашку, рубашка засияла первозданной белизной, а на лице Любы снова появилось выражение виноватого котенка.
— Бинго! — просиял Максим. — Знаете, кажется, я только что изобрел революционный способ избегать неприятностей.
Весь следующий месяц превратился для Максима в бесконечный эксперимент. Он отменял неудачные разговоры с начальством, неловкие встречи с бывшими, просроченные дедлайны и даже невовремя сказанные шутки. Жизнь превратилась в черновик, где любую ошибку можно было исправить одним движением пальцев.
Но однажды утром он обнаружил, что его кот Баг (названный так в честь многочисленных программных ошибок, которые Максим исправлял на работе) научился повторять за хозяином. Животное сидело перед миской с кормом и методично тыкало лапой в воздух, откатывая время до момента, когда миска была полной.
Часть 2: Переполнение буфера
Первым забил тревогу сисадмин местного филиала реальности – сторож дядя Петя, который уже неделю наблюдал, как одни и те же люди проходят мимо его будки по семь раз за минуту.
— Максим Викторович, — пробасил он, поймав Откатова у подъезда. — Вы это… того… прекращайте. А то у меня в журнале учета уже страницы закончились, а день только начался.
Но Максим не слушал. Он был слишком занят, пытаясь поймать момент, когда его бывшая девушка Алина еще не стала бывшей. Правда, каждый раз, когда он отматывал время к их последнему разговору, она находила все более изощренные способы его бросить.
— Знаешь, — сказала она в девятьсот двенадцатой версии их расставания, — когда ты перестал писать код и начал переписывать реальность, ты стал похож на тот самый баг, который никак не удается исправить.
Максим привычно потянулся отменить ее слова, но пальцы свело судорогой. На экране жизни появилось окно с сообщением: “Достигнут лимит откатов. Установите обновление или переустановите систему”.
В этот момент он заметил, что его кот Баг начал раздваиваться. Сначала их стало два, потом четыре, потом восемь… Каждая копия продолжала методично тыкать лапой в воздух, создавая все новые версии себя.
— Так вот почему древние программисты называли это “котострофой”, — пробормотал Максим, наблюдая, как армия котов заполняет квартиру.
Пространство вокруг начало схлопываться, как неправильно сохраненный файл. Реальность трещала по швам, не выдерживая количества альтернативных версий событий.
В последний момент, когда мир уже готов был рухнуть под тяжестью бесконечных откатов, Максим заметил маленькую иконку в углу глаза. Это была кнопка “Сохранить как…”.
— Надеюсь, это сработает лучше, чем Ctrl+Z, — выдохнул он и нажал воображаемой мышкой на воображаемую кнопку.
Реальность моргнула и перезагрузилась. Максим обнаружил себя сидящим в том же кафе, где все начиналось. Перед ним стояла чашка кофе, а рядом сидела Алина, увлеченно рассказывающая о своем новом проекте. Его пальцы больше не искали несуществующие клавиши, а кот Баг, судя по сообщениям в телефоне, был один и находился дома в компании полной миски корма.
— …и представляешь, — донесся до него голос Алины, — они предложили мне стать тимлидом!
— Это же здорово! — искренне обрадовался Максим, впервые за долгое время не думая о том, как бы переписать этот момент.
Где-то на периферии зрения мелькнула официантка Люба, ловко лавируя между столиками с подносом, полным чашек. Она больше не была похожа на нашкодившего котенка – скорее на уверенную в себе кошку, точно знающую, куда идти.
А в кармане джинсов Максима лежала настоящая клавиатура, которая теперь использовалась исключительно по прямому назначению – для набора текста в редакторе. И это было именно то, что нужно. Без откатов и переписываний.
Потому что иногда лучшая правка – это отсутствие правки.