ГенаЧ – На спине черепахи (страница 3)
Математик и гуманитарий. Звучит как начало безвкусного анекдота. Хотя, если подумать... Музыка и математика — одно и то же. Частоты, ритмы, структуры. Просто разные языки описания.
Кот спрыгнул с подоконника и подошёл к миске. Тон был требовательный, но без агрессии: «Я голоден, и ты знаешь, что делать».
— Знаю, — сказала она. — Я всё знаю. Вопрос — что делать дальше.
Она насыпала корм, налила свежей воды и снова подошла к окну.
Париж гудел. Тысячи голосов, моторов, шагов, стука посуды, музыки из открытых окон. Она закрыла глаза и позволила этому войти.
И вдруг, в этом плотном, многослойном потоке, она услышала паузу.
Нет, не тишину. Тишины в Париже не бывает. Паузу. Мгновение, когда все звуки стали чуть тише, чуть дальше, как будто кто-то убавил громкость мира.
И в этой паузе возникло другое.
Тонкая, высокая нота. Почти неслышимая. Чистая.
Она открыла глаза и обвела взглядом улицу. Ничего необычного. Мадам открыла булочную, такса что-то вынюхивает под деревом, туристы ушли, на их месте новые.
Нота исчезла.
Но осталось ощущение. Будто кто-то позвал по имени, но не голосом. Словно где-то далеко-далеко, на другом конце земли, кто-то подумал о ней.
Она постояла ещё минуту, потом отошла от окна.
— Глупости, — сказала она вслух. — Просто устала.
Кот согласно муркнул из-под стола. Ему было всё равно, откуда берутся звуки. Главное, чтобы миска была полна.
Она не знала, что в эту самую минуту, за четыре с половиной тысячи километров, в Челябинске, мужчина в чёрных наушниках сидел над своей картой и записывал:
Внести в раздел «Аномалии».
Черепаха под ними чуть заметно качнулась.
Глава 3. Пустота и ноль
Офис находился в здании, которое все ненавидели.
Стеклянная коробка восьмидесятых, зажатая между старым заводом и новой парковкой. Внутри — вечный запах кофе, который сварили три часа назад, гул кондиционеров и мягкое, ровное освещение без теней. Место, созданное для того, чтобы не отвлекаться.
Он не отвлекался.
— Смотри, — сказал Руслан, ткнув пальцем в монитор. — Вот здесь она падает. Ты видишь?
Он видел.
График на экране был зелёным ровно до определённой точки, а потом резко уходил вниз, в оранжевую зону. Система, над которой они работали, тестировала нагрузку. До тысячи одновременных пользователей — всё летало. На тысяча первом — начинало тормозить. На тысяча двухсотом — падала.
— Она не должна падать, — сказал Руслан. — Мы считали иначе.
— Значит, ошиблись в расчётах.
— Я не мог ошибиться.
Он промолчал. Руслан был хорошим программистом, но плохим слушателем. Большой, вальяжный, с ленцой в голосе. Когда он рычал «я не мог ошибиться», это означало не гордыню, а искреннее непонимание: как так вышло, что реальность разошлась с моделью? Для Руслана модель была первична. Если реальность не совпадала, проблема была в реальности.
Он знал этот тип мышления. Сам так думал лет до двадцати.
Потом жизнь научила: реальность всегда права. Модель — только приближение.
— Дай посмотрю, — сказал он.
Руслан отодвинулся, и он сел за клавиатуру.
Пальцы легли привычно. Он не смотрел на экран, когда печатал, — смотрел вглубь себя, туда, где жила архитектура. Пять минут молчания. Потом ещё пять. Руслан нервничал рядом, но молчал — знал, что когда он уходит в себя, лучше не дёргать.
— Вот, — сказал он наконец. — Ты использовал стандартную библиотеку для кэширования. А у неё есть ограничение по памяти, которое не указано в документации. На тысяче пользователей она чистит кэш каждые пять минут. На тысяче двухстах — каждые тридцать секунд. Система задыхается.
Руслан уставился в экран.
— Твою ж ... — выдохнул он. — Я даже не подумал.
— Никто бы не подумал. Это надо знать, как она внутри устроена.
— А ты откуда знаешь?
Он пожал плечами:
— Я читал исходники.
Руслан посмотрел на него с уважением и лёгким ужасом. Читать исходники библиотек, которые работают и так — это было за гранью нормы. Это было... ну, странно.
— Слушай, — сказал Руслан, закрывая задачу. — Ты вообще, как живёшь-то? У тебя же никого нет?
Он внутренне напрягся. Вопрос был простой, человеческий, но цвета внутри сразу сбились в жёлто-оранжевое мельтешение.
— Есть, — сказал он ровно. — У меня есть я и кот.
Руслан поднял бровь:
— Какой кот? У тебя же нет кота.
— В смысле cat. Команда в терминале. Она выводит файлы. У меня там целый прайд.
Пауза.
— А, — сказал Руслан. — Ну ок.
Он ещё хотел пошутить по-другому, что вообще-то не очень понимает разницу между «кот» и «код», потому что в голове они звучат почти одинаково, особенно когда устал. Но решил не углубляться.
Руслан и так смотрел на него с выражением, которое бывает у людей, только что узнавших, что их знакомый разговаривает с мебелью.
У них были неписаные правила: не лезть в личное, не задавать лишних вопросов и не пытаться «исцелить» коллегу дружеским участием. Руслан эти правила соблюдал. За что он его, в общем-то, и ценил.
К вечеру задача была закрыта.
Он сидел один в пустом офисе, смотрел, как гаснут мониторы один за другим (настройка энергосбережения, 20:00, отключение), и думал о том, что сказал Руслану.
«У меня есть я».
Звучало как защита. Как стена. Как правда, которая не вся правда.
У него действительно был он. И это было немало — он научился с собой дружить, договариваться, понимать свои сигналы. Он знал, когда надо выключить звук, когда уйти в тишину, когда заварить чай и просто сидеть, глядя в стену. Он был себе неплохим соседом.
Но сосед — это не дом.
В доме должны быть другие.
Он вышел из офиса в девять вечера.
Город остывал. Лето кончилось, но осень ещё не началась — висело между, серое, влажное, ни то ни сё. Он любил это время. Потому что в нём не надо было выбирать.