Глава 1. Наследство без документации — Программист чинит древний артефакт как баг в коде — читать онлайн

Глава 1. Наследство без документации

Программист чинит древний артефакт как баг в коде · Максим Городецкий

Холод под щекой был каменный.

Игорь понял это раньше, чем открыл глаза, и еще секунды три перебирал варианты. Уснул за столом. Упал со стула. Что-то с давлением, и это кафель в уборной на четвертом этаже. Последним, что он помнил, был лог ночного выката, время в углу экрана, 03:47, и строчка ошибки, которую он перечитывал в шестой раз, потому что она врала.

Пахло не офисом. Пахло остывшим воском и старой пылью.

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

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

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

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

Сфера гудела.

Гул был низкий и на первый слух ровный, но Игорь послушал его секунд двадцать и поймал: раз в несколько ударов сердца в гуле проваливалась ступенька. Крохотная, почти неразличимая. Точно так же гудел холодильник в его съемной квартире, у которого умирал компрессор, а хозяйка два года повторяла, что он всегда так работал.

– Оно шевелится, – сказал кто-то сверху.

Спор оборвался.

Игорь сел. Голова не кружилась, тошноты не было, пальцы слушались. Он огляделся еще раз, медленнее, и не нашел ни одной вещи, которая объяснялась бы розыгрышем: ни камеры, ни кабеля, ни синтетического шва на одежде.

– Простите, – сказал он. – Где я?

Ему не ответили. Вместо ответа двое в кожаных куртках подняли его на ноги, взяв под локти так, что стало понятно: обратно ставить не планируют.

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

– Кто его впустил, – сказал старик.

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

– Я сам не знаю, как здесь оказался, – сказал он. – Честно.

– Это не ответ.

– Это правда. Иногда совпадает.

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

– Фарель, – сказал ему в спину полный маг с одышкой, – может, все же дознание, а не стража.

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

Его развернули к дверям, и он оказался лицом к сфере.

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

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

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

– Подождите, – сказал Игорь.

Стражники не подождали. Он уперся каблуками и сказал громче, чем собирался:

– У вас вот эта ветка обрывается в пустоту. А рядом лежит рабочая, и в нее никто никогда не заходит, потому что условие перед ней написано криво.

В зале стало очень тихо.

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

– Как ты назвал Сердце Ветвей? – спросил Фарель.

– Я никак его не назвал. Я сказал, что у него внутри есть кусок, который никуда не ведет.

– Полтора века, – сказал Фарель. – Полтора века лучшие люди этой страны сидят вокруг этой сферы. Здесь стояли трое, чьи имена ты не имеешь права произносить. Ты на ногах шесть вдохов.

– И что оно делает? – спросил Игорь.

– Что?

– Сломанное. Что оно делает, когда к нему обращаются?

Фарель молчал. Ответил рыжий парень лет двадцати, стоявший ближе всех к сфере и, судя по кистям в чернилах, писавший тут протокол.

– Отвечает наоборот, – сказал он. – Просят урожай, приходит засуха. Через сезон. Просят мира, война начинается через восемь лет.

– Ансель, – сказал Фарель.

– Он же спросил.

Игорь перестал упираться, и стражники, не встретив сопротивления, сами остановились.

– Это не сломано, – сказал он. – Сломанное молчит. Ваше отвечает. Значит, оно работает. Просто делает не то, что вы от него ждете, и делает это стабильно, а стабильно ошибаться случайность не умеет.

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

– Хорошо, – сказал он ровно. – Ты его починишь.

Полный маг с одышкой попытался что-то сказать. Фарель поднял ладонь.

– При совете. Сегодня. Все останутся и посмотрят.

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

– Мне нужны записи, – сказал он.

– Что тебе нужно?

– Записи. Вы полтора века водите сюда просителей. Кто-то же записывал, о чем просили и что вышло.

Фарель посмотрел на него так, будто чужак вместо ожидаемой мольбы попросил ведро.

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

Игорь сел прямо на пол рядом со скамьей и открыл первую.

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

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

– Ансель, – позвал Игорь. – Иди сюда. Смотри. Что общего?

Рыжий сел на корточки.

– Все плохо кончилось.

– Плохо, но не как попало. Оно всегда отдает ровно то, что просили, только с оборотом. Урожай через смерть посевов. Здоровье через чужую болезнь. Встреча через похороны. Это не порча. Это правило. Кривое, но правило.

– И что это значит?

– Что где-то внутри есть один поворот не в ту сторону, и он один. Сто пятьдесят лет вы лечили это, – Игорь постучал по обложке книги, – а надо было читать вот это.

Он поднялся, отряхнул колени и подошел к сфере.

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

– Кто-нибудь трогает ее руками? – спросил он.

