ID работы: 14710930

Мнимая единица

Джен
R
В процессе
34
Горячая работа! 41
автор
taur00 бета
Размер:
планируется Макси, написано 73 страницы, 8 частей
Описание:
Посвящение:
Примечания:
Публикация на других ресурсах:
Уточнять у автора / переводчика
Поделиться:
Награды от читателей:
34 Нравится 41 Отзывы 3 В сборник Скачать

Часть 1

Настройки текста
       Лу́на работает главным инженером по разработке систем автопилота в компании TesNeit. Звучит круто, но ей пришлось постараться, чтобы оказаться здесь. Впрочем, не обошлось без капли везения. Найтмер Мун тоже работает в этой компании. Её должность звучит как «заместитель главного инженера по разработке систем автопилота». Их работа заключается по большей части в том, чтобы руководить группами инженеров и программистов, отвечающих за компьютерное зрение, навигацию, системы управления тому подобное. В офисе Луну иногда называют Найтмер. Это странно. Кажется, у них довольно сложно спутать цвета шёрстки. Когда-то давно они обе, как и все, начинали как программисты-джуны. Луна предпочитает С++, потому что это более привычный язык программирования, который является логичным продолжением её карьеры хайрвейр-инженеринга. Найтмер больше нравится языки вроде пайтона, потому что они позволяют просто писать код, не вдаваясь в подробности, куда там бегут потоки электронов по транзисторам в процессоре… Языки типа пайтона банально удобнее и суперчитаемые. А суперскорость, так восхваляемая Луной, не нужна, потому что постоянно приходится иметь дело с I/O-bound нагрузкой. Вообще 80 % того, что программируется в мире, никак не связано с CPU-bound активностью. То есть ваши программы в основном ждут ответа от сервера, пока файл загрузится с диска или запишется на него, доступ к базе данных и так далее. Поэтому чаще всего скорость языков группы Си избыточна. Периодически Луна и Найтмер поддразнивали друг дружку на эту тему. Но всё это было по большей части шуткой, потому что они обе понимали, что это просто разные инструменты для разных задач.

* * *

Луна сидела в своём кабинете и просматривала новые спецификации на следующую версию системы автопилота для городских электромобилей. В трее на иконке мессенджера добавился восклицательный знак, видимо, она недавно получила сообщение. Кликнув на него, открылось окно программы со свежим сообщением от Найтмер Мун: «Ку. Не хочешь сходить на ту новую конференцию по компьютерному зрению в следующем месяце? Там будет доклад от создателей YOLO.» Луна улыбнулась. Ей нравилось то рвение, с которым Найтмер относилась к своей работе. Сама она была больше сосредоточена на общей архитектуре системы и переживала насчёт интеграции всех модулей в единое целое. Но Найтмер была права — современные методы компьютерного зрения на базе нейросетей открывали невиданные ранее возможности. «Xmm, nu ok…» — написала Луна в ответ. Луна откинулась на спинку кресла и вздохнула. Их команда росла с каждым днём — новые инженеры и программисты присоединялись, чтобы успеть уложиться в сроки нового релиза. Координировать столько пони становилось всё сложнее.

* * *

— А вы уже чекали патчноут 7.33? — спросила Луна, отхлебнув из своей кружки с кофе. В комнате отдыха собралась небольшая группа коллег-единомышленников, чтобы обсудить свежие изменения в их «любимой» игре DOTA 2. Это была одна из немногих отдушин в их загруженном рабочем графике. — Я слышал, они вроде переработали О ДЭ, — отозвался голубой пегас по имени Пиксельскай. — Ну как минимум ульту бафнули. — Ну как сказать переработали… Ну например, первый скилл: добавили КД полсекунды, но зато урок наносит не 12 % а целых 12,5 %!.. Это типа бафнули или понерфили? В игре даже не заметишь разницу. Изменения ради изменений… — пожала плечами Алгорния, поправляя очки. — Мне интереснее, когда кристалку реворкнут. — Ага, особенно её первый скилл, — фыркнул зелёный жеребец Байтон. — Сейчас он юзлес после двадцатой минуты. — Ой да ладно вам, и так хороший саппорт же. Беседа разгоралась всё ярче, пони обменивались мнениями и предположениями. Луна внимательно слушала, кивая и цокая копытом в такт рассуждениям коллег. Временами она вставляла свои комментарии, анализируя возможные стратегии игры с новыми изменениями. — А что думаешь ты, «принцесса»? — в шутку обратился к Луне Байтон, ухмыляясь. — Как нам теперь нормально сплитпушить? Луна на мгновение задумалась, вдыхая аромат кофе. Затем она усмехнулась в ответ: — Ну во-первых, пикать норм героев…

