Kitabı oxu: «Невязка рендера»

Şrift:

Глава

"Невязка рендера"

---

Часть I. Шов на ткани времени

Глава 1. Зазор в три года

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

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

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

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

Мир Марка состоял из SQL-запросов, оптимизации индексов, транзакций и строгого правила: у любого бага есть причина. Если в строке 402 вылетает NullPointerException — значит, кто-то передал пустую переменную. Если запрос висит двадцать секунд — значит, забыли индекс. Логика не умеет лгать. Она может быть сложной, кривой, запутанной, но она всегда подчиняется правилам. Это было единственное, во что Марк верил безоговорочно, — и, как выяснилось позже, единственное, что его в итоге спасло.

История Петербурга началась для него как способ отвлечься от очередного дедлайна.

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

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

За окном прогудел запоздалый трамвай, заставив тихо позвякивать стеклянные розетки на старой люстре. Марк подвинул кружку, поднёс лицо ближе к экрану и навёл курсор на фрагмент оцифрованного строительного журнала за 1842 год.

Раздел ведомостей Департамента проектов и смет. Доходный дом купца Гусева на набережной Мойки. Пятиэтажное каменное здание с двумя внутренними дворами-колодцами, глубоким бутовым фундаментом, рустованным фасадом и сложной лепниной. Марк прочитал описание дважды, потом открыл в соседней вкладке спутниковую карту. Дом стоял на прежнем месте. С ровными окнами, тяжёлым рустом и лепными львами над аркой.

Он вернулся к журналу и навёл лупу на графу «Сроки исполнения и освидетельствования работ».

«Закладка фундамента — май 1842 года. Возведение стен и перекрытий — июнь-июль 1842 года. Отделка фасадов и подведение под крышу — август 1842 года».

Марк замер.

Нажим пера писаря был уверенным, каллиграфическим, с щедрыми росчерками на ятях. Рядом стояла круглая сургучная печать с орлом и подпись губернского секретаря. Это была не черновая запись, не набросок, не «примерно прикинули». Это был официальный документ, прошедший освидетельствование.

— Бред какой-то… — тихо пробормотал Марк.

Он откинулся на спинку деревянного стула. Стул скрипнул.

Три с половиной месяца. Пятиэтажный каменный дом. В 1842 году. На Мойке.

Марк не был строителем. Он был программистом. Но у него была привычка, от которой он не мог избавиться: если цифра в отчёте выглядит подозрительно, её надо пересчитать. Не поверить, не возмутиться, не забыть — а пересчитать. Он открыл на втором мониторе Notepad++ — тот самый, с зелёным значком хамелеона, — и начал импортировать базовые физические константы, которые помнил ещё с университета.

Май 1842 года. Ручной труд. Никаких экскаваторов, никаких бетономешалок, никаких электрических насосов для откачки грунтовых вод из котлована у самой Мойки, где вода просачивается через каждые полметра грязи. Выемка тысяч кубических метров грунта лопатами на конные грабарки. Забивка сосновых свай колотушками-бабами. Доставка кирпича на повозках — по узким улицам, где две телеги едва разъезжаются.

Он накидал простейший скрипт:

```python

# Базовый расчёт человеко-часов для 1842 года

volume_brickwork_cu_m = 14500 # Примерный объём кладки

workers_count = 120 # Максимальная артель на пятне застройки

drying_time_days = 90 # Минимальное время просушки извести

total_days_required = (volume_brickwork_cu_m / (workers_count * 0.8)) + drying_time_days

print "Минимум дней: %.2f" % total_days_required

```

Консоль вывела:

```

Минимум дней: 1141.25

```

Три года.

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

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

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

— Ошибка оцифровки? — спросил он у пустой кухни.

Он скачал исходный файл высокого разрешения. TIFF-скан весил почти двести мегабайт. При увеличении до 400% были видны волокна старой бумаги, микроскопические трещинки на сургуче, вкрапления сажи от чернильницы. Это не был сбой OCR-распознавания. Писарь в 1842 году абсолютно сознательно вывел уверенной рукой эти даты.

Марк создал на диске D: новую папку. Зашёл в свойства, поставил галочку «Скрытая». Подумал секунду — и переименовал её из стандартного New Folder в нейтральное misc.

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

Потом закрыл ноутбук, встал и подошёл к окну.

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

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

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

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

Значит, ошибка не в документе. Ошибка — в том, что Марк считает невозможным.

А это, если подумать, уже совсем другая категория бага.

---

Глава 2. Складская логистика

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

Папка misc перестала быть просто свалкой скриншотов. К концу декабря в ней появилось что-то вроде реестра — Марк разложил файлы по папкам: «Сроки», «Материалы», «Кадры», «Прочее». Последняя разрасталась быстрее всех, потому что в неё он сваливал всё, что не мог объяснить, но и выбросить не решался.