– Ее не трогают, – сказал Фарель. – К ней обращаются.

– Ясно.

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

– Так, вот сюда приходит просьба. Дальше проверка, тут явно проверка... чистота намерения, да? Спасибо, Ансель. Проверка, и после нее развилка. Одна ветка толстая, вторая тоньше. Куда идет тонкая?

Тонкая уходила вниз, в основание, и там становилась совсем нитью.

– Ансель, попроси у нее что-нибудь.

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

– Тогда попросите то, чего не жалко, – сказал Игорь. – Мелкое. Проверяемое сразу, а не через сезон. Мне нужно увидеть, как оно ломается. Пока я не могу сломать его сам, я не понимаю, что чиню.

Ансель посмотрел на Фареля. Фарель не ответил, и это оказалось разрешением.

– Пусть потухнет вон та свеча, – сказал Ансель сфере.

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

– Картинка вместо дела, – сказал Игорь. – Отлично. Спасибо. Теперь ты, – он повернулся к Фарелю. – То же самое, слово в слово.

– Я не буду...

– Слово в слово, пожалуйста. Иначе опыт не считается.

Фарель произнес. Свеча погасла.

Игорь сел на край основания и потер лицо ладонями.

– Оно взвешивает, – сказал он. – Каждой просьбе оно ставит вес, и от веса зависит, сделает оно дело или отделается видением. Ансель, что оно про тебя знает такого, чего не знает про него?

– Что я никто, – сказал Ансель.

– Не то. Он назвал ту же свечу, что и ты, но у него голос человека, который свечу видит и знает, какую. А ты ткнул наугад, ты стоял к ней спиной. Оно меряет не сан, а то, насколько запрос можно проверить. Расплывчатое просят, расплывчатое получают. Картинку.

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

– Дальше, – сказал Игорь.

Дальше было три часа.

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

– Кемб, последний вопрос. Оно ведь не всегда так отвечало.

– Не всегда. Сто пятьдесят два года.

– А что было перед этим? Не в тот же день, а до. Что с ним делали?

Кемб долго молчал.

– Мастер Веран его правил, – сказал он наконец. – За месяц до. Была ошибка, оно кому-то дало не то, и совет велел исправить срочно. Он работал одну ночь. Один.

– И?

– И через одиннадцать дней умер. Записано: сердце.

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

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

Ветка проверки намерения не обрывалась. Она возвращалась.

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

– Объясни словами, – потребовал Фарель. – Не своими. Понятными.

– Представьте, что вы проверяете письмо на подделку, – сказал Игорь. – Проверили, написали вывод. И кладете вывод обратно в письмо, и проверяете письмо заново. И так каждый раз. Через сто кругов там от письма ничего не останется, а печать будет стоять.

– И это все?

– Это все. Веран чинил что-то другое и по дороге завязал петлю. Он не успел заметить.

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

Узел потеплел.

Взрыва не было. Вспышки не было. Гул сфальшивил в последний раз и выровнялся, и Игорь понял, что все получилось, по лицам: пятнадцать человек в мантиях одновременно повернули головы к шару, как поворачивают на исчезнувший звук.

Ступенька в гуле пропала.

Первым заговорил Ансель. Он попросил дождя на поля под Долгим Бродом, торопясь и глотая слова, и Игорь сначала хотел его остановить, потому что проверять на живых людях нельзя, а потом не стал.

Никакой картинки Ансель не увидел.

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

За северными холмами небо потемнело ровной серой полосой, и оттуда потянуло сыростью, и стало слышно, как по дальним крышам идет вода.

Фарель смотрел в окно и молчал очень долго.

– Останетесь при дворе, – сказал он наконец, не оборачиваясь. – Советником по артефактам.

– Я не советник.

– Мне безразлично, кто вы. Мне важно, чтобы вы были здесь, а не в дороге.

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

Ансель спросил, как это все же называется правильно, чтобы записать в протокол, потому что советник по артефактам звучит красиво, но неточно.

Игорь посмотрел на мокрые холмы, на сферу, на книги в коже, до которых сто пятьдесят лет никто не спускался.

– Техподдержка, – сказал он.

Ансель попробовал повторить и не смог, и записал по-своему, как услышал.

В дверях появился Кемб. Он держал письмо, распечатанное, мятое, с деревенской печатью из воска.

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

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

– Он такой один? – спросил Игорь.

– Пока один, – сказал Кемб. – Пока в провинциях не знают.

Оглавление
12 глав
Нравится книга?Прогресс сохранится, о главах сообщим.

Дальше — с аккаунтом

Регистрация занимает полминуты и ничего не стоит. Останетесь на этой же странице и продолжите читать.

или
Уже есть аккаунт? Войти