* * *

В баре царила непринуждённая атмосфера. Музыка играла не слишком громко, приглушённый свет создавал уютную обстановку. Идеальные условия, чтобы пропустить по кружечке пива и поболтать о чём-нибудь кроме работы. — Кстати, к слову об итальянской кухне. Я недавно попробовал новое фирменное блюдо в том новом ресторане на Рансьер авеню, — сказал Пиксельскай, отпивая из своей кружки. — Сырные лепёшки с шампиньонами и кедровыми орешками. Просто объедение! — Да ладно, я вот больше по традиционным рецептам, — возразил Байтон. — Вот салат из репы, моркови и яблок с майонезом — это да, вкуснотища. — Яблоки с майонезом? — поморщилась Алгорния. — Да ещё и с сырыми овощами? Это ж просто кошмар какой-то! — Эй, ты чего? Майонез — самый лучший соус для салатов! — вспылил Байтон. — Да ни за что! — отмахнулась Алгорния. — Для салатов лучше всего подходит заправка из оливкового масла с бальзамическим уксусом и пряными травами. Я уже молчу о яблоках! — Бальзамический уксус? Ты угараешь? — Байтон расхохотался. — Да ни один нормальный пони такую гадость есть не станет! Луна сделала глоток из своей кружки, наблюдая за спором коллег. Ситуация была забавной — обычно они все были на одной волне, но стоило зайти разговору о еде, как тут же вспыхивали нешуточные страсти. Впрочем, все понимали, что это просто дружеские подколки, и никто всерьёз не обижался. — А что, если взять и добавить к салату немного сыра? — вдруг предложила Луна, ухмыляясь. — Так он точно станет вкуснее! — Да ты что, совсем рехнулась? — возмутился Байтон, махнув копытом. — Сыр к салату? Это ж полный бред! Только представь — сочные овощи, хрустящая зелень, а потом бац — и какая-то вонючая резина сверху! — Резина? Да ты что несёшь? — Алгорния возмущённо фыркнула. — Хороший сыр только дополнит и украсит вкус салата! — Ага, как же, — закатил глаза Байтон. — Сразу видно, что ты не разбираешься в настоящей еде. Мой салат должен быть лёгким, свежим, а не этой засаленной дрянью! — Ребят, да хорош уже! — вмешался Пиксельскай. — Давайте не будем собачиться из-за сыра… Хотя лично я за сыр в салате. Особенно хорош пармезан или типа того. — Во-во, Пикси прав, — кивнула Луна. — Всё зависит от того, какой сыр и в каких пропорциях его добавлять. Например, к цезарю отлично подойдёт пармезан. — Цезарь? Серьёзно? — Байтон расхохотался. — Ты ещё скажи, что любишь гавайскую пиццу с ананасами! — А что не так с гавайской пиццей? — нахмурилась Алгорния. — Сладкий ананас прекрасно сочетается с солёными грибами и сыром. Очень гармоничный вкус! — Да вы все ненормальные! — Байтон всплеснул копытами. — Пицца должна быть с помидорами, грибами, оливками, кабачком… но никак не с этим фруктовым извращением! Вы просто не понимаете истинной сути настоящей еды! — он запнулся, сделал глоток из своей кружки и продолжил: — Вот возьмём, к примеру, обычный салат из овощей. Что может быть проще и вкуснее? Свежая зелень, хрустящие огурчики, сочные помидорчики — всё как есть, никаких излишеств. Разве это не идеально? — Байтон покачал головой. — А вы тут все сразу лезете со своими пошлыми добавками — сыры, уксусы… Да вы просто убиваете весь вкус! Это всё равно что взять и изгадить произведение искусства, намалевав на нём каракулей! — Да-а-а… а то ли дело добавить яблок и мазика в салат, м-м-м… — подколол Байтона Пиксельскай. Байтон осёкся и нахмурился, словно пытаясь вспомнить, с чего вообще начался этот спор. Алгорния хихикнула: — Эй, Байт, кажется, ты слегка увлёкся. Мы же изначально просто сравнивали греческую и итальянскую кухни. — А, ну да… — Байтон почесал затылок. — Правду говоришь, — рассмеялся сам над собой Байтон. — Ладно, ладно, простите старика. Просто в еде я ценю простоту и натуральность. — И майонез. — хохотнула Луна. — Да ладно тебе, Байт, — отмахнулась Алгорния. — Мы же просто болтаем. — Это точно, — кивнул Пиксельскай. — Хотя согласись, твои взгляды на кулинарию несколько… радикальны. — Ничего радикального, — фыркнул Байтон. — Просто не люблю эти ваши химические добавки и излишества. Еда должна быть проста и честна как жизнь. — Оу, какие мы философские стали, — ухмыльнулась Луна, отпивая из своей кружки. — Смотрите, как бы не впасть в отчаяние экзистенциализма. Пони дружно рассмеялись. Атмосфера постепенно разрядилась, споры о еде плавно перетекли на другие темы. Байтон, кажется, немного остыл и вернулся к своему обычному добродушному настроению.

