Читать книгу Новый рассвет. Перелом (Андрей Николаевич Милковский) онлайн бесплатно на Bookz (6-ая страница книги)
Новый рассвет. Перелом
Новый рассвет. Перелом
Оценить:

5

Полная версия:

Новый рассвет. Перелом

Он задержал взгляд на прямоугольнике с подписью «Palingenesis v0.4 – planned». Маленький серый блок, от которого отходили пунктирные стрелки к другим модулям. Пунктир его раздражал. Пунктир в архитектуре значил одно: «подумаем потом». А «потом» в таких системах обычно приходило либо слишком поздно, либо в самый неудобный момент.

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

За его спиной послышались шаги. Голос Джаса прозвучал ещё до того, как тот вошёл:

– Опять перекраиваешь всю вселенную без согласования с богами железа?

Самир не отвлёкся от экрана:

– Вселенную – нет. Только те куски, которые у тебя сужают горлышко.

– Горлышко не у меня, – возмутился Джас, проходя внутрь. – Горлышко – у твоих фильтров. Ты видел, сколько они жрут по времени?

– Видел, – спокойно ответил Самир. – Поэтому и перекраиваю.

Он щёлкнул по экрану, и схема увеличилась. Теперь Aegis-модуль занимал левую половину дисплея: набор катушек, экранов, датчиков и управляющих контуров. Справа – блоки анализа и управления: Palingenesis, Q-модули, системы логирования.

– Смотри, – сказал он. – Сейчас у нас так:

Aegis-β → сырые данные → Palingenesis v0.3x → фильтры → автокорреляция → отчёты.

Он провёл пальцем по стрелке.

– Узкое место – на стыке «сырые данные → алгоритм». Мы гоняем слишком много мусора через сложные фильтры. Я хочу часть работы отдать железу, а не только софту.

– То есть повесить на мой Aegis ещё одну гирю, – вздохнул Джас. – А ты знаешь, что каждый новый блок – это не только красивые квадратики, но и килограммы железа, ампер и ватты?

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

Он щёлкнул ещё раз. Поверх исходной схемы появилась новая, чуть отличающаяся: на линии от Aegis к Palingenesis вклинился маленький блок «Q-PreFilter».

– Я предлагаю часть предварительной фильтрации и временного усреднения вынести в отдельный модуль, привязанный к Q-Beacon. Пусть он отбрасывает заведомо бессмысленный шум до того, как данные попадут в основной алгоритм.

– То есть маленький мозг между моими катушками и твоими матрицами? – уточнил Джас. – Ещё один потенциальный источник глюков.

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

Он посмотрел на него поверх очков:

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

– Знал, что будет подвох, – вздохнул Джас.

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

– Я смотрю, вы начали без меня, – сказал он, отмечая изменённую схему на экране.

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

– Я хочу перераспределить нагрузку, – поправил Самир. – Сейчас Palingenesis ест слишком много, потому что на него сваливают всё: и фильтрацию, и анализ, и корреляцию.

Дмитрий подошёл ближе, вглядываясь в схему.

– Расскажите по очереди, – сказал он. – Сначала: как *сейчас*. Потом – что вы предлагаете.

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

– Сейчас, – начал он, рисуя простую линейку блоков, – у нас Aegis-β даёт нам пачки сырых данных: временные ряды от датчиков поля, тока, напряжения, положения образца. Всё это валится в один агрегатор, потом в Palingenesis v0.3.

Он отметил блок.

– Внутри этого блока мы делаем:

– предварительную фильтрацию по частоте;

– нормализацию амплитуд;

– расчёт автокорреляции по окну τ;

– сравнение с эталонными шаблонами;

– генерацию отчёта.

Он обвёл блок в воздухе:

– Это слишком много для одного слоя. Любое изменение на входе – и нам приходится перекраивать весь алгоритм.

– А что предлагаешь? – спросил Дмитрий.

Самир переключил слой. Новая схема была похожа, но с дополнительными ветвями.

– Предлагаю трёхуровневую архитектуру:

1. Аппаратный уровень (Aegis-β → β-2)

– часть фильтрации и синхронизации делаем сразу на железе:

– вводим дополнительные Q-модули, которые обеспечивают стабильный временной шаг и базовую отбраковку шумовых участков;

– добавляем элементарные пороговые фильтры, чтобы не гонять совсем мусор.

