Buch lesen: «Ник: Программист. Снова юзер. Продвинутый юзер (сборник)»
Выпуск произведения без разрешения издательства считается противоправным и преследуется по закону
© Анджей Ясинский, 2016
© ООО «Издательство АСТ», 2016
* * *
Программист
Глава 1
Ник
Я мрачно шлепал по лужам, мысленно матеря своего шефа. Николай Петрович, мой шеф и хозяин фирмы «Аналитика и Бизнес», дозвонился до меня аж в час ночи и в приказном порядке потребовал выйти на работу в субботу. Нет чтоб отключить связь, но я только что выскочил из виртуала и, еще плохо соображая, что к чему, отдал компу команду ответить. Вот и приходится сегодня мокнуть под дождем. Нам наконец-то привезли заказанные еще в прошлом месяце серверы, которые вдруг срочно-обморочно понадобилось подключить к нашему кластеру, хотя прошлый заказ был обработан пару дней назад (за что мы получили неплохие премиальные), а новой работы пока не было. Ну что стоило перенести эту настройку на понедельник? Все равно работу комплекса останавливать не пришлось бы – вся технология подключения дополнительных мощностей уже давно отработана, а у меня на сегодня были планы, которые теперь летят к черту.
Я работаю программистом в одной, теперь уже серьезной, конторе, занимающейся анализом и обработкой различного рода информации, а также выдачей прогнозов на ближайшее будущее по определенному направлению развития событий. Чаще всего торговые организации нам заказывают проанализировать тенденции развития рынка в определенной рыночной нише, но иногда попадаются и интересные заказы от разных институтов, испытывающих недостаток вычислительных ресурсов или толковых программистов. Лично я от таких заказов получаю огромное удовольствие – для их исполнения частенько приходится глубоко копать, что позволяет узнать много нового. А я всегда отличался любопытством и тягой к знаниям.
К тому же шеф оказался человеком умным и деятельным, прекрасно разбирающимся в современных информационных технологиях, а поддерживать свой высокий уровень в этой области непросто. В прошлом, заимев первоначальный капитал, он нашел и заинтересовал работой (и не только финансово) толковых программистов, прикупил технику, после чего создал предприятие по анализу информации и выдаче прогнозов на основе этой информации. Прогнозы, сделанные для некоторых не очень дружных с законом типов, спасли их от крупных неприятностей, а мы приобрели репутацию хороших «предсказателей». Все это приносило неплохую прибыль конторе.
Вот здесь я и работаю ведущим программистом. Спросите, как связана моя работа программиста с этими новыми серверами? Очень просто: я еще и системный администратор вычислительной техники. Так получилось, что на начальном этапе развития фирмы Петрович долго не мог найти толкового сисадмина, а тут неожиданно для него оказалось, что я неплохо владею этой тематикой. Вот он и повесил на меня эти обязанности за дополнительную плату, а я и не отказывался. Посмотрев на результаты моей работы, он остался доволен и прекратил поиски человека на эту должность. Да и я доволен. Провозившись пару месяцев, я неплохо настроил всю систему – вычислительный кластер, распределенную и удаленную работу для программистов, что позволило им не сидеть все время в конторе, а работать дома или где-то еще, а появляться по необходимости. И защиту нормальную сделал. После этого все работает само по себе, моего вмешательства практически не нужно, ну а денежки капают.
…Устав ругаться, я надел очки, связанные с моим бадди-компом, вывел на левый дисплей недочитанную книжку, включил музыку, поправил сумку с инструментами, которые могли мне понадобиться, и мощным субноутом с кучей админского софта и потопал на остановку. Не люблю я таскать с собой кучу оборудования. Хоть оно и не тяжелое (все вместе вряд ли превышает килограмм чистого веса), но дискомфорт есть. В ноуте у меня хранится весь софт, разработанный в нашей конторе, – так, на всякий случай.
Если бы шеф узнал – убил бы на месте и сказал, что так и было. Все-таки ноу-хау. Правда, у меня там все так зашифровано – фиг выцарапаешь информацию, но шефу все равно лучше не знать.
Доехав до конечной остановки, я поплелся через парк. Наша контора находится почти за городом: шеф в свое время арендовал пустующее здание на бывшем военном заводе, бог знает что выпускавшем, обустроил – вышло неплохо. К тому же куча пространства – есть где походить, подумать, покурить. Под боком парк, в котором можно отдохнуть душой. Людей в нем мало – неудобно добираться, поэтому я с удовольствием иногда там гуляю.
В конторе меня встретил шеф, он был один. Сделав радостное лицо, Петрович громко закричал:
– Привет, тезка, заходь! – радостно при этом помахав рукой.
«Что это с ним? – хмуро подумал я. – Бухнул, что ли?»
– Шеф! Ну и нафига понадобилось сегодня приходить, а? – сразу наехал на него я. – Что, нельзя было в понедельник все сделать?
У нас с шефом доверительные отношения, мы друг друга уважаем и даже местами дружим, так что неформальная лексика для нас – нормальное дело.
– Нельзя, Коля, никак нельзя.
Шеф, развалившись в кресле Олечки, его секретарши, прихлебывал кофе, курил сигарету и, улыбаясь чему-то, смотрел на меня.
«Увидит Оля пепел на своем столе – со свету сживет», – злорадно ухмыльнулся я. Оля была педанткой и чистюлей и не терпела непорядка на рабочем месте. Я периодически пытаюсь за ней ухаживать (читай: совратить), но пока она отбивает все мои попытки. Ей нравится эта игра, но, к сожалению, неизвестно, нравлюсь ли ей я.
– Ладно, выкладывай, в чем дело, – буркнул я и, бросив сумку на стол, пошел делать себе кофе.
– Понимаешь, Коля… – Ненавижу, когда меня называют по имени. Обычно все зовут Ником, но шефу нравится меня доставать. – Появился новый заказ, – он поднял указательный палец, – большой заказ. Приступить к нему надо будет сразу, возможно уже завтра, и мне бы не хотелось, чтобы ты отвлекался на настройку серверов в понедельник. Так что, извини, сделать это надо сегодня. К тому же дополнительные мощности будут совсем не лишними.
Понятно. Шеф, видимо, вырвал заказ из зубов конкурентов и теперь радуется проведенной хитрой комбинации. Если реально оценивать ситуацию, то в нашем городе настоящих конкурентов у нас практически нет, но у шефа любые, даже маленькие, победы вызывают радость.
– Я сейчас тебе скину инфу, вечером дома почитаешь и пришлешь мне свои соображения. В первую очередь меня интересуют затраты времени и кого из программистов ты привлечешь к работе.
Шеф достал из кармана свой бадди-комп и что-то пробормотал в него. Мой комп высветил перед глазами информацию о прямом коннекте и начал загрузку информации. Наши с шефом компы были настроены друг на друга, так что не пришлось делать лишних телодвижений, чтобы подтвердить прием.
– Ладно, – вздохнул я. – А железо привезли именно то, что мы заказывали, или как в прошлый раз?
Тогда нас попытались кинуть: всунули несколько левых железяк, но не на тех нарвались. Шеф им быстро мозги вправил, и с тех пор сам проверяет поступающую технику. Нравится ему с железом возиться, наверное, боится потерять квалификацию.
– Ага, – кивнул шеф. – Более того, все уже распаковано, осталось только подключить и настроить.
Он затянулся сигаретой и пустил кольца в потолок.
– Где поставили технику? – спросил я.
Дело в том, что в некоторых дальних помещениях разводка питания шла не от центрального распредщитка, а откуда-то сквозь стены, и уходила в подвалы. Мы старались там технику не ставить, потому что запасное питание от нашего генератора туда не дотягивалось – шеф никак не мог добраться с ремонтом до тех помещений, – а рисковать оборудованием не хотелось.
– В пятом кабинете, – ответил шеф.
– Так я и думал! А про разводку ты не забыл? – возмутился я от всей души, чуть не разбив чашку с кофе об стол. Моя сисадминская душа не терпела непорядка на вверенном участке. – А если свет отключат? Ты ж потом мне все мозги прополоскаешь за испорченную работу или, не дай бог, технику! – Я сплюнул через левое плечо. – У нас же есть свободное место в стойках!
Шеф хитро ухмыльнулся:
– Понимаешь, Коля, мне тут упало железо помощнее, чем мы заказывали, говорить не буду, какое – сам увидишь, а оно идет в шкафах со своим обеспечением поддержки. Так что дуй на рабочее место и действуй, к понедельнику все должно быть тип-топ. А с питанием я на следующей неделе разберусь, не боись, все будет нормально.
Шеф махнул рукой и снова погрузился в свои мысли.
Мысленно плюнув на него и захватив свою сумку, я пошел в кабинет с новой аппаратурой. Меня разбирало любопытство, что же там такое привезли. Все-таки мы заказывали не настолько слабую технику. А помощнее не тянем пока.
Зайдя в кабинет, я увидел разбросанные по комнате обрывки упаковочной бумаги и возвышающийся в центре шкаф. Открыв дверцу, я сразу понял, что шефу сказочно повезло: это железо было на порядок мощнее, чем мы заказывали. Информация с идентификаторов, услужливо высвеченная бадди-компом при взгляде на блоки, показывала, что это оборудование чуть ли не экспериментальное.
«Интересно, откуда шеф достал такое чудо?» – подумал я и, закатав рукава, принялся за работу. Сначала выкинул из помещения всю упаковку, соединил блоки в шкафчике в тестовую конфигурацию и воткнул штепсель в розетку.
– Ну-с, – радостно потирая руки, пробормотал я и нажал кнопку питания.
Ничего не произошло.
– Японский городовой! – выругался я.
Посмотрев на розетку, увидел, что индикатор, указывающий наличие напряжения, не светится. Достав тестер, я воткнул его в розетку. Как и ожидалось, напряжения не было. Прибор показывал отсутствие короткого замыкания и исправность автоматики защиты в розетке, значит, проблема в разрыве цепи питания где-то в другом месте.
Плюнув, теперь уже по-настоящему, в угол комнаты, я послал ругательство через бадди-комп шефу и сообщение о том, что пошел в подвал разбираться с питанием. Шеф меня проигнорировал.
Собрав все причиндалы в сумку, я начал спускаться по лестнице. Подвал, надо сказать, был обширный – по моим ощущениям, больше самого завода. Мы его так и не обследовали нормально – только недалеко от входа.
Спустившись на подвальный уровень, я подошел к металлической двери с кодовым замком. Уж не знаю, от какой линии был запитан замок, но он работал. На нем горел красный светодиод. Подключившись через бадди-комп к серверу конторы, я быстро нашел код доступа в подвал и набрал его на клавиатуре замка. Замок задумался на пару секунд. «Что так долго? – подумал я. – Калькулятор там, что ли, стоит?» На двери рядом с замком зажглась надпись «Чисто», индикатор на замке сменил цвет на зеленый, и в двери громко отщелкнулись внутренние задвижки. Они, судя по звуку, были довольно мощные и шли по всему периметру двери.
Я поежился. Неприятное ощущение. Заныли сервомоторы, и дверь медленно стала открываться. «Да что же там хранили?» – удивился я. Не представляю, для чего нужны такие двери в подвал. Дверь открылась полностью. Внутри было темно. Чертыхнувшись – фонарик-то не захватил, – я спустил очки со лба на глаза и перевел бадди-комп в режим ночного зрения с камер на очках. Сначала увидел только цветные пятна, но через пару секунд комп настроил программу обработки видео, и передо мной возникло хорошее изображение короткого коридора, частично сгенерированное бадди-компом на основании данных, получаемых им от встроенных датчиков.
Ну, и где искать тут и, главное, что? Оглядевшись по сторонам, я увидел распределительный щиток, от которого должны были запитываться розетки в нужной мне комнате. Открыв его, потыкал тестером контакты. Странно: напряжение есть, а света в коридоре нет. А ведь он должен автоматически включаться при открытии двери.
Недоуменно почесав в затылке, я решил идти вдоль линии до следующего щитка и там все проверить, пока не найду неисправность. Поправив очки, я отправился дальше по коридору. Стояла мертвая тишина, лишь было слышно, как где-то капает вода. По спине у меня пробежался табун мурашек. Что-то мне уже расхотелось переться в темноту, пусть дорога и видна через очки. Тишина, темнота и звуки капели неприятно действуют на расшатанные нервы бывалого геймера. Ну да ладно, все равно выбора нет. Медленно, вглядываясь во все встречные углы, я двинулся вдоль линии питания. Пройдя несколько метров по коридору, я остановился и начал искать план здания и схему электропроводки в Интернете. К моему глубокому удивлению, ничего внятного найти не удалось. Пришлось отмотать видеозапись назад и «срисовать» висящий на стене у выхода план эвакуации, перевести в нечто удобоваримое и, включив отслеживание пути, повесить перед глазами. На схеме сразу же отметил уже осмотренный щиток, черкнув пару комментариев.
Где-то с час я работал, двигаясь от щитка к щитку и проверяя их. В районе второго щитка бадди-комп пискнул, и на экране появилось сообщение о потере связи с базой. Глубоко, однако. Прошел расстояние, наверное, с километр, везде все было нормально. Сильно устал. Решил проверить еще пару щитков и сделать перерыв. Подходя к следующему месту проверки, я увидел какое-то мерцание. При ближайшем рассмотрении щиток оказался оплавленным, в его отверстиях были видны отсветы разрядов. Очевидно, в нем и коротнуло. Надев предусмотрительно прихваченные с собой резиновые перчатки, я с трудом открыл крышку и присвистнул. Провода все оплавились. Непонятно, почему не сработали автоматы. Немного отдохнув, я принялся за работу: осторожно обрезав оплавленные провода, аккуратно начал делать перемычку. Конечно, по-хорошему, надо было бы дойти до следующего щитка и отключить там питание, но до него долго идти, судя по расстоянию между предыдущими щитками, и я махнул на это рукой. Дело двигалось к концу, я уже собирался прикрутить последний провод, когда за спиной раздался какой-то звук. От неожиданности и пробившего меня испуга я подпрыгнул и развернулся в воздухе, совсем забыв про зажатые в плоскогубцах провода. Я ничего не успел увидеть, как меня выгнуло дугой, зубы намертво сжались, я почувствовал, как крошится зубная эмаль. Из глаз посыпались искры, и сознание милостиво покинуло меня.
Глава 2
В себя я пришел от звука капающей воды. С трудом открыв глаза, попытался что-нибудь рассмотреть. Стояла сплошная темнота. Внезапно я почувствовал боль во всем теле – нервы, блин, включились. Попытался вспомнить, что произошло. Ага, похоже, меня неслабо шандарахнуло током. Что же меня испугало-то? Сжав зубы и почувствовав в них боль, я попытался пошевелить рукой. Она слабо дернулась. Передохнув немного, я продолжил попытки реанимировать мышцы. Раз-два. Раз-два. Сжать-и-отпустить. Как там учил сэнсэй? Прокачав кровь по мышцам, почувствовал себя полегче. Через полчаса удалось доползти до стены и прислониться к ней.
Тем временем я пытался понять, что же все-таки произошло. Понятно, что меня приложило током, только непонятно, как – руки были в перчатках, провода держал в плоскогубцах. Тут я почувствовал запах паленых волос и решил ощупать голову. В районе затылка тут же стрельнула боль. Волосы там обгорели. Теперь понятно, что случилось: развернувшись на звук, я невольно подался назад и впечатался затылком в оголенные провода. Обдумав это, я удивился, что все еще жив. К тому же обожженная рана на голове болит только при прикосновении. Я старался сообразить, хорошо это или, наоборот, плохо, но ничего не вспомнил.
Еще раз ощупал голову. Так, на голове нет очков, надо их найти. Особым образом свистнув, я с облегчением увидел вспыхнувший свет, резанувший привыкшие к тьме глаза, и услышал слабый зуммер. Дома я постоянно терял очки, поэтому настроил программу, реагирующую светом и звуком на определенную насвистываемую мелодию. Судя по реакции от бадди-компа, он остался цел. Это неудивительно – обычно их делали защищенными от внешних воздействий, ведь люди их постоянно носят с собой. Некоторые чудики иногда даже купаются, не снимая.
В общем, прошло еще некоторое время, пока я сумел подняться, нацепить очки и оглядеться. Сначала собирался проверить, что стало с щитком, доделать работу и вернуться в офис, а о голове позаботиться позже, не так уж сильно она и болела. Однако первый же взгляд на стену, где должен был располагаться щиток, заставил меня застыть неподвижно. Стена была пустая. Никакого щитка не наблюдалось. «Может, меня отбросило?» – подумал я и прошелся вдоль стены влево-вправо метров на двадцать. И ничего не обнаружил. Как бы сильно меня не отбросило, щиток должен быть недалеко. Однако его не было. Тут я пригляделся к самим стенам. Уже давно что-то цепляло взгляд, только я не обращал внимания. Вглядевшись, понял, что стены другие. Не поверив себе или, вернее, бадди-компу – ведь реалистичное изображение синтезировал он, – я включил светодиодный фонарь в очках, выглядевший, как яркая полоска вдоль очков. Видимое пространство уменьшилось до нескольких метров, синтез графики автоматически остановился. Чувствительности датчиков бадди-компа хватало, чтобы просканировать окружающее пространство до десятка метров в полной темноте. На основании результатов сканирования он в режиме реального времени генерировал реалистичную картинку окружающего пространства, в котором намного легче ориентироваться, чем в неверном свете маленького налобного фонарика. При наличии хотя бы слабого освещения эта граница отодвигалась дальше. Днем же комп пропускал реальную картинку через себя, а обработка изображения уже зависела от настроенной программы генерации окружающего мира.
Но сейчас мне понадобился именно фонарь, чтобы своими глазами увидеть то, что показывал мне комп. Увиденное не сильно отличалось от показанного им. Стена – металлическая с серебристой поверхностью, в то время как у нас в подвале стены были бетонными. Я недоверчиво потрогал ее пальцем. Ничего не изменилось. Все это сильно напрягало. Чтобы составить полную картину, я включил комп на сканирование с подсветкой от фонаря для расширирения пределов. Почти мгновенно перед глазами прояснилось, и я огляделся.
Я стоял в коридоре, но коридор был другим. Не тем, в который я входил. Вместо влажного, сочащегося водой бетона, вокруг меня был металл. Стены, потолок, пол. Под ногами шуршал запыленный мусор. Сухие листья, ветки, древесная труха, косточки каких-то мелких зверьков. Передернуло. Не люблю крыс. «Возможно, – подумал я, – у меня с головой гораздо более серьезные проблемы, чем я предположил». С минуту я потратил на перенастройку монитора здоровья. Медицинские системы сканирования и анализа эта программа заменить не может, но, обладая доступом к встроенным датчиками бадди-компа, экспресс-анализ проводила неплохо. После запуска также решил проверить, не стал ли я после удара током лунатиком, или кто там во сне ходит, – каким-то ведь образом я же попал в этот новый коридор! Ничего такого система не показала. Никакого брожения в бессознательном состоянии. Просто смена картинки. Проверив результаты сканирования, я узнал, что серьезных проблем у меня нет, разве что стоит посетить больницу для дальнейшего анализа и обработки ссадины на голове. Можно начать прием легких транквилизаторов или релаксационную терапию, но это по желанию.
Подняв сумку, я осторожно двинулся в сторону выхода. То есть бывшего моего выхода. Здесь – хрен его знает, где он есть. Чтобы не сойти с ума от страха, я решил пока не выдвигать никаких гипотез. Додумаюсь еще до чего-нибудь…
Вообще, меня трудно чем-то напугать. Физически я крепок, занимаюсь боевым самбо, уже не так интенсивно, как в институте, но форму поддерживаю. Психически уравновешен. Однако ситуация вроде этой выведет из себя и полного флегматика или пофигиста.
Медленно проходя по коридору, я сообразил, что звук капели приближается и что доносится он из-за угла. Потихоньку заглянув за угол, я увидел точно такой же коридор, только перекореженный: потолок просел, обе стены насквозь пробиты какими-то трубами. Из одной такой трубы и капало. Лужа внизу была небольшая – видимо, часть воды (воды ли) куда-то уходила. Как ни странно, после этого завала коридор заканчивался метров через двадцать (в «своем» подвале я накрутил около километра).
Так. «Стоп, – сказал я себе. – Имеет ли смысл пробираться через трубы и смотреть, что в конце коридора?» Может, вернуться по своим следам и обследовать другую сторону? Но сколько мне там идти, неизвестно. А здесь я уже куда-то пришел. Ладно, обследую все здесь и пойду назад, если ничего особенного не найду. С трудом пробравшись через завал из труб, по пути я проверил капающую с потолка жидкость. Странно, но это оказалась вода. Обычная вода. Как показал простенький анализатор бадди-компа, еще и с примесью каких-то полезных солей, но комп утверждает, что пить можно. Ладно, поверим ему. Пройдя еще сотню метров, я оказался в тупике. Ну, и к чему привел этот коридор? «Солярис», блин. Все. Надо отдохнуть. Подумать. Кто я? Где я? Взгляд скользнул по полу, поднялся выше. Ничего. Я сел, прислонившись к стене, и, уже закрывая глаза, заметил серебристую черту на стыке стены и пола. Мусор и пыль, лежащие твердым ковром, скрывали ее, поэтому сразу и не заметил. Ладно, надо немного отдохнуть, что-то я устал. Вернувшись к воде, сделал пару глотков. На вкус она оказалась, как обычная минералка. Я проанализировал ощущения: вроде ничего. Пить можно, комп не соврал. Радует, что умереть от жажды мне не грозит. Я напился про запас, отполз к стене, расслабился и прикрыл глаза. Потом решил проверить, что там говорилось про курс релаксации, настроил комп на прекращение сеанса на случай, если кто-нибудь появится рядом, устроился поудобнее и нажал предложенную бадди-компом ссылку.
Примерно через час я почувствовал себя довольно бодро, даже голова перестала беспокоить. Хотелось прыгать, что-то делать. Сообразив, что это ненормально для моего состояния, я задумался. Так: встряхнуло током меня прилично, мышцы были ватными, ощущения отвратными, голова болела. Сейчас чувствую себя отлично, даже голода не ощущаю. Как это могло произойти? Слишком большой эффект от сеанса релаксации! Единственное, что пришло в голову: я же пил эту непонятную воду. «Живая вода, что ли?» – попытался я пошутить, только шутить совсем не хотелось. Ладно, примем за гипотезу, что помогла вода, все равно ничего другого не придумывается. Час прошел, живот не пучит, ощущения в пределах нормы. Махнув рукой, я повторно напился воды, смочил затылок – а вдруг действительно поможет? – и отправился исследовать конец коридора.
Так, и что мы тут имеем? Я присел на корточки и несколько минут вычищал ранее замеченное мною место стыка стены и пола. Закончив выполнять пыле- грязеуборочные работы, мысленно погладил себя по голове за наблюдательность. Торцовая стена оказалась дверью. Небольшое исследование показало, что она сдвигается в стену и в данный момент прикрыта не плотно – между нею и стояком есть щель. Я достал из сумки отвертку, с трудом вставил ее в щель и навалился всем своим весом. Хорошо хоть отвертка достаточно толстая и сделана из хорошего металла. Дверь медленно отъехала в сторону, я помог ей, упершись в нее ногами и уцепившись руками в косяк. Стоило двери полностью открыться, как в представшей моему взору комнате зажегся мягкий свет. От неожиданности я скакнул обратно в коридор. Свет погас. Тьфу, так и инфаркт можно получить… Интересно, что за автоматика там такая работает? Судя по состоянию коридора, лет ему немерено, столько времени приборы без обслуживания не живут. Мысленно перекрестившись, я сделал осторожный шаг в комнату. Снова зажегся свет.
Комната оказалась большой, размером с наш спортзал в институте, только круглая. Меня поразили стены – блестящий металл, условно разделенный на секции с какими-то надписями или рисунками в каждой из них. Мягкий блеск металла не напрягал глаза. Вдоль стен стояли какие-то устройства, от дальней стены к центру сглаженным наростом вытягивался стол или скорее пульт. В центре комнаты перед пультом находилось кресло, развернутое от меня. Оно, кстати, тоже, похоже, было металлическим. Откуда шел свет, я так и не понял – как будто светился сам воздух. Немного потоптавшись на месте и, на всякий случай, засняв панораму комнаты на комп, я медленно пошел к креслу…