* * *

Сегодняшний день отличался от остальных. Недавно назад Луна приняла решения о найме нового сотрудника. Сегодня отдел кадров обещал прислать единорога по имени Кодкрашер. В свой первый рабочий день кто-то из его новых коллег провёл небольшую экскурсию по зданию офиса. Его непосредственной начальницы Луны с утра не было на месте, но был ведущий инженер-разработчик, который подкинул задачку переписать старый код С++ под Rust по стандартам компании. Кодкрашер всматривался в монитор, кусая губу. Старый код выглядел как лабиринт без выхода — сплошные запутанные классы, недокументированные функции и неочевидные имена переменных. Автором значилась «Найтмер Мун». — Найтмер Мун… — новенький ещё не знал никого в офисе, даже имя того сеньора забыл, который и подкинул эту задачку. — Эм-м-м… Простите, — Крашер пытается привлечь внимание прямым взглядом и немного размашистыми движениями. — А тут работает Найтмер Мун? — Хех… — сеньор иронично усмехнулся. — Ну можно и так сказать. Спроси об этом Луну. — Так нет Луны… Ну в смысле в её кабинете. — Просто напиши ей в личку. В личку начальнице? На предыдущей работе Крашер начальника такого уровня видел всего пару раз. Обычно, что делать, приказывали менеджеры тимлиды или кто-то в этом стиле. — А так можно? — А почему нет? — Ну не хотелось бы просто так беспокоить босса… — Пфф, это её отдельный рабочий аккаунт как у всех нормальных поней. Кодкрашер всё-таки осмелился написать Луне в мессенджере. «Привет, Луна! Меня зовут Кодкрашер, я новенький в офисе. Мне передали задание по переносу старого проекта C++ на Rust „navUnoptPilot“, и в авторах указана „Найтмер Мун“. Это Вы? Если да, то не могли бы Вы помочь мне с пониманием этого кода, он очень запутанный…» Почти сразу приходит ответ. «Priv» «Nightmare eto moi zam» «Kod 100 % pisala ne ona… Ona ne sharit za ++» Единорог поморщился почему Луна пишет транслитом? В любом случае, кажется, что помощи ждать не придётся… Через десять секунд приходит очередное сообщение. «Ya skoro pridy glyanu» Новоиспечённый программист был озадачен столь неформальной перепиской с начальством.

* * *

