Хозяйка дождей и ветра (СИ) - Брэйн Даниэль
Глава 11
Я смогла успокоить родителей, что ничего серьезного не случилось. Просто явление, которое мне необходимо как можно скорее задокументировать, потому что оно крайне важно для моей диссертации. Необычное, редкое явление, подлежащее фиксации, описанию и затем — детальному анализу. Я не была уверена, что они успокоились, но хотя бы поверили, уже плюс.
Таксист, перемену маршрута с происшествием не связавший, был этой единичной тряской напуган, но как вероятной неисправностью, поэтому довез нас до здания управления, высадил и родителей тоже и вызвал техпомощь, а отец с матерью остались дожидаться другое такси.
Ночью шаги гулко отдавались по коридору, мерцали приглушенные лампы и было слышно гудение техники. Ночью управление не спало, в каждом отделе находились дежурные, где-то даже несколько человек, особенно когда ожидали что-то тревожное или что-то могло пойти не так. Я спешила к себе, и сердце мое гулко грохало в такт шагам, мне казалось, что происходит что-то непоправимое, но это Регина металась от испуга. Моя часть «Лоя» была полностью собрана и сосредоточена, а часть «Регина» надеялась, что она знает, что делать со всей этой странностью.
В отделе все было спокойно. Сидел дежурный инженер… Питер. Да, Питер.
— Все в порядке?
— Ну, Лоя… Лоя, ты вообще спишь по ночам? Все отлично.
Питер до моего прихода мирно кемарил. Зараза такая, может быть, он это важное и упустил! Но ведь должны были включиться предупреждения? Нет, визуально ничего, ни на карте, ни на моем компьютере, да и на других экранах никаких сообщений, что что-то не так. Итак: что именно не так?
Я все знала, только вот не могла сформулировать ничего. Почему то, что тряхнуло шифтер, значимо?
Потому что шифтеры для нашей страны имеют предустановленную программу для наших условий эксплуатации, Регина. И то, что шифтер почувствовал движение воздуха и не компенсировал его, означает, что эти условия где-то вышли за рамки нормальных. Сами по себе они так измениться не могли, а реакция транспорта всегда учтена при разработке. У нас не бывает, например, смерчей, как в Северном Мерриге. Не бывает таких проливных ливней, как в Юго-Восточном Зенти. Нет песчаных бурь, ничего. И нет смысла ставить базовое программное обеспечение такое, чтобы оно с этим справлялось, а вот морозы — да, это возможно, и снегопады, и перепады температур. Если бы шифтер-такси был создан для Меррига, он обработал бы подобное колебание воздушных масс раньше, чем мы успели бы это заметить. А вот при минус десяти шифтер для Зенти даже не поднялся бы в воздух, не ставят там такие программы на такси, незачем, в другие регионы городской транспорт не летает.
Я просочилась в кресло, перевела компьютер в рабочий режим, запустила сканирование, внимательно прошлась взглядом по карте. Питер, воспользовавшись тем, что я на месте, отправился за кофе. Или Лое периодически — или постоянно — звонили другие коллеги и просили приехать, или еще что, но он ни разу не удивился тому, что вот она я.
Что не так? Вот фронты идут по определенным маршрутам. Ну, тут немного пошло вкривь и вкось, ничего необычного, я хотела поправить… подумала и не стала. Не потому, что дала зарок не трогать чужие ошибки, потому что это могло быть значимо, ошибка это или закономерная реакция атмосферы на наше вмешательство. Что у нас есть еще? Вот город, вот маршрут, по которому мы ехали, и примерно вот тут шифтер не преодолел сопротивление воздуха. Или сдвиг ветра. Или еще что-нибудь. Но все тихо? Фронт устойчивый, перемены погоды не ожидается. Давление, направление и сила ветра, шкала магбатов…
Выше нормы на три процента? Этого просто не может быть!
Я открыла таблицы, проверить вручную. Вывела кривые по городу. Нигде нет превышения, наоборот, ниже нормы, потому что нет никакого влияния. А на этом участке оно произошло? У меня было только одно объяснение, и я наложила на карту схему движения наших шифтеров и дронов. Вот крупная волна — шифтеры и большие дроны, размером с настоящий транспорт, они держат фронты. Дроны помельче, как тот, с которым облажалась Кейра, корректирующие. И совсем маленькие, локальные… что?
(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})Вошел Питер, и я услышала, как он встал за моей спиной и ойкнул.
— Ничего себе. А откуда он тут?
Да если бы я могла ответить! Посреди города выпустил заряд на пять магбатов маленький локальный дрон, отбившийся от основной массы. Заряд небольшой, годный, чтобы вызвать слабый дождик, как раз заказ на орошение. Но дрон выпустил заряд даже близко не в облаках! Так разве бывает?
И куда он делся? А, вот он. Вернулся как ни в чем не бывало.
— Какие он круги выписал, — хмыкнул Питер. — Посмотри, что у него с вводными? Как будто часть кода пропала и он пошел по заводским установкам.
Я обрадованно кивнула, вспомнив, что у Питера было плюс ко всему образование программиста и он действительно мог верно определить причину сбоя в работе. Так что я предложила ко мне присоединиться. Питеру было скучно, он согласился.
— Смотри, — сказал он, указывая на длинную и мало мне понятную вереницу цифр и знаков. — Видишь? Тут тег не закрыт, поэтому дрон так штырит. Дай-ка… точно, пары строк не хватает.
— Как такое могло произойти?
— Ну, — ухмыльнулся Питер, — или кто-то пытался грузить его через обычный браузер, а дроны такое не любят, им лучше все «засасывать» через наши программы, или кто-то зачем-то влез в код. Но я бы поставил на браузер. Код проще скопировать «контрол-си» и ничего при этом не трогать.
— А еще? — поторопила я, мало что вычленив из его речи, кроме того, что дрону дали задание весьма нетипичным образом.
— Ну еще код видно… а браузер — нет. Ясно? — Он вздохнул.
Я замотала головой: конечно, ничего мне не ясно в этих терминах и сленге. Что видно, кому, как?
— Мы понятия не имеем, кто именно взял и впихнул в дрон кривой код, — принялся как умел разжевывать Питер. — Программы все фиксируют, в том числе и того, кто в них работает, кто зашел-вышел, что за изменения внес, а браузер мало того что обезличен, так еще и за раз сколько хочешь кода обрежет, это надо смотреть, проверять и копировать недостающее… — Питер опять вздохнул. — Да и браузеров разных полно… В общем, если эта ошибка с кодом допущена кем-то, кто работал через наши программы и приложения, то автора этого косяка мы найдем в пять секунд. А если он вставлял код через браузер — скорее не найдем, если только очень постараться и надеяться на везение.
— И? — разочарованно спросила я. — Мы никак не можем выяснить, кто программировал этот дрон?
Я кликнула на сведения. Контроль этого дрона осуществляет Элен, он пришел к нам с ее стороны, но это нормально. Она поддерживала границу фронта, обстановка там достаточно сложная, ей нужно много техники разной мощности. Кто сунул этому дрону неверный код, неужели она сама? Маловероятно, она же такая опытная.
— Я бы сказал, — протянул Питер, разглядывая экран, — что тут два варианта. Либо она что-то доделывала из дома, либо попросила кого-то… кроме тебя. Да, Лоя, пока ты не встала в позу, все могли спать спокойно, у тебя таких косяков не было никогда. А теперь всем придется выкручиваться.
— Или учиться работать самим, — буркнула я. На Лоиной шее сидел, свесив ножки, весь отдел, а она была и рада. Незаменимых людей теоретически нет, но это если смотреть из начальственного кабинета. Если существует такая коллега, как Лоя, незаменимость можно в ней измерять. Единица измерения — одна Лоя. Полезность одной Лои…
— Ну или так, — согласился Питер, прервав мои математические измышления. — Но Элен вряд ли могла так облажаться, вот интересно, кого она могла попросить? Чай-кофе, обед, отчет, это она любитель, но чтобы в управление фронтом кого пустить — такого не помню.
Да и я — частью Лои — не припоминала. Именно потому, что ответственность все равно на Элен, и неважно, кто скопировал кривой код. А еще Элен заносчива, считает себя самой опытной, периодами поучает всех, кто подвернется под горячую руку, и считает выше своего достоинства просить кого-то ей помогать в работе. В такой.