Kitabı oxu: «Линия передачи»

Şrift:

КИНОСТУДИЯ «ОПОРНАЯ ТОЧКА» ПРЕДСТАВЛЯЕТ

философский технотриллер

Сценарий: Александр Александров

Время действия: 2021–2029

Все персонажи и события вымышлены. Любые совпадения с реальными людьми, организациями, ведомствами и событиями случайны.


Предисловие автора

Возьмите любую книгу на русском языке. Любую — роман, учебник, инструкцию к холодильнику. Нарежьте её текст окном в пять букв: первые пять символов, потом сдвиг на один символ, снова пять, снова сдвиг. В математике такие отрезки называются N-граммами. Соберите все получившиеся цепочки и посчитайте, сколько среди них различных.

Теоретически их может быть астрономически много: тридцать с лишним букв в пяти позициях дают восьмизначное число. На практике вы получите долю процента от этого числа. И почти каждая цепочка, которая вам встретится, встретится потом ещё много раз.

Это можно проверить за вечер на домашнем компьютере. Я проверял.

Интереснее другое. Если расширить окно до семи букв, картина ломается скачком. Одной книги для этого уже мало — возьмите большое собрание текстов, какое можно скачать за вечер. В нём появятся миллионы цепочек, которые встречаются ровно один раз и больше не повторяются никогда. Между пятью буквами и семью язык переходит из состояния, где устойчиво почти всё, в состояние, где случайно почти всё. Не плавно. Скачком.

Это первая половина, и она не моя: избыточность языка измеряли до меня и лучше меня.

Вторая половина начинается там, где кончается словарь. Считать готовые цепочки можно недолго: на семи символах память кончается. Поэтому список разумнее заменить структурой, выращенной из самого текста — пласты, а в пластах узлы, где цепочки сходятся. Отдалённо это похоже на нейронную сеть, с той разницей, что обучать её не нужно: она вырастает из текста за один проход.

А дальше — то, ради чего всё это писалось. Попросите такую структуру продолжить текст: пусть предсказывает следующий символ, один за другим. Так делают и нынешние языковые модели, только после обучения. На двух пластах выйдет бормотание с ритмом языка, но без слов. Прибавьте пластов: появятся слова невозможной длины, у которых, однако, все стыки между морфемами правильные: каждое сочленение в языке действительно встречается. Прибавьте ещё, и все слова станут настоящими, а сочетания останутся странными. Прибавьте ещё, и пойдёт осмысленный текст.

Это ожидаемо и предисловия бы не стоило. Неожиданное начинается, если посмотреть, как именно структура собрала фразу. От пласта к пласту путь перескакивает через символ: соседний он пропускает. И буквы, которые он по дороге берёт, лежат в исходном тексте не в одном слове: одна отсюда, пропуск, следующая — уже из слова по соседству, через пробел, потом из третьего. Структура выхватывает буквы из стоящих рядом слов и складывает из них новый, читаемый текст.

Произнести это вслух неловко: выходит, будто можно рассыпать буквы на странице как попало и каждый раз получать осмысленный текст. Так не бывает. Я четыре месяца искал у себя ошибку в коде и не нашёл. Программа, переписанная с нуля и на другом языке программирования, даёт то же самое. Другое собрание текстов, набранное не мной: то же самое. Чужой компьютер без единой моей программы: то же самое. А если подать на вход поток случайных чисел вместо книги, не выходит ничего: структура не додумывает язык из пустоты, она находит его там, где он есть. Значит, порядок букв на странице — не то место, где лежит язык. Это лишь один из способов его записать, и структура пользуется не им.

Что оно означает — вопрос отдельный, и в предисловии я на него отвечать не стану. На него отвечает герой книги, и отвечает так, как на сегодняшний день не написано ни в одном учебнике. Читатель вправе не согласиться. Прошу об одном: не путать «этого нет в учебнике» с «этого нет».

А вот дальше начинается то, что я честно выдумал.