Он не сказал о находке никому. Ни родителям, которые звонили по воскресеньям и спрашивали, не женился ли он наконец. Ни коллегам на работе. Один раз чуть было не рассказал Игорю — коллеге-системщику, с которым они вместе чинили ночные падения сервера, — но вовремя остановился. Игорь был человеком с идеальной математической логикой и полным отсутствием терпения к «мистике». Он бы выслушал, кивнул, а потом сказал бы что-нибудь вроде: «Ну, опечатка в архиве». И был бы прав. Потому что опечатка — это единственное разумное объяснение.

Но одна опечатка ничего не доказывает. Нужна была вторая.

Он нашёл её в накладных Департамента шоссейных и водяных сообщений за 1844 год.

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

Накладные были скучными до зубовного скрежета. Столбцы цифр, названия, подписи, печати. Марк пролистывал их одну за другой, пока взгляд не зацепился за повторяющуюся строку: «тесаный сердобольский гранит».

Он остановился, вернулся на несколько страниц назад и начал считать.

К концу третьего часа у него на экране сложилась сводка. Только за один летне-осенний сезон 1844 года для укрепления правого берега Большой Невки и реставрации парапетов у Летнего сада в столицу было доставлено чуть больше шестидесяти тысяч кубических метров тесаного гранита.

Марк откинулся на спинку стула. Стул под ним тихо скрипнул, и библиотекарша снова подняла глаза.

— Шестьдесят тысяч кубов, — пробормотал он себе под нос.

Это была цифра, которую он не мог себе представить. Он попробовал: вот кубический метр — это примерно большой холодильник. Шестьдесят тысяч холодильников. Выстроенных в ряд по набережной. Уложенных в штабеля. Он даже прикинул на пальцах, сколько это будет по весу, и тут же понял, что для этого ему нужен справочник.

Справочник нашёлся дома. Старый, потрёпанный, с потрескавшимся корешком — «Гидротехника и транспортные перевозки XIX века», купленный за бесценок на развале у станции Удельная пару лет назад. Марк тогда взял его просто из любопытства, потому что обложка была красивой. Теперь он лежал перед ним на кухонном столе, раскрытый на странице с таблицей плотностей.

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

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

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

Он присвистнул.

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

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

Марк откинулся на спинку стула и посмотрел на цифру. Она никуда не делась.

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

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

Дальше начинался ещё больший абсурд.

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

Марк нарисовал на листе бумаги прямой отрезок — это была улица. Поставил на нём несколько точек — подводы. Потом ещё несколько. Потом ещё.

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

Он отложил карандаш и просто посмотрел на рисунок.

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

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

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

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

До набережной Лейтенанта Шмидта было минут пятнадцать пешком. Улицы были пустыми, мокрыми, отражающими редкие фонари. Где-то далеко за Невой мигал красный огонёк — то ли кран, то ли труба. Марк шёл быстро, сунув руки в карманы, и слушал, как его шаги отдаются в тишине.

У парапета он остановился.

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

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

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

И тут Марк почувствовал это впервые отчётливо, всем телом: что-то не так.

Не «возможно, ошибка в архиве». Не «интересная загадка». А физическое, почти тошнотворное ощущение, что он стоит на краю чего-то огромного и что камень под его ладонью — не просто камень, а часть конструкции, у которой он пока видит только фасад.

Он поднял голову и огляделся.

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

Марк выпрямился. Постоял секунду. Человек не двинулся с места.

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

Он сел за стол, открыл ноутбук и посмотрел на папку misc. Потом открыл файл с расчётами и сохранил его с новым именем: granite_v2_final.

Потом добавил третий файл — рисунок затора на листе. Сфотографировал на телефон и перекинул в ту же папку.

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

Но когда он ложился спать, впервые за всё время ему пришла в голову мысль, которая уже не отпустила: а что, если кто-то ещё это видит? И этот кто-то — не он один.

Он выключил свет и лежал в темноте, слушая, как за окном шумит ветер.

---

Глава 3. Парадокс свечного воска

Февраль принёс редкие для Петербурга солнечные дни, когда небо становилось пронзительно-голубым, а гранитные парапеты покрывались колким инеем. Марк взял три дня отгула на работе — впервые за полтора года, — и начальник, человек по фамилии Ковалёв, посмотрел на него с таким удивлением, словно Марк попросил отпуск на Луну.

— Ты заболел? — спросил Ковалёв.

— Нет. Дела.

— Какие у тебя дела? Ты же программист.

Марк не стал объяснять. Сказал, что семейные, и Ковалёв махнул рукой: ладно, только чтобы к среде сервис не падал.

В среду сервис упал, но Марка это уже мало волновало. Он сидел в читальном зале, заваленный копиями хозяйственных книг императорских дворов и архивом Мещанской управы за 1838–1845 годы, и считал свечи.

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

Марк перечитал цифру. Потом ещё раз.

— Ладно, допустим, — пробормотал он, забивая данные в ноутбук. — Зал огромный, потолки десять метров. Нужен свет.

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

