Саншайн, поразмыслив, была вынуждена согласиться с единорожкой. Старлайт осталась писать программу, а пегаска и Санбёрст отправились в радиокомнату, чтобы связаться с человеком.
Саншайн включила рацию, вызвала человека голосом по радио, и, когда в зеркале появилось изображение, отправила сообщение с телеграфного аппарата:
'ЗДРАВСТВУЙТЕ! У НАС СРАЗУ ДВЕ НОВОСТИ. НАШИ УЧЕНЫЕ В MIT СДЕЛАЛИ ОПТОВОЛОКНО ПО ВАШЕЙ ТЕХНОЛОГИИ. МЫ УЖЕ ПРОБУЕМ ПЕРЕДАВАТЬ ЧЕРЕЗ НЕГО ИНФОРМАЦИЮ И МАГИЧЕСКИЕ ЗАКЛИНАНИЯ, НО С ЭТИМ МЫ ПОКА ЧТО ТОЛЬКО НАЧАЛИ. САНБЕРСТ УЖЕ МЕЧТАЕТ СВЯЗАТЬ ОПТОВОЛОКНОМ КОМПЬЮТЕРЫ В МЭЙНХЕТТЕНЕ, КАНТЕРЛОТЕ, ПОНИВИЛЛЕ, СТЭЙЛБРИДЖЕ, КРИСТАЛЬНОЙ ИМПЕРИИ И СТАЛЛИОНГРАДЕ.'
'Ого! У вас уже столько компьютеров?' — Андрей явно удивился.
'ПО ОДНОМУ НА КАЖДЫЙ ИЗ ГОРОДОВ, КРОМЕ КРИСТАЛЬНОЙ И СТАЛЛИОНГРАДА, — пояснила Саншайн. — ВСЕ ЭВМ СТАЛЛИОНГРАДСКОГО ПРОИЗВОДСТВА. В МЭЙНХЕТТЕНЕ ЭВМ СТОИТ В MIT. В СТЭЙБЛРИДЖЕ ТОЖЕ СВОЙ ВЫЧИСЛИТЕЛЬНЫЙ ЦЕНТР. В КАНТЕРЛОТЕ ЭВМ СТОИТ НА ВОКЗАЛЕ, ОБСЛУЖИВАЕТ ЗАКАЗ БИЛЕТОВ НА ПОЕЗДА И ДИРИЖАБЛИ ПО ВСЕЙ ЭКВЕСТРИИ. СИСТЕМА ТОЛЬКО В ЭТОМ ГОДУ ЗАРАБОТАЛА, СТАЛО ОЧЕНЬ УДОБНО. В СТАЛЛИОНГРАДЕ ЭВМ ЕСТЬ В КАЖДОМ ИНСТИТУТЕ, И В УНИВЕРСИТЕТЕ, КОНЕЧНО, ТОЖЕ.'
'Вам надо для эффективности научных разработок организовать единое агентство перспективных проектов, что-то вроде Advanced Research Projects Agency в нашем мире, которое будет их координировать, — посоветовал человек. — Вы сейчас как раз примерно на том технологическом уровне, когда это жизненно необходимо. Тогда и вашу будущую компьютерную сеть можно будет развивать под управлением этого агентства, так же как в нашем мире развивался ARPANET. Тогда тоже сначала соединили линиями связи ЭВМ, установленные в четырёх крупнейших университетах, и именно с этого началось построение глобальной сети. Предложите это принцессе Луне.'
Саншайн показала распечатанный на телеграфном аппарате ответ Андрея Санбёрсту. Оранжевый единорог прочитал его и кивнул:
— Хорошая идея. Передам Её Высочеству, думаю, она тоже оценит.
'А какая вторая новость? — спросил человек. — Вы написали, что у вас две новости?'
'МЫ СНОВА ЕДЕМ В КРИСТАЛЬНУЮ, — передала метеоролог. — НАШИ АРХЕОЛОГИ НАШЛИ ТАМ УПРАВЛЯЮЩИЕ КРИСТАЛЛЫ ДЛЯ ПОРТАЛА. ТЕПЕРЬ НУЖНО КАК-ТО ЗАРЯДИТЬ ДРЕВНИЕ АККУМУЛЯТОРЫ МАГИИ, И ТОГДА МЫ СМОЖЕМ ОТКРЫТЬ ПОРТАЛ.'
'Ого, какая новость! — Андрей явно не ожидал таких известий. — Неужели портал питается от аккумуляторов? Для него же наверняка нужно очень много энергии?'
'МЫ ЕЩЕ НЕ ВО ВСЕМ РАЗОБРАЛИСЬ, — написала Саншайн. — ОСНОВНОЕ МАГИЧЕСКОЕ ПИТАНИЕ В КОМПЛЕКСЕ НЕ РАБОТАЕТ, НО ТАМ МАССА ВСЯКИХ АВТОНОМНЫХ УСТРОЙСТВ И МЕХАНИЗМОВ С ОТДЕЛЬНЫМ ПИТАНИЕМ. ТЕ ЖЕ ДВЕРИ, НАПРИМЕР, КРИСТАЛЛЫ ОСВЕЩЕНИЯ И МНОГО ЧЕГО ЕЩЕ. ПРИЕДЕМ И УЗНАЕМ.'
'Удачной вам поездки!' — пожелал им Андрей.
Саншайн закончила сеанс связи и тоже начала собираться в поездку. Санбёрст написал доклад принцессе Лу́не, передав предложение человека создать агентство перспективных проектов и объединить отдельные компьютеры в общую сеть. Вторая идея высказывалась уже не впервые, но именно сейчас, с появлением оптоволокна, её стало можно реализовать.
Трикси подошла к Старлайт и попросила научить её включать и выключать ЭВМ:
— Трикси хочет сама попробовать написать себе расчётную программу, — пояснила голубая единорожка. — Раз вам нужно срочно уехать.
Старлайт показала ей все роговодства и инструкции, научила Трикси и Сторм Клауда включать и выключать ЭВМ, а также рассказала про типичные неисправности и отказы, объяснив, что делать в каждом случае.
— Мы пос-стараемс-ся ничего не ис-спортить, — заверил Сторм Клауд.
-=W=-
2022 год н. э.
С момента окончания работы над прошивкой для мехаспрайта Дмитрий ежедневно пользовался плагином, который прислала ему Люсия. Вскоре он понял, что 'генератор кода' работал далеко не идеально. Довольно часто он делал глупые ошибки, забывая нужные параметры или прописывая в коде обращения к несуществующим методам. В этом случае Дмитрий кидал ему сообщения об ошибках, и плагин исправлял их сам. Обычно с третьей-четвёртой попытки код начинал работать, иногда и быстрее.
При этом генерация кода заметно экономила время на написание всяких тривиальных функций. Простой код обычно получался с первого раза, выглядел аккуратным и был хорошо документирован комментариями. Если нужно было реализовать что-то сложное, тут уже требовалось самому составить алгоритм, план его реализации, скормить его 'искусственному болвану', а затем внимательно следить, чтобы он не напортачил. При этом 'болван' неплохо работал и в режиме 'сверху вниз', сначала составляя план разработки, затем детализируя его этапы, и уже после детализации переходил к написанию кода.
Очень большие проекты приходилось реализовывать по частям, так как не хватало контекстного окна, и 'болван' с какого-то момента забывал то, что писал вначале. Дмитрий несколько раз обращался к Люсии в личку за советами, и она каждый раз подсказывала, какие параметры поменять, что подкрутить в настройках, чтобы генерация работала быстрее, и можно было работать с большим контекстом. Программист поставил SimpleX Chat на компьютер и перенёс туда базу сообщений, потому что мессенджер оказался довольно прожорливым и вместе с постоянно включённым Wi Fi быстро высаживал аккумулятор.
Сообщение от Люсии стало неожиданностью — чаще Дмитрий писал ей сам, либо в общем чате, либо в личку, если вопрос касался совместной работы или настроек плагина-генератора.
'Здравствуйте, Дмитрий. Я сейчас работаю над прошивкой старинного робота-эквиноида. Эйелинн, помните? Наши друзья нашли ещё одного такого же, с разбитой печатью. Я скопировала прошивку Эйелинн и пытаюсь её немного дописать, чтобы затем можно было прожечь исправленный образ на новую печать. Но я тут немного зашиваюсь, на мне ещё и основная работа висит. Если у вас найдётся время, была бы признательна за помощь.'
Поработать с прошивкой древнего механизма программисту было более чем интересно.
'Конечно, с удовольствием помогу, — написал он. — У меня сейчас на основной работе небольшое затишье как раз.'
Люсия сбросила ему ссылку на репозиторий с кодом и план работы с выделенными пунктами, которые ему нужно было реализовать. Дмитрий скачал проект через git, открыл в редакторе и начал разбираться в коде.
Код был сложный, явно декомпилированный, имена переменных и функций не были 'говорящими', поэтому программисту пришлось попросить плагин составить таблицу имён, чтобы разобраться в коде, что означает каждая переменная, и что делает каждая функция. С помощью 'электронного болвана' и таблицы разобраться в коде оказалось намного проще.
Дмитрий довольно быстро увидел несколько мест, где код можно было оптимизировать, и переписал эти функции заново, немного упростив алгоритмы. С помощью плагина написал тесты для каждой функции, проверил правильность работы. Исправил несколько ошибок в самих тестах и две в новых функциях. Подготовив коммиты, он оформил пулл-реквест, коротко расписав все сделанные им исправления, и отправил Люсии.
'Спасибо! — Люсия ответила довольно быстро. — Сейчас посмотрю.'
Дмитрий пока переключился на собственный проект. Через час пришло ещё одно сообщение:
'Всё хорошо, смерджила код, прогнала общий тест, работает нормально. Можно вас ещё немного поэксплуатировать?'
'Давайте', — Дмитрий приписал к ответу смайлик с улыбкой.
Она прислала новый файл с планом, выделив ещё несколько пунктов. Так они проработали несколько часов, оптимизировали несколько основных алгоритмов, изрядно перелопатив код.
'По-хорошему, я бы тут половину кода переписал, заменив монолитное ядро на модульную архитектуру, — написал Дмитрий. — Но это много времени займёт.'
'Я уже сама об этом думаю, — отозвалась Люсия. — Но боюсь порушить то, что работает. Можно, конечно, потом написать эмулятор, переписать код ядра на модули, добавить, где надо, микросервисы и в эмуляторе погонять. Но это явно не за несколько дней делается. Давайте пока ограничимся оптимизацией. Пусть наши друзья попробуют, соберут своего эквиноида, чтобы он хотя бы включился и ходить мог. А там уже можно будет и о новой версии прошивки подумать.'
'Согласен, — ответил Дмитрий. — Пишите, если ещё помощь будет нужна. Вообще, если заниматься такой глубокой переработкой кода, это бы стоило на живой встрече обсудить. Может, я бы куда-то подъехал, раз уж вы тоже в Сербии?'
'Ой, нет, — сразу ответила Люсия. — Я не могу. Понимаю, очно обговорить и распланировать было бы эффективнее, но не могу.'
'А что мешает?' — Дмитрий был озадачен.
'У нас строгие правила. Я и так занимаюсь этим проектом помимо основной работы, да ещё и вас подключила, — написала Люсия. — По сути, уже нарушила несколько правил. Меня сейчас Марина прикрывает, если бы не она, я бы не рискнула давать вам доступ к нашим вычислительным ресурсам.'
'Марина — ваш начальник?' — уточнил Дмитрий.
'Начальник сектора. Не непосредственный. Мой тимлид в курсе, но он тоже Марине подчиняется, поэтому не возражает, — пояснила Люсия. — Тем более, она скорректировала планы, так что за сроки ни его, ни нас дрючить не будут.'
'Жаль, конечно, — посетовал Дмитрий. — На встрече можно было бы не только направления для работы наметить, но и мозговой штурм устроить. Может, Марине эту идею подкинуть? Она сама пусть и организует.'
'Она адекватная как начальник, всё понимает, — ответила Люсия, — но против правил безопасности не пойдёт. Не её уровень. Давайте уж как-нибудь дистанционно договариваться.'
'Понятно, — написал программист. — А в нерабочее время, в выходные, разве нельзя встретиться? Этот проект для нас всё равно ведь на уровне хобби.'
'Нет, простите, — сразу же закрылась Люсия. — Личные встречи исключены, к сожалению.'
'ОК. Жаль', — ответил Дмитрий.
-=W=-
Гора Кантерхорн. Ситуационная комната.
Год 1004 от восстания Найтмер Мун.
Неудача с амулетом Тирека, который не пожелал превращаться в ключ, несколько удивила и обескуражила Твайлайт. Всю дорогу обратно в Понивилль она обдумывала ситуацию, а затем ещё пару дней перелопачивала книги в библиотеке, пытаясь найти в них пусть не ответ, но хотя бы какую-то зацепку или подсказку. Её не так волновало, почему талисман не превратился в ключ, как требовалось решение проблемы с Тиреком. Гигантский кентавр уже несколько дней лежал на лугу под охраной бэтпони. Теперь нужно было как-то транспортировать эту тушу в Тартар, пока он не пришёл в себя, и пока не началась зима.
Подсказка так и не нашлась, и аликорн отправилась в Кантерлот, посоветоваться со старшими принцессами. Её Солнечное Высочество, узнав, по какому вопросу явилась Твайлайт, собрала на совещание командиров крыльев Старой гвардии. Опытные маги могли знать детали, неизвестные даже принцессам. Поскольку дело касалось магии, принцесса Селестия сама вела это совещание в закрытом режиме.
В начале совещания Твайлайт коротко доложила суть проблемы и выложила на стол амулет Тирека.
— Вы позволите? — Хаммер Пендант осторожно придвинул к себе артефакт и несколько минут изучал его диагностическими заклинаниями. Потом он покачал головой и добавил. — Я не ощущаю в нём магии, присущей Дереву Гармонии. В нём есть магия, но другая. А остальные артефакты, которые превратились в ключи, вы не привезли?
— Привезла, — ответила Твайлайт, выложив на стол удивительную коллекцию: катушку радужной нити, значок 'Вондерболтов', цветок, монетку и жёлтую резиновую курицу. — Когда амулет Тирека не превратился в шестой ключ, мы вынули остальные ключи из замков сундучка, и они снова превратились в исходные предметы.
— Очень интересно! — Хаммер Пендант по очереди изучил все пять артефактов. — А вот в них магия Гармонии, несомненно, чувствуется!
— Твайлайт, дорогая, — мягким голосом произнесла принцесса Селестия. — Ты сказала, что каждая из твоих подруг получила свой артефакт как награду или сувенир после какого-то поступка, в котором проявились их моральные качества, присущие каждой из них, как Элементу Гармонии?
— Да, Ваше Высочество, — подтвердила фиолетовая аликорн.
— Давай без титулов, так будет быстрее, — улыбнулась Селестия. — Ты тоже принцесса. А этот артефакт вы сняли с Тирека по совету человека?
— Именно, — озадаченно кивнула Твайлайт. — Может быть, это потому что он попал под электромагический удар? Там был такой электромагический шторм, что артефакт мог утратить магию.
— Но магия в нём есть, — возразил Хаммер Пендант. — Она просто другая. Не такая, как в этих пяти.
— Можем долго гадать мы, почему снятый с Тирека артефакт не сработал, как ожидалось, — нетерпеливо произнесла принцесса Лу́на. — Надобно нам решить, как вернуть Тирека обратно в Тартар.
— Мы рассчитывали, что Элементы Гармонии помогут его уменьшить, — ответила Твайлайт. — Человек прямо сказал об этом, когда узнал, что мы сняли с Тирека амулет. Я не знаю, откуда он это взял, но говорил он с убеждённостью.
— Человек мог и ошибиться, — заметил Гравел Квейк, командир Каменного крыла. — Я вообще удивляюсь, откуда он это знает?
— Эм-м... Не знаю... — смущённо пробормотала Твайлайт. — Надо будет спросить у мисс Саншайн или мисс Глиммер.
— В общем-то, человек, вероятно, был недалёк от истины, — заметила принцесса Селестия. — Тирек увеличился в размерах, когда поглотил много магии. Если эту магию из него, условно говоря, выпустить, он снова уменьшится, как это уже было однажды, очень давно. Элементы Гармонии могут подействовать на него нужным образом.
— Но амулет Тирека почему-то не превратился в шестой ключ, так что этот путь для нас пока закрыт, — резюмировала принцесса Лу́на. — Давайте подумаем, как ещё можно откачать из него ворованную магию.
— Эм-м... Прощу прощения, Ваши Высочества, — командир Зелёного крыла Мосси Бранч подняла копытце. — Кажется, у меня есть идея.
— Говори, — кивнула Госпожа Ночи.
— Когда мы исследовали подземелья под Кристальной империей (см. 'Артефактор Эквестрии. Диксди' гл. 15 и 16) я и прикомандированный к Зелёному крылу маг Айрон Спарк попали в древнюю ловушку, которую Спарк называл 'негейт-камера', — рассказала Мосси Бранч. — Эта ловушка постепенно вытягивает магию из попавшего в неё существа. Единорог, попавший в такую ловушку, может вовсе лишиться магии, если он проведёт там несколько часов.
— Негейт-камера! Конечно! Это могло бы помочь, — подтвердила принцесса Лу́на. — В Тартаре Тирек тоже содержался в негейт-камере. Она вытягивала из него лишнюю магию.
— Допустим. Но я не очень понимаю, как нам это сейчас поможет? — спросила Твайлайт. — Негейт-камеры есть в Тартаре и в Кристальной. На лугу к юго-западу от Понивилля их нет.
— Значит, нам надо построить негейт-камеру вокруг Тирека, — ответила Мосси Бранч.
— Построить? Но как? — спросила Твайлайт. — Разве мы знаем, как их строили?
— Мой коллега, Айрон Спарк, который и рассказал мне о секрете древней негейт-камеры и ещё о некоторых тайнах этих старинных подземелий, говорил, что для создания негейт-камеры нужно немного: правильная конструкция, материалы и символы, — рассказала Мосси Бранч. — Негейт-камера даже не содержит заклинаний, так как их магия была бы поглощена ею в первую очередь. Поэтому, как сказал Спарк, негейт-камеры работают всегда. В подземелье, где мы побывали, камер было три. Две из них разрушились и распространили свои свойства на соседние коридоры. В третью мы со Спарком ввалились по ошибке, хорошо, что он быстро очнулся, и мы успели выскочить. В подземельях негейт-камеры обозначены условным знаком — перечёркнутая подкова в круге и три точки вокруг неё.