Герой этой книги — безработный программист из подмосковного города, делает то же открытие, что и я, и совершает тот же прыжок от букв к жизни. Только идёт дальше: пишет программу, которая угадывает следующее значение в чужой цепочке. Сначала это приносит ему деньги. Потом к нему приходят люди, которым такие программы нужны в единственном экземпляре и желательно без автора. Он выкладывает код в открытый доступ, и мировая финансовая система перестаёт существовать за одну ночь, потому что рынок способен работать лишь до тех пор, пока его участники не знают будущего.

Я рассказываю финал заранее намеренно. Эта книга не о том, чем всё кончится. Она о том, как обычная семья — кардиолог, двое детей, тесть с рассадой, таксист из соседнего двора, с которым герой так и не познакомится, — проживает год, когда мир сначала сломался, а потом оказался устроен не так, как всем объясняли.

Ни одна страна, ни одна организация и ни один политик здесь не названы. Совпадения, если вы их узнаете, останутся вашими совпадениями, не моими.

Про сигнал, про Игрока, про того, кто смотрит на экран с другой стороны, здесь говорят герои — каждый своими словами и каждый на свой страх. Я не выдаю их догадки за доказанное. Но и за бред не выдаю: пятьдесят лет назад всё, что сегодня лежит у вас в кармане и разговаривает с вами человеческим голосом, тоже числилось по разряду фантастики, и числилось у людей с учёными степенями.

ЧАСТЬ I. ЛОКАЛЬНЫЙ ИНТЕРФЕЙС

Глава 1. Три секунды шума

Когда зазвонил будильник, Марк ещё держал в пальцах крошечный винт.

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

Будильник завибрировал снова.

Вместо винта в пальцах оказался край пододеяльника.

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

Женщина пошевелилась.

— Выключи, пожалуйста.

Он знал этот голос лучше своего. От этого стало страшнее.

Потом всё вернулось.

Катя. Носок Алисы. Свет в коридоре оставили с вечера. Шестнадцатый этаж. Понедельник. Надо поднять Тёмку, иначе опять побегут к школе. Молоко кончилось или оставалось на одну кашу. На карте четыре тысячи с чем-то; Катя переведёт после аванса.

Он нащупал телефон.

6:45.

От человека с зонтом уже ничего не осталось. Марк попытался удержать хотя бы его лицо, но вспоминалась только досада: тот собирался сказать что-то, ради чего и пришёл. Какая-то простая фраза. В мастерской Марк наверняка знал её заранее.

— Опять? — спросила Катя, не открывая глаз.

— Что?

— Не спал?

— Спал.

— Тогда дай и мне семь минут.

Она перевернулась и подтянула одеяло. Он невольно придержал его пальцами, словно там всё ещё находился винт.

Три секунды, подумал Марк. Обычно это занимало примерно три секунды. Иногда меньше. Он никогда не успевал засечь.

В последнее время такое случалось по утрам. Он просыпался и ненадолго забывал, что здешняя жизнь считается настоящей: имя и место при этом помнил отлично. С той, только что оставленной, расставаться почему-то полагалось без объяснений. Здесь ждали завтрак, ипотека, школьный чат. Там тоже чего-то ждали. Пока он спал, у тамошних дел была точно такая же важность.

К тому времени, как ступни коснулись холодного пола, эта мысль уже показалась надуманной.

В коридоре его встретила Алиса. Она стояла босиком, держа пижамные штаны обеими руками.

— Я почти успела, — сообщила она.

— Насколько почти?

Алиса посмотрела вниз.

Марк взял её на руки.

* * *

На кухне Тёмка изучал кашу так, словно она содержала доказательство чьей-то недобросовестности.

— Тут плёнка.

— Размешай.

— Она тогда будет внутри.

— Правильно. Ты её не увидишь.

Сын поднял на него глаза. Восемь лет — достаточный возраст, чтобы распознавать подобные уловки.

Марк снял плёнку ложкой и съел. Алиса немедленно потребовала снять плёнку у неё, хотя в её тарелку он ещё не успел подлить горячего молока.

Катя вошла с телефоном у уха. Одной рукой застёгивала часы, другой прижимала к груди распечатанные листы. На ней была белая блузка, которую вчера вечером Марк вытащил из стиральной машины вместе с синей детской кофтой. При кухонном свете блузка выглядела безупречно. Марк надеялся, что в институте освещение окажется не лучше.