Луна склонила голову набок, разглядывая исходники на мониторах Кодкрашера. По её лицу пробежала тень замешательства — это какой-то кошмар… — Хм, очень странно, — протянула она, кокетливо постукивая копытцем по полу. — Да уж, этот код слишком уж… «Оптимизированный». Куча копипасты, минимум автоматизации… Но вот это, вот место, узнаю. Она ткнула копытом в пару строк, отмеченных ярко-зелёными комментариями. — Видишь эти хитрые трюки с указателями? Определённо мой стиль. Должно быть, я выдала это чудо давным-давно… Луна вздохнула, пробегая глазами по запутанному нагромождению классов, структур данных и обработчиков событий. После изучения старого исходного кода некоторое время, Луна вздохнула и развернулась к Кодкрашеру, отряхивая гриву. — Кароче, извиняй, но я писала давно и не помню, что здесь происходит. В те времена мы писали как попало — не соблюдая стандарты компании. Единорог кивнул, морща лоб над монитором. Буквы на экране расплывались у него перед глазами в одну бессмысленную кашу. — Я понимаю… Просто надеялся, что вы сможете пролить свет на эту тьму неведения, — он усмехнулся, отсалютовав Луне копытцем. — Но раз уж меня наняли для такой работы — значит, придётся вкалывать. — Да не… Не парься. Над тобой просто, по ходу, прикололись. — ухмыльнулась Луна. — Код, конечно, нарушает все правила принципа «clean code». Ну именно поэтому он такой быстрый… — Луна пробежалась по тому что было похоже на ключевые места. — Его сложно поддерживать, но он просто работает и нам сейчас точно не стоит лезть в это и делать какой-то рефакторинг, тем более на другой язык. У нас сейчас дела поважнее есть. Кодкрашер откинулся на спинку стула, со вздохом потирая виски. — А что мне делать-то вообще? — Ну ты пока просто осваивайся, там, погуляй по офису, познакомься с коллегами, всё в таком духе. Завтра на собрании узнаешь, какие у нас активные проекты, какие примерно есть задачи и уже сможешь подобрать то, что тебе нравится. Займёшься тем, в чём ты шаришь… Луна нахмурилась, вновь всматриваясь в строки. Её грива забавно переливалась в свете мониторов. Кодкрашер поспешил закрыть среду разработки. Луна отвернулась, почёсывая подбородок. В самом деле, что-то здесь не сходилось. Ей казалось, она узнает этот лабиринт указателей и обработчиков событий, но авторство приписывалось её заместительнице? Луна нахмурилась. Похоже, ей предстояло вспомнить один давний эпизод из своей карьеры…

* * *

Рабочий день в TesNeit подходил к концу. Пони расходились по домам, а Луна, уже привычно задержавшись в офисе допоздна, осталась наедине со своими мыслями. Из дешёвых динамиков, присоединённых к ноутбуку, тихонько играл «Dido — Thank you (Slowed + Reverb)» [1]. Меланхолично откинувшись в кресле, она всматривалась в ночное небо сквозь огромное окно. Бархатная тьма за стеклом была усыпана звёздами — ярким напоминанием о её подлинном «Я». Луна прикрыла глаза, погружаясь в полудрёму. И как всегда ей привиделась поверхность луны — её истинного дома. Холодная безжизненная пустыня из реголита и застывшей лавы, залитая ярким солнечным светом… Луна ощущала, как её грива развевается в вакууме, а копыта оставляют следы в пыли. Она огляделась, будто видя это место впервые — то ли сон, то ли призрачное воспоминание о жизни, которой у неё никогда не было. Со временем видение стало более реальным. Луна ощутила, как её тело меняется, трансформируется в нечто новое — нечто древнее и могущественное. Бархатная ночь поглотила её, и вот она уже парит над лунной поверхностью, едва ли не сливаясь с ней. Вечно юная ночная принцесса, окружённая звёздами и серебристым сиянием… В этот момент раздался стук в дверь, и Луна резко вернулась в реальность. Она ошарашенно заморгала, приходя в себя. В кабинет вошёл немолодой коричневый земнопони Чип Челлендж, один из технических директоров TesNeit. — О! Луна! Хорошо, что ты тут. Ты-то мне и нужна… — он приветственно кивнул, подходя ближе. — Я как раз хотел обсудить с тобой одно дельце. Луна выключила музыку и поднялась из-за стола, разминая затёкшие ноги. — Чип? Чего ты так неожиданно врываешься? — Ты же знаешь, мы открываем новый офис в Эпплостине, — технический директор сделал многозначительную паузу. — И мне нужен опытный инженер, который возглавит новую команду разработчиков. Кто-то, кому я могу доверять. Луна вскинула бровь, ловя взгляд Чипа. Неужели он предлагает ей?.. — Так что скажешь? — Чип хлопнул копытом по столу. — Готова переехать и возглавить собственный отдел инженеров в новом офисе? Луна ошарашенно кивнула, чувствуя, как её сердце ускорило ритм. Это был её шанс — возможность начать всё с чистого листа, в новом месте, со свежей командой разработчиков. Новая глава в её карьере. — Да, Чип! — воскликнула она, расправляя крылья. — Да, конечно согласна! Шикарный шанс, я в деле. Технический директор довольно усмехнулся. — Вот и отлично. Тогда готовься к переезду, Луна. Твой новый офис ждёт тебя.