Одна качественная восковая свеча той эпохи весила около ста граммов и прогорала за четыре часа. Марк умножил. Двести сорок килограммов чистого пчелиного воска или стеарина — на один вечер. На один особняк.

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

Дальше нужно было понять, откуда этот воск брался.

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

Первое, что он выяснил: стеариновые заводы в Петербурге только-только запускали свои первые автоклавы. Невский стеариновый завод, самый крупный, в 1840 году произвёл не более полутора тысяч пудов стеарина. На весь Северо-Запад. За год. Марк перевёл пуды в килограммы — получилось около двадцати пяти тонн — и записал цифру в блокнот.

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

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

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

Марк записал это число. Потом посмотрел на него. Потом посмотрел ещё раз.

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

Он разделил одно на другое. Получилось почти десять.

Дефицит составлял ровно десять раз.

— Где они берут ещё сто тонн воска каждый месяц? — вслух спросил Марк.

Библиотекарша подняла голову. Он извинился и замолчал.

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

Тогда он вернулся к бухгалтерским книгам. Взял описи расходов графа Нессельроде, графа Шереметьева, ещё нескольких домов, где архивы сохранились лучше. Смотрел на итоговые суммы и на количество закупленных коробок со свечами.

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

Марк закрыл ноутбук и вышел на улицу.

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

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

Марк вошёл.

— Здравствуйте. Можно у вас спросить?

Женщина подняла глаза.

— Свечи продаём. Спрашивайте.

— Вот у вас свечи. Восковые?

— Восковые, — сказала она с некоторой гордостью. — Хорошие. Не парафин.

— А откуда воск привозят?

Женщина на секунду задумалась. Потом сказала:

— Со склада.

— А на склад откуда?

— Ну… оттуда. — Она повела рукой куда-то в сторону, неопределённо. — Привозят. Нам-то что? Нам привозят — мы продаём.

— А вы не знаете, с какого завода? Или из какой губернии?

Женщина посмотрела на него внимательнее. В её взгляде появилось что-то настороженное — не страх, а скорее раздражение, как у человека, которому мешают заниматься делом.

— Молодой человек, вам свечи нужны или допрос?

— Свечи нужны, — сказал Марк. — Одну.

Он купил самую простую, тонкую, за сорок рублей. Женщина завернула её в бумагу и отдала ему, и он вышел на улицу с ощущением, что задал вопрос, на который в этом городе нет ответа — и что это никого, кроме него, не смущает.

Дома он развернул свечу и положил на стол под лампу. Воск был гладкий, чуть желтоватый, с еле заметным медовым запахом. Хорошая свеча. Настоящая. Без штампа, без клейма, без указания производителя.

Марк покрутил её в пальцах.

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

А здесь их сжигали по две с половиной тысячи за вечер. Каждую субботу. И никто не спрашивал, откуда они берутся.

Марк отложил свечу и открыл ноутбук. Записал в файл: «Свечи. Дефицит 10х. Источник неизвестен. Продавцы не знают. Бухгалтерия сходится».

Потом закрыл глаза и прижал ладони к векам. Перед глазами поплыли жёлтые круги.

В тишине квартиры было слышно, как тихо-тихо тикает настенный кварцевый хронометр. Впервые за эти месяцы ему стало не просто интересно. Ему стало по-настоящему жутко.

Он встал, подошёл к окну и выглянул на улицу.

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

Он смотрел на неё, наверное, целую минуту. Потом машина медленно тронулась с места и уехала в сторону Любанского переулка, аккуратно объехав сугроб.

Марк задёрнул штору.

— Показалось, — сказал он вслух.

И сам себе не поверил.

---

Глава 4. Чистота потолков

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

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

В тот день он изучал оцифрованную коллекцию интерьерных акварелей Гау, Премацци и Ухтомского, а также редкие дагеротипы середины XIX века, запечатлевшие парадные залы Зимнего, Мраморного и Мариинского дворцов. Фотографии были нечёткие, с длинной выдержкой, снятые при естественном свете, но именно в этой нечёткости и была их ценность: они не были приукрашены художником.

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

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

Потолок сиял.

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

Потолки сияли везде.

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

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

Марк вытащил блокнот и начал считать от руки — ему так лучше думалось.

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

Марк посмотрел на цифру. Потом на акварель. Потом снова на цифру.

За зимний сезон в тридцать балов потолок должен был покрыться жирной, въевшейся чёрной копотью. Побелка и чистка лепнины требовались бы после каждого отопительного сезона. А сложная гипсовая резьба за пять лет превратилась бы в заплывший чёрным нагаром монолит — как каминная труба изнутри.

5,0
2 qiymət
4,70 ₼
Yaş həddi:
16+
Litresdə buraxılış tarixi:
20 oktyabr 2026
Yazılma tarixi:
2026
Həcm:
180 səh. 1 illustrasiya
Müəllif hüququ sahibi:
Автор
Yükləmə formatı:

Oxşar kitablar