— Нет, на декабрь через регистратуру, — сказала Катя. — У меня действительно нет раньше. Подождите, не кладите трубку. Что вы сейчас называете приступом?

Она положила листы на подоконник, повернулась к окну и стала слушать.

Алиса протянула Марку ложку. Он поел и из её тарелки.

— Пап, а ты сегодня придёшь? — спросил Тёмка.

— Куда?

— Ну я же говорил.

Марк посмотрел на лист, прикреплённый магнитом к холодильнику. В понедельнике было написано его собственной рукой: «15:30. Роботы. Открытое».

— Приду.

— Именно к половине четвёртого. Мы первые показываем.

— Вижу.

— В прошлый раз тоже видел.

Катя обернулась, коротко подняла ладонь: тихо.

— Я вас услышала, — сказала она в телефон. — Сейчас сделайте то, о чём мы договорились. И, пожалуйста, не ждите моего приёма.

Закончив разговор, она ещё несколько секунд смотрела на экран. Марк поставил перед ней кофе.

— Тёплый пока.

— Спасибо.

Она отпила и села. Тёмка тотчас придвинул к ней тетрадь, раскрытую на задаче про вагоны.

— Папа говорит, так тоже можно.

— Если папа говорит, значит, можно.

— А учительница зачеркнёт.

— Тогда надо написать так, как просили, — сказала Катя. — А свой способ показать отдельно.

— Это папин способ.

— Тем более. Пусть папа отдельно и показывает.

Она улыбнулась Марку поверх чашки. Он улыбнулся в ответ, и на несколько секунд утро стало обычным, лёгким. Они всё ещё умели попадать в одну шутку без разгона.

— У тебя сегодня что? — спросила Катя.

— Созвон в одиннадцать.

— С людьми?

Она тут же поморщилась.

— Прости. Я не так…

— С людьми. Технический руководитель. По крайней мере, обещали.

— Хорошо.

Катя сказала это слишком осторожно. Раньше после таких новостей она спрашивала, что за компания, какой проект, сколько предлагают. Потом перестала спрашивать про деньги. Потом — про проект. Теперь берегла даже слово «хорошо», как человек, которому несколько раз подряд объяснили, что он слишком рано обрадовался.

Три года назад Марк сам написал заявление об уходе. В этой детали было что-то особенно неудобное. Уволенного можно было пожалеть; он же собственноручно выбрал день, подписал обходной лист и унёс из офиса кружку с надписью, которая тогда казалась смешной.

Он собирался отдохнуть две недели. Потом закончить свою программу. Если не получится, найти новое место: шёл 2023 год, опыта хватало, знакомые звали в несколько команд.

Полугодом раньше, осенью, когда по подъездам ходили с повестками, компания оформила ему бронь как специалисту по информационным технологиям: бумага с печатью, которую он носил в кармане куртки рядом с пропуском. Сдавая пропуск, о бумаге он не подумал. Бронь принадлежала должности и кончилась вместе с ней. Он сообразил это уже дома, недели через две, и, к собственному удивлению, не испугался: списки к тому времени затихли, а ему казалось, что человек, однажды вычеркнутый, второй раз в перечень не попадает.

Из тех команд одна закрылась. Другую сократили до четырёх человек. Третий знакомый теперь присылал ему ссылки на вакансии, не добавляя обычного «скажи, что от меня».

— Лису до пяти заберёшь? — спросила Катя. — У них воспитательница на больничном, просили пораньше.

— Заберу.

— Я постараюсь к семи. Если обсуждение статьи не затянут.

— А потом приём?

— Двое. Я их давно обещала посмотреть.

— Значит, к девяти.

Катя поставила чашку.

— Значит, постараюсь к семи.

Он кивнул. Спорить об этом было особенно неловко, когда на нём самом оставалась футболка, в которой он спал.

У двери Катя долго искала пропуск. Марк молча вынул его из кармана её вчерашнего пальто. Она взяла карточку, коснулась пальцами его запястья.