2. Промежуточный уровень (Q-PreFilter)

– маленький, но быстрый блок, привязанный к Q-Beacon, который:

– пересинхронизирует данные по единому «маяку»;

– вычисляет простейшие статистики (средние, дисперсии);

– отметает участки, явно не содержащие полезной информации.

3. Алгоритмический уровень (Palingenesis v0.4)

– уже не занимается «выгребанием мусора», а работает по чище подготовленным данным:

– фокусируется на фазовых корреляциях;

– строит модели «эхо» и устойчивых паттернов;

– готовит материал для дальнейшей реконструкции.

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

– Да, – подтвердил Самир. – И это позволит нам перейти от v0.3x, которая в основном считает, к v0.4, которая уже начинает *моделировать*.

Джас хмыкнул:

– Звучит красиво. Но это всё равно перекладывает часть работы на мой Aegis. Ты хочешь от меня Aegis-β-2, который не просто «снимает», а ещё и «думает».

– Не думает, – возразил Самир. – Слушает. И чётче стучит в Q-Beacon.

Дмитрий задумчиво посмотрел на схему.

– Джас, а что у нас реально по запасу по мощности и стабильности, если мы начнём вешать на Aegis-β дополнительные Q-модули и пороговые фильтры?

Инженер пожал плечами:

– Запас есть. Мы делали β с прицелом на расширение. Но любая новая цепь – это потенциальный источник шумов, резонансов и физических точек отказа. С твоими софтовыми блоками можно откатиться, здесь – нужно перетирать металл.

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

Технический спор начался не с крика, а с определений. Так, как любят люди, которые по профессии должны быть точными.

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

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

Он ткнул пальцем в блок «Aegis-β» на схеме:

– У тебя в модельках всё идеально: нет дрейфа температуры, нет микровибраций, нет паразитных полей от соседних блоков. В реальной лаборатории это всё есть. И каждый дополнительный «мини-мозг» на железе – это ещё один источник паразитики.

– Именно поэтому, – парировал Самир, – я и хочу развести уровни. Сейчас всё это сваливается в Palingenesis, и мы туда записываем не только сигналы, но и наши ошибки. Потом начинаем объяснять «эхо» железом, алгоритмами, погодой и фазой луны одновременно.

Он кивнул на Aegis:

– Если мы научим твой β-2 отдавать нам более структурированный поток, мы сможем отдельно анализировать, где физика, а где математика.

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

– Давайте конкретнее, – сказал он. – Джас, что тебе нужно, чтобы перейти от β к β-2 в том виде, который предлагает Самир?

Джас задумчиво посмотрел на схему и, чуть прищурившись, начал раскладывать по полочкам:

– По железу:

– дополнительный слой экранирования вокруг новых Q-модулей;

– новая разводка питания, чтобы они не садились на уже загруженные линии;

– отдельные датчики температуры и вибраций в зоне этих модулей;

– переразметка кабельных трасс, чтобы не было перекрёстных наводок.

Он вздохнул:

– По времени – месяц плотной работы с парой ночных смен и серией калибровок. По людям – нужны мои руки, руки Алексея и ещё одного техника. По нервам – много кофе.

– По алгоритмам, – сказал Самир, продолжая цепочку, – мне нужно:

– совместно с тобой определить формат данных, которые отдают эти Q-префильтры;

– задать жёсткие временные ограничения: сколько миллисекунд они могут задерживать поток;

– заложить в Palingenesis v0.4 логику, которая будет учитывать, где данные прошли через железный фильтр, а где – нет.

Он помолчал и добавил:

– И ещё: мне нужно, чтобы Оскар участвовал в проектировании архитектуры логов. Иначе мы опять получим кашу из сырых, полуобработанных и «когда-то префильтрованных» данных без понятного происхождения.

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

– Я хочу, чтобы человек, который понимает, как данные текут по сети и где они могут потеряться или исказиться, помог нам не сделать глупостей, – ответил Самир. – Он теперь часть команды. Либо мы это учитываем, либо потом будем смотреть расследования Маши о том, как «ошибка в логировании привела к…».

Дмитрий кивнул:

– Оскар должен быть в этой комнате, когда вы окончательно решите, как выглядит Q-PreFilter и система логов. Я приглашаю его на следующее обсуждение.

Он сделал глоток кофе и добавил:

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