* * *

Луна проснулась в квартире, заранее забуканной на airbnb в центре Эпплостина. Сквозь тюлевые занавески пробивались первые солнечные лучи, освещая спальню. Аликорн сладко потянулась, вспоминая очередной сон о лунной поверхности — столь реалистичный, что она чувствовала себя парящей в вакууме. Сегодня был её первый рабочий день в новом офисе TesNeit. Луна взволнованно улыбнулась, вставая с постели. Её ждали новые вызовы и возможности, новая команда инженеров. Она была готова начать всё сначала, с чистого листа. Луна подошла к розетке, чтобы снять телефон с зарядки, но он не зарядился, кажется, провод был вставлен не до конца… Тартар, сколько времени? Осталось около получаса. Придётся собираться впопыхах, чтобы не опоздать на работу в первый же день. Аликорн быстро оделась и вышла на стоянку, где её ждал арендованный автомобиль TesNeit Model R. Прошлогодняя модель. Луна села за руль, привычно разминая крылья, и «завела мотор». Телефон всё ещё разряжен, так что придётся ехать по встроенному навигатору. Встроенный навигатор несколько раз отрубился, заставив её пропустить важный поворот в незнакомом городе. В итоге Луна, борясь с навигатором, выкатилась на перекрёсток и «застряла» посередине спереди пробка, сзади место перед светофором уже заняли. Машинам слева и справа загорелся зелёный. Луна мешала буквально всем вокруг, а всё из-за тупого навигатора. Святая Селестия, какой урод накодил эти менюшки? Она продолжала ковыряться в настройках навигатора, когда вдруг услышала самое страшное звуковое предупреждение в этой модели авто: три быстрых, приглушённых гудка. Аликорн работала над системами безопасности и автопилота, так что прекрасно знала, что это означает. Коллизия неизбежна. Скорее всего, в неё врежутся через секунду. Луна, кажется, даже помнила название аудиофайла «autopilotAvoidAlert.acc». Адреналин мгновенно ударил в голову, время словно замедлилось в десятки раз. Луна резко вскинула голову, оценивая обстановку. Впереди — плотная пробка опасности нет. В зеркале заднего вида — машины стоят перед светофором, никто никуда не едет. Опасности нет. Что происходит? На эти два взгляда аликорн суммарно затратила примерно четверть секунды. «Ложная тревога? Может быть, а что если прямо сейчас на меня несётся транспорт слева или справа? Нет времени крутить головой, нужно принять решение сейчас! Сзади, кажется, есть место, куда откатиться, но нет времени переключать передачу на заднюю. Времени до удара меньше секунды. Если, конечно, опасность не привиделась камерам автопилота. Единственное, куда можно быстро поехать, — это вперёд, но спереди нет места!» Автомобиль грубо прервал поток мыслей Луны, педаль тормоза, которую удерживала Луна всё это время, с силой отпружинила, нога была грубо убрана с тормоза. Системы безопасности взяли управление на себя. Автопилот резко вдавил педаль газа в пол, ускоряясь с места так быстро и эффективно, насколько это физически возможно на этих покрышках по этому асфальту, избегая пробуксовки, и вывернул руль влево, объехал машину, которая стоит в пробке спереди, стремясь увести машину с траектории столкновения. Очень жуткое чувство, когда ты не контролируешь автомобиль и он куда-то срывается сам. Пусть даже умом Луна понимала, что в данном случае автомобиль умнее её и обладает более быстрой реакцией. Единственное место, куда сейчас стремился уехать автопилот, — это небольшое пространство между полосами встречного и попутного направления. Луна была уверена, что эта машина туда просто не поместится, тем не менее, кажется, Луна переоценила габариты своей машины, и она с трудом, но всё-таки помещается туда, возможно, снеся оба зеркала бокового вида. Удар. Луна теряет сознание после сильного удара, который автопилот не смог полностью предотвратить. Ситуация развивалась очень быстро — всего за секунду до столкновения системы безопасности успели перебрать варианты решений, отчасти среагировать и смягчить удар. Удар пришёлся в заднюю дверь со стороны водителя. Секунду назад на этом месте была передняя дверь, и если бы не автопилот, то у Луны не было бы шансов. Подушки и шторки безопасности сработали штатно, ремень безопасности за мгновение до удара подтянулся, прижимая Луну к креслу. Но силы удара оказалось достаточно, чтобы аликорн потеряла сознание. Впереди маячит перспектива больницы, увеличение стоимости страховки и, возможно, другие неприятные последствия. Однако сейчас главное — Луна жива, благодаря слаженной работе активных и пассивных систем безопасности её машины.