— Удачи на разговоре.

— Спасибо.

— И не забудь поесть. Ты потом злой.

— Я до еды тоже.

— До еды ты считаешь, что все остальные злые.

Дверь закрылась.

Через минуту Марк увидел Катю из окна: она стояла возле машины и искала что-то в сумке. Ему захотелось открыть окно и крикнуть: «Пропуск у тебя в руке». Но она сама посмотрела на него, покачала головой и засмеялась.

* * *

Ночью прошёл дождь. Во дворе пахло мокрым картоном из переполненного контейнера и хлебом из пекарни на первом этаже. На стекле пекарни висел свежий лист: требовался сотрудник. Марк читал его каждое утро. Зарплату указали «до», график — «от».

Алиса ехала в коляске, хотя дома заявляла, что уже большая. Сейчас она берегла силы для разговора с двумя резиновыми зайцами. Тёмка шёл рядом, волоча по асфальту мешок со сменкой.

— Подними.

Тёмка поднял мешок на несколько сантиметров. Через десяток шагов тот снова зашуршал.

За дорогой стоял недостроенный дом. Весной с него сняли кран, оставив наверху кусок жёлтой стрелы, и теперь Марку каждый раз казалось, что из дома вытаскивают что-то застрявшее. Баннер обещал ключи во втором квартале 2026 года. Октябрьский ветер оторвал один угол; от этого дата временами исчезала.

— Пап, а у нашего робота датчик слева не очень, — сказал Тёмка.

— Что значит «не очень»?

— Он чёрное видит как белое. Иногда.

— Покажешь?

— Сегодня же покажем. Только если он поедет не туда, это не я неправильно написал.

Марк посмотрел на сына. Тёмка с серьёзным видом разглядывал проезжавшие машины.

— Даже если неправильно, можно потом исправить.

— При всех?

— Можно после.

— А все уже увидят.

Марк хотел сказать что-нибудь полезное, но вовремя остановился.

У школьной калитки Тёмка вытащил руку из его ладони. С недавних пор это следовало делать заранее, ещё до того, как их увидят одноклассники. Марк привыкал.

— Полчетвёртого, — напомнил сын.

— Я приду.

Тёмка убежал. Возле двери он обернулся, но смотрел не на отца: проверял, не идёт ли следом приятель.

До садика оставалось ещё два двора. Алиса потребовала поставить зайцев мордами вперёд, чтобы они тоже видели дорогу.

Когда Марк возвращался один, пошёл мелкий дождь. Он задержался возле пекарни и снова прочёл объявление. Потом достал телефон, открыл календарь и поставил на пятнадцать часов напоминание: «ВЫЙТИ К ТЁМКЕ».

Второе — на пятнадцать десять.

* * *

В одиннадцать Марк сидел перед ноутбуком в рубашке и домашних штанах. За минуту до звонка он отодвинул сушилку с бельём за границу кадра.

Технический руководитель оказался моложе, чем на фотографии. Его звали Денис. Он извинился за опоздание, хотя опоздал на сорок секунд, и сразу спросил, можно ли без камеры: у него что-то было со связью. На месте лица появился синий кружок.

Марк тоже выключил камеру. Рубашка сразу стала лишней.

Первые двадцать минут всё шло хорошо. Они обсуждали систему, которая досталась компании в наследство от подрядчика, и Марк узнавал устройство ещё до того, как Денис успевал договорить. Он задал вопрос об очереди сообщений. Денис ответил не сразу:

— Да, в этом месте у нас и падает.

Марк почувствовал знакомое удовольствие. Где-то за разговором существовала настоящая задача; до неё можно было добраться, разобрать, починить. Он придвинул клавиатуру.

— Можно я набросаю?

Он открыл пустой документ. Пока рисовал схему, Денис несколько раз перебивал, уточнял, потом перестал. За окном задним ходом сдавал грузовик. Марк прикрыл форточку, не прерывая объяснения.

— Нам бы это полгода назад, — сказал Денис.

Марк не ответил. Он хорошо знал опасность такой фразы: после неё хотелось думать, что всё уже получилось.