Чертёж Aegis-β-2 они открыли как отдельный документ. Без формул, но с ясно обозначенными слоями.

Черновой описательный чертёж Aegis-β-2 (extract)

1. Основная структура:

– Центральная камера для образца (объём до X см³), окружённая тремя концентрическими рамами катушек.

– Внутренний слой катушек отвечает за формирование основного поля (диапазон частот f_base ± Δf).

– Средний слой – корректирующий, компенсирующий локальные неоднородности и дрейф.

– Внешний слой – экранирующий, минимизирующим влияние внешних полей.

2. Q-модули (расширение β → β-2):

– Дополнительные синхро-модули, привязанные к центральному Q-Beacon:

• обеспечивают временную метку для каждого импульса/ответа с точностью до микросекунд;

• осуществляют первичную пороговую фильтрацию по амплитуде и спектру (отбрасывают шумовые участки ниже заданного порога).

– Встроенные датчики температуры и вибрации для мониторинга стабильности работы блока.

3. Интерфейс с алгоритмическим уровнем:

– Формат выходных данных стандартизирован:

• сырые данные (по запросу);

• предварительно фильтрованные (по умолчанию для Palingenesis v0.4);

• диагностические (для анализа сбоев и дрейфов).

Примечание:

Конфигурация β-2 рассчитана на возможность дальнейшей модернизации под режимы MR без полной перестройки аппаратуры (резерв по мощности и по каналам связи).

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

– Мы надеемся, что да, – ответил Джас. – Но если нет – будем рисовать картинки.

– Я бы попросила, – сказала она, подходя ближе, – чтобы в «интерфейсе с алгоритмическим уровнем» сразу были учтены две вещи.

Она показала на раздел 3:

– Во-первых, чтобы было чётко понятно, какой канал используется для эксперимента, а какой – только для диагностики. Во-вторых, чтобы существовал физический способ «разорвать» подачу импульсов – не только через софт.

– Ты про аппаратный стоп, – понял Джас.

– Да, – кивнула Ханна. – В кодексе, который мы приняли на прошлой неделе, были прописаны стоп-процедуры. Теперь нужно, чтобы архитектура тоже их знала.

Дмитрий улыбнулся:

– Это тот редкий случай, когда всё действительно складывается в систему.

Когда пришёл Оскар, спор между Самиром и Джасом уже оформился в набор конкретных пунктов. Он вошёл в лабораторию, как всегда, в худи и с наушниками на шее, но в этот раз – с официальным бейджем сотрудника.

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

– Паранойя – это то, что мы теперь называем «архитектурой безопасности», – ответил Дмитрий. – Нам нужно, чтобы данные, которые бегут через Aegis, Q-модули и Palingenesis, были не только красивыми, но и отслеживаемыми.

Самир кратко изложил идею Q-PreFilter и трёх уровней. Оскар слушал, покачивая ногой, как человек, для которого сложные схемы – привычный ландшафт.

– То есть, – подвёл он, – у вас будет:

– железный слой, который уже что-то отбрасывает;

– небольшой промежуточный мозг, который структурирует поток;

– и большой софт-мозг, который делает магию.

Он перевёл взгляд на Самира:

– И ты хочешь, чтобы я помог сделать так, чтобы мы потом понимали, что именно прошло через каждый из этих слоёв?

– Да, – ответал Самир. – Мне не нужны чудеса. Мне нужны трассировки.

Оскар сел за свободный терминал и быстро вывел свою версию архитектуры:


Technical Memo – Q-Logging Architecture (draft)

Автор: O. Holz, совместно с S. Ahmed

Уровень 1: RawLog (железо)

– минимальные, но неизменяемые записи о каждом импульсе и ответе: временная метка от Q-Beacon, ID канала, базовые амплитуды.

– пишутся напрямую с Aegis-β-2 на защищённый модуль, недоступный для перезаписи из Palingenesis.

Уровень 2: PreFilterLog (Q-PreFilter)

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

– связываются с RawLog через общий ID события и временную метку.

Уровень 3: AlgoLog (Palingenesis v0.4)

– записи о том, какие алгоритмические решения были приняты (обнаружение паттернов, «эхо», расчёты корреляций).

– содержат ссылки на соответствующие записи в RawLog и PreFilterLog.

Цель:

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


– Если мы это сделаем, – сказал Оскар, – то в случае аномалий или, не дай бог, инцидентов, мы сможем честно ответить на три вопроса:

1) Это было в железе?

2) Это появилось в префильтре?

3) Это нарисовал софт?

Он усмехнулся:

– И у Маши будет меньше поводов говорить, что мы всё прячем.

– А у нас – больше работы, – пробурчал Джас. – Но ладно. Если это поможет потом не объяснять на слушаниях, что «логов как раз за это число нет», я готов потерпеть.

Самир чувствовал приятное ощущение, которое редко бывает в больших проектах: как будто кусочки из разных голов начали встать в один рисунок. Aegis-β-2, Q-PreFilter, Palingenesis v0.4, логирование – всё это складывалось в нечто, что уже можно было назвать архитектурой, а не набором идей.


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

– Смотри, – сказал Самир, выводя на экран графики нагрузки, – вот наши последние ночные тесты. Aegis выдаёт примерно N мегасэмплов в секунду по всем каналам. Palingenesis v0.3 переваривает это, но на грани – мы работаем почти в реальном времени, но запас минимальный.

Он показал другой график:

– Если мы добавляем более сложные модели «эхо», Palingenesis начнёт тормозить. Без префильтрации мы не сможем ни увеличивать разрешение, ни расширять спектр.

– А если мы добавим префильтрацию на железе, – возразил Джас, – то у нас появятся требования к стабильности Q-модулей, которых сейчас нет. Малейший сбой – и ты будешь считать идеальные модели по кривым данных.

– Именно для этого, – вмешался Дмитрий, – и нужны выделенные диагностические каналы и RawLog. Чтобы мы могли отловить такие сбои.

Он подошёл к доске и, к удивлению обоих, начал рисовать свою версию разбиения:

– Давайте ещё раз.

– У нас есть физический слой: Aegis-β-2. Там должно быть:

• стабильность полей;

• чёткая связь с Q-Beacon;

• возможность физического отключения импульсов (аппаратный стоп).

– Есть слой структурирования: Q-PreFilter. Он:

• не принимает «умных» решений;

• только метит участки как «шум» или «кандидат в сигнал»;

• отдаёт ссылки в лог.

– И есть слой интерпретации: Palingenesis v0.4. Он:

• отвечает за смысл;

• не имеет права переписывать историю того, что пришло снизу.

Он обвёл три слоя разными цветами:

– Горлышко будет там, где мы нарушим это разделение. Если Aegis начнёт «думать», или Palingenesis – «подчищать» логи, или Q-PreFilter – играть в маленького учёного, мы потеряем прозрачность.

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

– Считай, что это наша внутренняя «конституция архитектуры», – сказал Дмитрий. – И да, я хочу, чтобы это потом было прописано в документах ВНС. Не только как схема, но и как принцип: разделение физики, структурирования и смысла.

Джас вздохнул:

– Ладно. Я согласен, что моё горлышко – не единственное. Твоё тоже не без греха, Самир.

– Алгоритмы всегда грешны, – спокойно сказал Самир. – Вопрос в том, признают ли они это в логах.


День прошёл в привычной суете. Алексею достались самые осязаемые задачи: он вместе с ещё двумя техниками начал подготовку к физической модернизации Aegis. Для него архитектура была не только блоками на экране, но и тяжёлыми стойками, кабелями, которые нужно было аккуратно проложить, и новыми креплениями под Q-модули.

– Это всё потом где-то там будет мигать и считать, – пробормотал один из техников, помогая ему нести новый модуль. – А мы – как всегда, «руки».

Алексей улыбнулся:

– Руки – это не только таскать. Это ещё и первыми видят, когда что-то не так.

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

У двери секции он снова заметил синий стикер с надписью «Кодекс до модернизации – и после тоже». Теперь он воспринимал его не как абстрактную фразу, а как напоминание: любое железо, которое они сюда принесут, будет работать не в пустоте, а внутри тех правил, которые они вчера обсуждали.


К вечеру они снова собрались у виртуальной доски – уже в более широком составе: Дмитрий, Самир, Джас, Ханна, Оскар, Алексей на заднем плане.

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

– Итак, – сказал Дмитрий, – подведём промежуточный итог. Что мы сегодня сделали с архитектурой?

Самир начал перечислять, пункт за пунктом:

– Мы:

1. Зафиксировали трёхслойную архитектуру:

– физический слой (Aegis-β-2);