* * *

Луна чувствует себя очень плохо. С каждой секундой всё хуже и хуже, как будто бы тело требует чего-то очень важного, но Луна не может понять чего именно. Усталость и боль плавно нарастают. Луну бросает в дрожь. «Да что же не так-то, Дискорд побери?» Луне очень захотелось прокашляться, но выдыхать было нечем. В лёгких не было воздуха? Точно воздух. Нужно, вроде бы, дышать? Она попыталась сосредоточиться на этой мысли, но она просто не знала, как это делать. Такое ощущение, как будто бы она никогда и не дышала или как минимум не задумывалась об этом. Всегда этот процесс происходил как-то само собой автоматически. У неё всё же получилось немножко подсосать воздух ртом. Что-то в груди отдалось резкой болью, но Луна смогла прокашляться. Всё тело как будто стало тяжелее и на каждый сантиметр тела как будто что-то давит. Плавно нарастающая какофония громких непонятных звуков природы заставила поёжиться и открыть глаза. Луна лежала посреди старого полуразрушенного, но смутно знакомого замка. Словно из старого полузабытого сна. Однако думать об этом нет сил. Невозможность дышать и оглушающие звуки природы сводят Луну с ума. — Луна? — кажется, спросил белый аликорн стоящий прямо перед Луной. «Кто это? Аликорн с самого начала там стоял?» Хотелось бы спросить, но всё тело болит, в лёгких нет воздуха, а ответа, вполне вероятно, не будет слышно из-за слишком громких звуков природы, которые словно пытаются разорвать барабанные перепонки. Это невыносимо. Это невозможно. Это нереально. От сенсорной перегрузки Луна теряет сознание. Впрочем, через мгновение она снова просыпается. Чуть-чуть приоткрыв глаза, Луна узнаёт очертания салона арендованного автомобиля. Аликорн облегчённо выдохнула, чувствуя себя намного лучше, чем в том жутком сне. Несмотря на лёгкий звон в ушах, звуки города кажутся намного тише, приятнее и привычнее, чем та пытка посреди замка в лесу. Тело больше не сковывает усиленная гравитация. Что насчёт дыхания? Луне довольно просто удалось сделать обычный нормальный вздох. Сначала Луна порадовалась, что это произошло просто и безболезненно, но затем она почувствовала запах, который не сулил ничего хорошего… Пахло чем-то горелым. Луна широко открыла глаза. Салон автомобиля заполнен дымом! Кажется, машина загорелась. Нужно срочно выбираться!       
Примечания:
Отношение автора к критике
Приветствую критику в любой форме, укажите все недостатки моих работ.
Укажите сильные и слабые стороны работы
Идея:
Сюжет:
Персонажи:
Язык:
Права на все произведения, опубликованные на сайте, принадлежат авторам произведений. Администрация не несет ответственности за содержание работ.