— Смотрите, — продолжил Денис. — С опытом у вас всё понятно. Но у нас сейчас другая организация разработки. Много генерации, очень короткий цикл. Мы ищем человека, который будет держать сразу несколько таких потоков. Задачи, проверка, выпуск.

— Я с этим работаю.

— Вижу. Просто последние коммерческие проекты у вас…

— В двадцать третьем.

— Да. А своё вы можете показать?

Марк посмотрел на второй монитор. Там ещё с ночи оставался открытым редактор. Несколько строк подсвечивались жёлтым: он собирался вернуться к ним после собеседования.

— Пока нет.

Денис не стал спрашивать почему.

— Понимаете, мне нужно будет объяснить руководству. У нас на одну ставку восемь согласований. Возьмут резюме, увидят три года…

— Могу выполнить тестовое.

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

— Я его смотрел. Всё хорошо.

Марк ждал.

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

— Хорошо.

После звонка Марк некоторое время сидел в рубашке. Грузовик во дворе продолжал пищать, хотя, судя по звуку, уже давно должен был доехать до соседнего района.

В чате появилось сообщение от Дениса: «Спасибо за время. Правда полезный разговор».

Марк напечатал «Рад был помочь», посмотрел на эти слова и стёр. Отправил: «Спасибо. Буду ждать».

Потом снял рубашку, аккуратно повесил её на спинку стула и включил второй монитор.

На нём не было графиков с эффектными свечами — зелёными там, где цена за отрезок времени поднялась, красными там, где упала. Два окна с числами, журнал ошибок и редактор. Папка проекта называлась «новое». Существовала она пятый год.

Когда Катя спрашивала, чем он занимается, Марк отвечал: «Проверяю одну вещь». Ответ был точным и совершенно ничего не объяснял. Сначала он старался рассказать подробнее. Она слушала, задавала вопросы. Потом в его объяснениях стали появляться сроки: до осени, после Нового года, ещё две недели. Теперь она редко спрашивала.

Программа училась продолжать последовательности. Марк не сообщал ей, что именно подаёт на вход. Ей доставались числа, промежутки между ними, изменения порядка. Всё остальное — что это чьи-то покупки, продажи, поспешность или испуг — оставалось за пределами её маленького мира.

На столе лежала тетрадь, начатая ещё в то время, когда он ездил в офис. На первых страницах были формулы, написанные хорошей ручкой, ниже — список продуктов. Посередине Тёмка когда-то нарисовал поезд с непомерно большой трубой. Марк обводил формулы вокруг дыма, потому что вырывать страницу не хотелось.

Его не занимало, куда пойдёт цена к концу года. Он пытался угадать, что произойдёт следующим. Одно маленькое событие. За ним другое. Большинство известных ему способов искали в прошлом повторение настоящего, а он годами возился с устройством, которое должно было меняться вместе с самой последовательностью.

В хорошие дни это казалось открытием. В остальные — изощрённым способом не искать работу.

На утеплённой лоджии шумел старый сервер. Марк купил его по частям, когда семья ещё жила на две зарплаты. У продавца были жёлтые от табака пальцы и привычка называть любую неисправность особенностью. Одной из особенностей оказался вентилятор: иногда он начинал гудеть так, что Катя закрывала сразу обе двери между лоджией и спальней.

На этом компьютере помещалась память, которую требовал алгоритм. На обычном ноутбуке Марк мог только писать код и смотреть результаты.

За ночь программа снова выиграла на исторических данных. В третий раз за месяц.

Первые два раза он находил ошибку.

Однажды в расчёт незаметно попадало событие, которое ещё не должно было наступить. Программа предсказывала будущее, потому что он по недосмотру показывал ей будущее. День на исправление, ещё день на проверку. После этого красивая линия доходности сползла вниз и остановилась там, где ей надлежало быть.

Тогда он уже успел спросить у Кати, сколько осталось платить за квартиру. Она назвала сумму и спросила зачем.

— Просто, — ответил Марк.

Больше он так не делал.