– структурирующий слой (Q-PreFilter);

– алгоритмический слой (Palingenesis v0.4).

2. Определили принципы разделения ответственности:

– Aegis обеспечивает стабильность поля и базовые измерения, плюс аппаратный стоп;

– Q-PreFilter очищает поток от явно шумовых участков, не принимая «содержательных» решений;

– Palingenesis занимается смыслом – корреляциями, моделями, «эхо».

3. Заложили архитектуру логирования:

RawLog, PreFilterLog, AlgoLog, связки между ними.

4. Согласовали, что модернизация Aegis до β-2 включает дополнительные Q-модули, датчики и резерв по мощности под возможные MR-режимы.

Он сделал паузу и добавил:

– И главное – мы договорились, что архитектура будет учитывать не только вычислительную эффективность, но и этический кодекс.

Ханна кивнула:

– Да. Я хочу, чтобы в документации к Aegis-β-2 прямо было написано, где и как реализуется аппаратный стоп, и кто имеет право им пользоваться. И чтобы в логи это тоже попадало.

– Будет, – сказал Джас. – Я поставлю в схему отдельный блок и назову его так, чтобы ни у кого не было соблазна обойти.

– Назови его просто, – предложил Оскар. – Не «Emergency Override», а «Stop». Чтобы даже в стрессе не перепутать.

– Я могу, – сказал Джас, – нарисовать на нём большую красную кнопку.

– Только не делай её настоящей красной пластмассовой кнопкой на виду, – вмешался Дмитрий. – Мы живём не в фильме.

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

Когда большинство разошлось, в лаборатории остались трое: Самир, Джас и Дмитрий. На экране всё ещё горела схема, теперь уже с пометкой в углу: «Arch v0.4 – draft».

– Знаете, – тихо сказал Джас, глядя на блок Aegis-β-2, – я впервые смотрю на эту штуку и думаю не только о том, как она будет «жечь красиво», но и о том, как она впишется в весь этот слой логов и кодексов.

Он постучал пальцем по изображению:

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

– Потому что так и есть, – ответил Самир. – И это «большее» – не только наука, но и институт.

Он взглянул на Дмитрия:

– Это то, о чём ты говорил в самой первой речи: чтобы инженеры не могли потом сказать: «мы не знали».

– И чтобы математики не могли сказать: «мы только считали, мы не при делах», – добавил Дмитрий.

Он посмотрел на Palingenesis v0.4 и почувствовал лёгкий ток воодушевления. Не того восторга, который бывает от красивой теоремы, и не адреналина от успешной демонстрации. Скорее тихого удовлетворения от того, что идея начинает обрастать плотью и нервами.

– У нас ещё будет много споров, – сказал он. – И архитектурa ещё не раз поменяется. Но сегодня, кажется, мы впервые сделали шаг, который связывает всё: физику, алгоритмы, безопасность, ответственность.

Джас взял маркер и, почти не думая, на свободном месте схемы нарисовал маленький круг. Внутри написал: «Aegis-β-2 – core».

– Ладно, – сказал он. – Соберём из этого мир.

Фраза повисла в воздухе не как шутка, а как обещание.

Самир, глядя на схему, мысленно добавил к ней маленькую надпись, которую не стал выводить на экран: «Palingenesis v0.4 – первый шаг к тому, чтобы не только слушать эхо, но и понимать, что оно говорит».


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


– /arch/

– arch_v0.3x_diagram.png

– arch_v0.4_draft.png

– q_logging_memo_OH_SA.txt

– aegis_beta2_notes_JS.txt


Он открыл текстовый файл и добавил строку:

«Архитектура – это не только способ заставить систему работать быстрее. Это способ заставить её работать честнее».

Потом выключил монитор. В темноте лаборатории мягко светились только индикаторы Aegis и Q-Beacon. Где-то глубоко внутри стоек уже готовилось место для новых модулей, фильтров и логов.

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

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

Глава 9. Первая публикация

Ранним утром лаборатория была полупустой; щёлкающие вентиляторы и ровное, синее свечение экранов создавали ощущение пространства, где мысли и данные были плотно связаны. Для Самира день начинался не с кофе – хотя он пил его, как все, – а со списка задач: финализировать разделы метода, убедиться, что все графики подписаны, и проследить, чтобы артефакты в логах были помечены и объяснены. Препринт. Наконец.

bannerbanner