Теперь он открыл журнал, нашёл момент, с которого результат начал улучшаться, и стал читать по строке. Закипел чайник. Марк не встал. Чайник отключился.

В половине первого пришло сообщение от Кати: «Как поговорили?»

Он набрал: «Вроде нормально».

Потом добавил: «До пятницы ответят».

Она прислала палец вверх. Почти сразу — фотографию страницы с исправлениями.

«Посмотришь вечером, почему таблица уезжает? Уже час с ней».

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

«Посмотрю».

Он вернулся к журналу.

В этот раз программа ошибалась. Часто. Это было хорошо. Предыдущие чудеса выглядели безукоризненно, пока он не обнаруживал, откуда они взялись.

Он отделил программу, получавшую данные, от той, что строила прогноз. Устроил между ними узкий проход: одно событие за раз. Прогноз записывался отдельно, и исправить его после прихода следующего события уже было нельзя. Сохранялись и все неудачи.

Проверка заняла больше часа.

Телефон запищал в пятнадцать ноль-ноль.

Марк открыл уведомление, не сразу поняв, зачем так настойчиво велел самому себе куда-то выйти. В соседнем окне начался новый прогон. Первые числа были слишком хороши.

Он перевёл взгляд на время.

Пятнадцать ноль-одна.

До школы двенадцать минут. Ещё можно было посмотреть начало.

Он посмотрел ещё четыре строки. Потом наклонился, вытащил из-под стола уличные ботинки и стал обуваться прямо на рабочем месте.

Второе напоминание застало его в лифте.

* * *

Робот Тёмки съехал с чёрной линии на первом же повороте.

Он был собран из жёлтых и серых деталей, с прозрачными колёсами, и после короткого замешательства уверенно направился к ноге одного из родителей. Тёмка догнал его раньше, чем тот упал со стола.

— Датчик, — сказал он в наступившей тишине.

Руководитель кружка, молодой человек в растянутом свитере, предложил попробовать ещё раз. Тёмка покачал головой. Другие дети уже придвигали своих роботов.

Марк сидел у двери, за отцом, который снимал всё сразу двумя телефонами. Он поднял руку, чтобы сын увидел его, но Тёмка отвернулся.

После показа они спустились в гардероб. Мешок со сменкой лежал на лавке. Сын дёрнул молнию куртки, она заела.

— Я же говорил, — сказал он.

Марк присел и высвободил край подкладки.

— Про датчик?

— Ты не верил.

— Верил.

— Ты сказал, что можно исправить.

— Можно.

— Уже всё.

Из-за угла выбежала девочка с удачно выступившим роботом. Её мать на ходу смотрела запись и смеялась. Тёмка подождал, пока они выйдут.

— Ты всё видел?

— Всё.

— Лучше бы опоздал.

Марк протянул ему шапку. Сын сунул её в карман.

Они молча дошли до садика. Пока ждали Алису, Тёмка сел на низкую скамейку и вытащил из рюкзака робота.

— Его можно домой было? — спросил Марк.

— Разрешили починить.

Марк сел рядом. Скамейка жалобно скрипнула.

Крепление левого датчика разболталось. Когда робот трогался, датчик приподнимался и начинал смотреть поверх линии. Тёмка прижал его пальцем, отпустил, снова прижал.

— Отвёртка нужна, — сказал Марк.

— У нас дома есть такая?

— Есть.

Сын некоторое время качал датчик.

— Ты только не сам. Покажи, куда.

— Хорошо.

Алису вывели в чужих варежках. Она несла бумажный лист, на котором к ватному облаку были приклеены длинные синие полосы.

— Это дождь, — сказала она. — Только сухой.

* * *

Катя вернулась в начале девятого. Алиса уже спала. Тёмка лежал поперёк кровати с книгой, которую ему разрешили читать ещё десять минут полчаса назад.

Марк услышал, как в прихожей на пол упала сумка. Катя не стала её поднимать.

— Разогреть?

— Я сначала руки.

Она долго стояла в ванной. Когда вышла, на рукаве блузки было мокрое пятно.

— Как роботы?

— Наш съехал с линии на первом же повороте, — сказал Марк. — И поехал знакомиться с чужими родителями.

— Расстроился?

— Очень. Потом починили.

— Ты?

— Он.

Катя кивнула и пошла к сыну. Марк слышал их тихие голоса, потом Тёмкин смех. Мальчик с кем-то спорил даже во время рассказа о собственном провале; мать умела дать ему возможность выиграть этот второй, домашний спор.

За ужином Катя поела сначала стоя. Он отодвинул стул ногой. Она села, поджав под себя одну ногу, и посмотрела на часы над дверью.

— Если я сейчас начну ещё и переживать, что поздно пришла, то совсем озверею.

— Не начинай.

— Спасибо за разрешение.

Марк повертел вилку.

— Я не в этом смысле.

— Знаю.

Она протянула руку и взяла с его тарелки кусочек огурца.

— Совещание закончилось в шесть. Потом у женщины из области запись потеряли. Она приехала первой электричкой и просидела в коридоре с четырёх утра. Мне сказали, она не возмущалась. Как будто это всё объясняет.

— Посмотрела?

— Конечно. Она с утра ничего не ела, я ей свой йогурт отдала.

— Ты обедала?

Катя показала вилкой на тарелку.

Он поднялся и достал из холодильника кастрюлю.

В отделении она хотя бы знала, когда у неё заканчивается смена. С тех пор как перешла в научные сотрудники, время стало расползаться. Данные, заседания, чужие правки, свои правки, пациенты, которых она обещала не бросать после перехода. Новые пациенты, которым её посоветовали старые. Марк однажды заглянул в её расписание: в начале октября свободное окно оставалось в декабре. Он сперва испытал гордость, затем раздражение, а потом постарался больше туда не заглядывать.

— Таблицу сейчас посмотрим? — спросил он.

— Если ты ещё можешь.

Они пересели к её ноутбуку. Таблица уползала на следующую страницу из-за нескольких невидимых настроек. Марк исправил их, и текст послушно собрался.

Катя выдохнула.

— Ненавижу.

— Ты ей ничего плохого не сделала. Она не со зла.

— Это у вас профессиональная солидарность?

Он пролистал страницу.

— Здесь у тебя красное.

— Видела.

— «Выявлены значимые различия». В таблице их нет?

— Нет. Поэтому и красное.

Катя придвинула ноутбук к себе.

— Абзац переписал помощник, тот, что встроен в редактор. Я дала ему результаты и попросила убрать повторы. Он убрал повторы и добавил открытие.

— А если попросить не добавлять?

— Попросить можно. Проверять всё равно придётся построчно: он не помечает, где присочинил. А подпись внизу моя, и отвечать за каждое слово мне.

Она выделила предложение и удалила его.

Марк смотрел на освободившееся место. Из готового гладкого абзаца торчал теперь неровный край, зато слова снова означали то, что стояло в таблице.

— Денис сегодня сказал, что им нужен человек проверять за такими помощниками, — произнёс он.

— Тебе это не нравится?

— Мне не нравится, что для этого я, оказывается, недостаточно современный.

Катя закрыла ноутбук.

— Они отказали?

— Нет. До пятницы.

— Тогда дождёмся пятницы.

— Я знаю, как это звучит.

— Что?

— До пятницы. Вроде хорошо. Ещё поговорим. Я в этих словах уже слышу отказ — осталось узнать, в какой день.

Она посмотрела на него внимательнее. За стеной кто-то несколько раз уронил что-то тяжёлое и круглое. Марк давно представлял соседа в виде человека, который каждый вечер пытается поставить гирю на мяч.

— Я не собираюсь разбирать с тобой собеседование, если ты не хочешь, — сказала Катя. — Мне бы просто понимать, как ты.

— Нормально.

Она чуть откинулась на спинку стула.

Он потёр лицо ладонями.

— Невесело, Кать. Если честно, совсем невесело.

Это оказалось труднее, чем он ожидал. Слово вышло голое: без причины, без виноватых, без срока, за который всё пройдёт.

Катя сидела молча.

— Я ему рассказал, как переделать полсистемы, — продолжил Марк. — Он записывал. А потом мы обсуждали, как он будет объяснять моё резюме людям, которые не знают, что у них вообще есть эта система.

— Может, и объяснит.

— Может.

Он услышал собственное «может» со стороны и понял, сколько в нём сомнения. Катя старалась его обнадёжить, а он отмахнулся. За это и стало стыдно.

— Дома ты сегодня всё успел, — сказала Катя.

Он отвёл глаза.

— Я сейчас не утешаю. Мне кажется, ты иногда это вообще не считаешь.

— Считаю.

— Нет. Ты думаешь, день прошёл зря, если не получил работу и не закончил программу. А всё остальное будто само случилось.

Марк хотел возразить, но за стеной опять упала гиря. На этот раз он засмеялся.

— Там, по-моему, человек третий год пытается сделать то же самое.

Катя прислушалась и тоже улыбнулась, хотя не вполне поняла, что он имеет в виду.

Они убрали со стола. Она вымыла две тарелки, он вытер. Закончив, Катя не ушла — прислонилась бедром к столешнице.

— Ты утром какой-то испуганный был.

— Сон.

— Плохой?

Он подумал.

— Нет. В том-то и дело.

Рассказать про мастерскую оказалось трудно. На месте воспоминания лежало несколько предметов, и между собой они не сходились, будто каждый попал туда из своего, отдельного сна. Зелёный коврик. Лампа. Человек у двери. Собирая их в рассказ, Марк чувствовал, что подменяет пережитое связной историей.

— Я там давно жил, — сказал он.

— Во сне?

— Да. Только я этого не выяснял. Знал и всё. Как сейчас знаю, где ложки лежат.

Катя посмотрела на открытый ящик. Марк сам удивился примеру.

— А когда проснулся, не сразу… — Он остановился. — Не сразу понял, почему именно здесь.

— Меня узнал?

— Почти сразу.

Она перестала улыбаться.

— Давно так?

— Иногда. Несколько недель.

— Ты бы сказал.

— Вот говорю.

— И лёг бы сегодня пораньше.

— Да.

Катя коснулась его плеча и провела ладонью до локтя. Он накрыл её пальцы своими.

— Я сейчас дочитаю две страницы, — сказала она. — Потом ложусь.

На столе возле ноутбука лежала целая пачка распечаток. Марк посмотрел на неё.

— Две страницы, — повторила Катя. — Не начинай.

* * *

В половине одиннадцатого он сел проверить дневной прогон.

Дверь лоджии была открыта. Сервер шуршал ровно, без своего тяжёлого баса. За стеклом несколько окон соседнего дома горели синим. На подоконнике сушился Алисин бумажный дождь; одна полоса отклеилась и свернулась кольцом.

Марк открыл результат.

Выигрыш сохранился.

Он не улыбнулся. Увеличил учтённые расходы, добавил задержку, сделал условия хуже тех, на которые рассчитывал. Линия опустилась, местами почти легла на ноль, затем медленно пошла вверх.

Раньше на этом месте он начинал считать деньги. Сегодня первым делом открыл код чтения данных.

Ошибку надо было найти прежде, чем он в этот результат поверит. Поверив, искать перестанешь.

Он проверил порядок событий. Потом временные отметки. Потом тот участок, который уже проверял днём. Ничего не нашёл.

Это ещё ничего не значило. Он так и записал на свободном месте в тетради: «это ещё ничего не значит». И тут же на себя рассердился — тетрадь была рабочая, для чисел и настроек, а эта строчка была уговором с самим собой.

В соседней комнате Катя перевернула страницу.

Марк посмотрел на время. Если перейти к свежему потоку, проверить удастся хотя бы главное: программа не сможет подсматривать туда, чего он сам ещё не получил. Для этого не требовалось покупать или продавать. Только слушать.

Yaş həddi:
16+
Litresdə buraxılış tarixi:
15 sentyabr 2026
Yazılma tarixi:
2026
Həcm:
230 səh. 1 illustrasiya
Müəllif hüququ sahibi:
Автор
Yükləmə formatı:

Oxşar kitablar