Вначале была командная строка

Вначале была командная строка

 

Фантастический рассказ

 

— Пап! Папа! Помоги!..

Рекурсивный алгоритм будет разбивать задачу на части, каждая из которых, по сути, станет такой же задачей, но в упрощённом виде. Вызываемые функции на выходе будут выдавать данные, и их каким-то образом будем объединять и…

— Пап! Пап! Ну, пожалуйста!..

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

— Пап! Ну, папа…

— Да, доча… — рассеянно отзывается выведенный из программистской кататонии Виль. Он всё ещё пялится в монитор, но девочка настырно дёргает за футболку, требуя положенного её возрасту внимания.

— Пап! Папа! У меня опять все друзья полетели! — верещит дочка, но не истерично, а просто так, для шумихи. Иначе папу от компьютера не отвлечь.

…А вот двоичным поиском будем обрабатывать отсортированный массив. Нужный элемент сравнивается со значением…

— Что? Какие друзья? — встрепенулся Виль, возвращаясь в мир по эту сторону экрана. — Куда полетели? — не понимает, округлив глаза, смотрит на дочь, проигрывает в голове недавно услышанные слова.

А у Кати глаза не менее круглые, её большущие голубые глазищи — целый мир детских грёз. И неудач, воплотившихся сегодня в телефоне, которым девочка тычет в лицо папе.

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

— Да! — радостно воскликнула Катя. — Все друзья слетели…

— Катюш, — мягко начинает отец, — не стоит так переживать! Это ведь всего лишь… — останавливается, подбирая нужное выражение, которым можно было бы свести виртуальную сеть до уровня безделушки.

— Но меня гулять зовут… — расстраивается девочка. — А я не могу прочитать сообщение от Галки…

— Потому что ты что-то делаешь неправильно, — говорит Виль, нежно поглаживая пушистую платиновую шевелюру дочки. — Как в прошлый раз. Ты…

— Я добавила Вальку, — перебила Катя. — И после этого у меня все друзья слетели.

— Вот смотри… — Виль глядит в интерфейс программной оболочки соцсети. — Нужно было…

— Я всё правильно сделала! — спорит упрямая. — Я набрала вот так! — маленькие, почти игрушечные пальчики тыкаются в заляпанный экран телефона.

— Вот именно! — возражает отец, сразу заметив ошибку. — Нужно было по-другому, вот так! — пытается забрать телефон у Кати, но та крепко вцепилась. Откуда столько сил у восьмилетней крохи?

И откуда столько сообразительности, чтобы управляться с англоязычным интерфейсом?

— Виль! — слышат оба голос из кухни. — Ви-и-и-ль!

Нет, не будет ему сегодня покоя.

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

— Ви-и-и-ль! — повторный запрос из кухни.

— Пап, «НаСвязи» — это такой отстой! — вдруг изрекает Катя, подражая взрослым, серьёзно и со значением.

— Э-э-э… — мычит озадаченный отец. Где она таких слов нахваталась? Не иначе как в «Визаж-паде».

— Вилли! — зовёт появившаяся в зале Марина: в руках половник, в глазах укор, копна каштановых волос собрана под цветастым платком. — Посмотри на часы!

Ах ты ж! Почти двенадцать! Проклятье работы в удалённом режиме — время летит незаметно, ты его ни на минуту не контролируешь, путая служебное с личным. Так и проиграешь всё на свете, и сейчас такая постановка вопроса актуальна как никогда: Вилю предстоит настоящая битва — презентация, на которой выступает он сам.

Решительно вскочив со стула, он хватает вешалку с выглаженным с вечера костюмом. Неуклюжим движением спихивает на пол пиджак — чувствуется нервозность, несобранность.

Держа половник в другой руке на отлёте, чтобы не задеть, жена подаёт Вилю рубашку ярко-салатового цвета. «Элегантная рубашка, вполне себе в деловом стиле, — убеждала Марина вчера, — а ты просто ничего не понимаешь».

— Пап! Ну всё равно ничего не работает… — Катя готова расплакаться.

— Прости, доча, — впопыхах отвечает отец, — но мне нужно бежать. Мама посмотрит твой телефон.

— Ага, сейчас, разбежалась, — усмехнулась Марина.

— Ну, тогда я посмотрю. Потом. Когда вернусь.

Ещё одна неосторожность — и из-под рук Виля вылетает оторванная от элегантной рубашки верхняя пуговица.

— Плохая примета…

— Блин!

— Не выражайся при ребёнке!

 

 

— — —

 

Кто-то придумал совещания по пятницам, и назначали их обычно на послеобеденное время. По всей видимости, хотели как лучше — чтобы мероприятие проходило в дружественной атмосфере и уважаемые коллеги на выходные отбывали в благостном расположении духа.

Однако на деле в большинстве случаев получалось с точностью до наоборот: замученные за неделю сотрудники на финишную прямую выползали, как говорится, из последних сил, что не располагало к конструктивному диалогу. Либо же находились в предвкушении субботней рыбалки, а обсуждать корпоративные темы не хотелось. Подобное отношение лишь обостряло ситуацию, руководство негодовало. Особенно доставалось штату, трудящемуся на удалёнке, — ведь пятничные собрания являлись едва ли не единственной возможностью встретиться лицом к лицу, а для некоторых — свести счёты. К тому же, дистанционный режим работы по определению окутывает сотрудника ореолом бездельника, отсиживающегося дома, пока другие в поте лица…

В этот раз правило поленилось создавать самому себе исключение. К тому же, в очереди презентующих свои проекты Виль был пятым, предпоследним, поэтому к окончанию доклада физиономии в аудитории изрядно скисли.

— …На этом у меня всё, — завершает речь Виль. — Спасибо за внимание!

Аплодисментов, конечно же, ожидать не приходилось. На четверть минуты в зале зависла тишина, которую нарушали лишь сдавленные зевки из последнего ряда.

Павел Георгиевич — он сидел по центру и исполнял роль ведущего — поправил очки, огляделся по сторонам. Не встретив инициативы, прокашлялся и вполголоса протянул:

— М-да, интересно.

Тридцать скучающих взглядов медленно шарили по внутренностям зала для совещаний, Виль ощутимо поник, но руководитель департамента программных инноваций пока не сдавался:

— Значит, новое слово в интерфейсах… — глубокомысленно продолжил Павел Георгиевич. — Технически, безусловно, очень интересно…

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

Павел Георгиевич оборачивается, на секунду встречается взглядом с ретивым сотрудником недружественного подразделения и в прохладном тоне интересуется:

— Что вы имеете в виду, Андрей?

— Высокую производительность, — возбуждённо отвечает тот. — Предложенное софтовое решение требует от техники больших ресурсных возможностей. Но у нас нет такой аппаратной платформы. Оперативная память — это раз, — Андрей принялся загибать пальцы, — дисковое пространство — два. Производительность процессора — три. Пропускная способность аппаратных интерфейсов… Я тут немного прикинул, на коленке, пока шла презентация… — Андрей демонстрирует бумажку с записями. — По моим подсчётам, в ближайшие лет семь мы не сможем дать ничего, что могло бы обеспечить адекватную работу данного софтового решения.

— Андрей, не стоит так сразу рубить сплеча! — Павел Георгиевич всё ещё сидит к нему вполоборота. — Я понимаю, что железо — это ваша зона ответственности, но вы должны с интересом отнестись к предложенной задаче. Если каждый будет отнекиваться, то у нас, знаете ли, ничего не получится. Никогда вообще, — подчеркнул Павел Георгиевич. — В конце концов, мы ведь не знаем — может быть, у других производителей есть какие-нибудь разработки по данной теме. Может быть, есть смысл изучить этот вопрос?

— Павел Георгиевич, это невозможно! Ни у кого нет таких разработок! — категорично возражает железячник. — Уж мне-то это известно! Ну, а кроме того, мы привыкли опираться исключительно на свой потенциал! — с гордостью заявляет Андрей. — Не знаю, что там у нас по софтовым решениям, но в области железа «НаноПрог» лидирует на рынке. У нас отличный аппаратный парк, и чужих нам не надо… — осёкшись, Андрей не заканчивает.

По аудитории прошелестели едва различимые смешки. Павел Георгиевич делает вид, что ничего не заметил. Конфуз ситуации в том, что Чужих — это фамилия Павла Георгиевича. Неосторожным словом Андрей превратил безобидную фразу в неоднозначную.

— И всё же, Андрей, я бы попросил проработать данный вопрос, — ставит точку Павел Георгиевич. Не давая оппоненту паузы на ответ, руководитель департамента программных инноваций поворачивается обратно и бодро командует: — Продолжим! — общаясь непосредственно к совсем потухшему Вилю.

— Можно я скажу? — гундосый голос справа.

Тридцать пар глаз в едином порыве обращаются взором к мужчине в жёлтом пиджаке.

— Да, конечно, пожалуйста!

— Проект, бесспорно, хороший, — начинает Жёлтый Пиджак таким тоном, что сразу становится понятно: будущего у проекта нет. — Но терзают меня кое-какие сомнения… — Жёлтый Пиджак не торопится, во времени он не ограничен.

Его все знают, и прерывать не осмелятся. Огненно-рыжий веснушчатый мужчина, расположившийся в гордом одиночестве на краю первого ряда, — представитель компании-инвестора. Периодически посещает внутренние презентации «НаноПрога» и всегда держится на расстоянии. И хотя говорят, что в своей конторе Жёлтый Пиджак — всего лишь рядовой клерк, а в технических вопросах некомпетентен, в стенах этого зала спорить с ним сложновато.

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

«Бесполезная безделушка», — с горечью подумал Виль.

 

 

— — —

 

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

— Простите? — переспросил Виль.

— Как проехать к планетарию? — повторяет женщина — уже немолодая, но вполне привлекательная особа в длинном чёрном пальто.

— Хм… — задумался Виль. По правде говоря, ему хорошо знакомы лишь три автобусных маршрута — седьмой, восьмой и десятый — и ни один из них в сторону планетария не идёт. Но отказать в помощи случайной встречной не может, поэтому взывает к сидящему внутри географу с просьбой посодействовать. Тот, впрочем, тоже не особо сведущ. Виль уже пожал плечами, но ситуацию спасает вынырнувший из-за поворота троллейбус со светодиодным номером 36 на грустной морде. — Вот-вот! — говорит Виль, прочитав всплывшую вдруг в памяти карту. — Этот вам точно подойдёт!

— Ой, спасибо большое! — приятно улыбается незнакомка и спешит к месту остановки рогатой машины.

Когда двери закрылись и троллейбус унёс с собой женщину в чёрном пальто, Виль заметил на боковой табличке светящуюся надпись «Бульвар молодёжи», что показалось странным.

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

Раздосадованный ошибкой Виль смотрит вслед уходящему троллейбусу и вполголоса произносит:

— Блин…

Неловко, конечно, получилось, но вина ли в том Виля? Могли бы объявлять на каждой остановке или крупными буквами писать на табло: так, мол, и так, троллейбус следует по укороченному маршруту, дескать, обратите внимание. Красным цветом, например, — бросалось бы в глаза, и добропорядочные граждане не впадали бы в заблуждение…

«А ещё лучше — схему вывешивать!» — неожиданная мысль отчего-то взволновала Виля. Он представляет себе, как выглядела бы схема движения того или иного маршрута, наложенная на план города, и приходит к выводу, что заняла бы такая карта квадрат со стороной в полметра-метр, иначе плохо читалась бы.

«И ведь это не решило бы проблему изменения маршрутов, так? — доказывает сам себе Виль. — Не будешь же ты заставлять сотрудников депо каждый раз малевать на картонке стрелочки и линии, чтобы отобразить корректировки в курсе следования троллейбуса! А если учитывать, что по вечерам они едут в депо, и эти изменения тоже неплохо бы указывать, то никаких картонок не напасёшься. Так ведь?.. Ага, — соглашается сам с собой Виль, — а это значит… это значит, что…»

Теперь перед внутренним взором появляется та же карта, но в электронном виде. Высвечивается на экране воображаемого монитора. Разрешение сначала низкое, но потом монитор разрастается до размеров троллейбусного окна. Благодарные горожане разглядывают схему и довольные заходят в двери троллейбуса. Внутренний географ, пройдя курсы повышения квалификации, отбрасывает в сторону морально устаревшую указку, технически неподходящие цветные маркеры и подключает к новомодному устройству компьютер. Программирует, картинка на экране меняется, корректировки в маршруте подкрашиваются ярко-красным…

— Да не расстраивайся ты так!

Первое, что видит вырванный из фантазийного оцепенения Виль, — это уходящий от остановки автобус десятого маршрута, на котором должен был ехать домой.

— Не расстраивайся! — повторяет Антон Балман. Выходя из офиса, он заметил Виля и не преминул поддержать коллегу в трудную минуту.

— Да я и не расстраиваюсь! — отвечает Виль, но выражение лица свидетельствует об обратном.

— Рыжий тебя здорово разнёс, — глубокомысленно говорит Антон и поглаживает свою бритую налысо голову, будто оценивая твёрдость на случай, если бы надумал разбить лбом веснушчатую физиономию из инвестиционной компании. — Но я думаю, они тебя сильно недооценивают.

— Как тебе сказать… — мямлит Виль.

— Забей! — решает Антон. — Давай лучше по пивку? — предложил и, уловив во взгляде товарища сомнение, прибавил: — Сегодня же пятница.

 

 

— — —

 

Стоило только присесть за столик, как вернулись к той же теме. Да и вообще, Вилю показалось, что Антон ради этого и вытащил его в кафе.

— Не принимай близко к сердцу, — непринуждённо говорил Антон, — дело тут вовсе не в тебе. Проект твой действительно здоровский, и именно поэтому они его зарубили.

— Они? — лениво отзывается Виль. — Кто это — они?

— Они самые, — подражая Жёлтому Пиджаку, гнусавит тот.

— Очень похоже, — оценил Виль.

— А знаешь ли ты, в какие компании они инвестируют свои деньги?

— Ну, более или менее, — пожал плечами. — В основном, высокотехнологичные фирмы…

— …среди которых небезынтересная нам «Айва»!

— Да ну на фиг! — Виль усмехнулся, хлебнул из кружки пива и устало откинулся на спинку диванчика. — Так не бывает!

— Почему — не бывает?

— Всем известно, что «НаноПрог» и «Айва» — заклятые конкуренты. Грызёмся с ними за каждую копейку, как кошка с собакой.

— Причём, собака — это мы, — ввернул Антон и коротко хохотнул. — Здоровая такая псина.

— Может, и так, не возражаю. Только вот, эта самая псина и та самая кошка на двоих делят почти весь рынок. Если в «НаноПрог» и «Айву» вкладываются одни и те же люди, то куда смотрит антимонопольная служба? Ни для кого не секрет, что инвестиции — это мощный рычаг управления компанией, кто платит — тот и заказывает музыку. Не попахивает ли тут сговором?

— Не путай инвестиции и монополию, это две совершенно разные кухни, — поучает Антон и прикладывается к кружке. — У них там тоже, знаешь ли, свои клиенты. И свои надзорные органы — но разные!

— Ну, хорошо. Но как же тогда…

— А во-вторых, есть ещё фирмы-посредники, через которые можно прогнать финансовые потоки. В общем, всё у них там хитро, непросто…

За целый день Виль съел лишь пару бутербродов — утром, за завтраком, поэтому сейчас захмелел с половины кружки. Также сыграло свою роль нервное напряжение, а неудача на презентации окончательно добила. Взгляд его затуманился, движения стали вялыми, мысли текли плавно, мягко.

— …В открытом доступе информации не сказать чтобы много, — между тем продолжает Антон, — но у меня ведь свои источники…

— Да-да, ты говорил… — Виль вспоминает, что Антон когда-то давно работал в «Айве».

— Так вот, и это важно…

«Зачем он всё это мне рассказывает?» — спросил себя Виль. Закулисные интриги — удел избранных, а друзьями они никогда не были. Скорее — просто коллеги, может быть — приятели, которые изредка сидят вот так же, как сегодня, в кафе. Тот факт, что пару раз выезжали семьями за город на шашлыки, не объясняет подобной откровенности.

«Впрочем, какая разница — пусть рассказывает что угодно», — решает Виль. Антон пришёлся очень даже кстати. Чтобы разогнать тяжёлые думы о фиаско, как раз и нужен такой интересный собеседник.

— …Даже сам Степан Павлович не был в курсе, — закончил Антон и уставился на Виля.

Видимо, ожидал бурной реакции, но Виль ещё пару минут назад отвлёкся и потерял нить разговора.

— Степан Павлович? — единственное, на что его хватило.

— Трудолюбов. Знакомая фамилия?

«Генеральный директор «Айвы», — проплыло в голове у Виля. — Кстати, о чём это мы?»

— Ну, хорошо, пусть так… — соглашается он, дабы не вникать в упущенные подробности. — Но при чём здесь я и мой проект?

— Хе-хе… — подсмеивается Антон. — А вот тут — самое интересное! — обещает и, растягивая театральную паузу, манерно берёт в руки кружку, делает небольшой глоток. — Ты в этой истории при том, что наш рыжий товарищ недавно, с полгода назад, на корню зарубил примерно такой же проект в «Айве».

— Вот те раз! — вырвалось у Виля, он в момент протрезвел. — Такой же проект, как у меня?

— Примерно такой же. Один толковый программист из «Айвы» придумал что-то вроде твоей системы. Не знаю уж, сколько времени и сил потратил на разработку, но наш гундосый знакомый, как только узнал, явился к руководству и завернул всю эту тему.

— Но как же так?.. Почему?

— Понятия не имею, — пожал плечами Антон. — Но видимо, были у него какие-то свои причины…

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

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

 

 

— — —

 

Включать свет в прихожей не стал. Осторожно прокрался на кухню. Нашёл табурет и присел возле окошка.

По ту сторону сыпало колючей снежной крупой — впервые в нынешнем октябре. Прорезая в мокром воздухе яркие линии, белая мелочь исчезала в черноте асфальта. Где-то рядом взвизгнула кошка, в ответ прогавкала собака.

Скрип двери. Едва различимый шорох из коридора.

— Устал? — тихий голос Марины.

Виль лишь тяжело вздохнул.

— Мне посидеть с тобой? — Марина нежно поглаживает его плечи.

— Нет, не стоит… Иди лучше спать. Один посижу, с полчасика.

— Хорошо… — Марина целует его в щёку. — Я сварила рассольник. На плите, настоялся, наверное, за день. Сметана в холодильнике, не забудь.

— Спасибо.

Она уже была в коридоре, когда Виль обернулся и вполголоса спросил:

— Марин? Может, мне лучше было идти на художника?

— Что?.. — не поняла та.

— В Институт искусств.

— С ума сошёл, — прыснула от смеха Марина. — Не переживай, — тихо и ласково говорит она, — всё хорошо! А они просто ничего не понимают…

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

Вилю нравилось, несмотря на повышенную нагрузку: факультативный английский и два-три раза в неделю уроки в художке. Чуть поднаторев, стал мнить себя великим мастером, а забросил, как все, уже в старших классах. Но то — отдельная история, связанная с влиянием отца. Генрих Арнольдович свою жизнь посвятил литературе и не мог мириться с выбором, к которому подтолкнула Виля мама. Интеллигентные споры родителей зачастую перерастали в совсем не культурные ссоры. Папа — в прошлом журналист, редактор, а ныне литературный критик и немного писатель — в итоге победил, и после школы Виль пошёл на филологический.

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

Век компьютеров только начинался, профессия сулила долгоиграющие перспективы. Беспроигрышный компромисс в семье: ни нашим, ни вашим. Однако Вилю всю жизнь казалось, что выбор программистской стези был продиктован отцовским авторитетом. Ведь как ни крути, код программы так и останется кодом, то есть текстом. А текст…

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

«Нет ничего лучше литературы, — не раз говаривал отец Виля. — Прекраснее, ценнее, сильнее, чем литература, быть ничего не может! Никогда и нигде в целом мире!» Генрих Арнольдович вообще любит меткие слова и витиеватые выражения. Вилю запомнилось, как отец доказывал матери первичность литературы перед всеми прочими видами искусства: «Живопись — чепуха! Что отличает нас от неандертальцев и всяких там кроманьонцев? Разве рисунки на пещерной стене? Намалевали каких-то мамонтов-червямонтов и сидят довольные возле костра! Человек тогда и только тогда стал человеком — когда впервые вывел рукой слово! Где ещё найти такое красноречье и ясность мысли? Нарисовал художник берёзки — и что? Что он этим хотел сказать? Берёзки красивые, не спорю, но смысл-то в чём? Нет, нет, нет! Истина может содержаться только в тексте, всё остальное — ерунда и пустая трата времени!»

Следуя логике, Виль признавал, что программистский код — суть тот же текст, который вселяет жизнь в бездушное железо, одаривает знанием, наделяет смыслом и функцией. Хорошо написанная программа — тоже произведение искусства, это ему известно не понаслышке.

Но всё же живопись так и осталась для Виля первой любовью. Не отнять, не вырвать из сердца. Не выкорчевать из Виля художника. Гениальным творцом не стал, но ремесленник из него получился бы умелый.

«Талантливый иллюстратор, — едва ворочаются образы в голове, — или, быть может, знаменитый график…»

Усталый разум пригрелся у огонька неспешных размышлений, тёплые воспоминания укрыли одеялом истрёпанную за день душу. Незаметно для себя Виль прислонился к стене и вскоре уснул.

 

 

— — —

 

— Родя, дорогой, выключи телевизор! Ты себе глаза испортишь!

— Ну, мам…

— Ничего не «мам»! Сколько раз тебе повторять!

— Это же по учёбе, мам…

— С каких это пор спортивные новости стали частью учёбы?

— С таких!..

— Не пререкайся с матерью! — наконец вступил в разговор Виль. — Тебе же ясно сказали: отойди от телевизора хотя бы метра на три! Мама о твоём здоровье заботится!

Родион состроил недовольную рожицу, но всё-таки поднялся с кресла и пересел на диван. Виль стоит в дверном проёме и со строгостью во взгляде наблюдает за действиями сына. В руках у главы семейства стакан с кефиром, волосы на голове растрёпаны — только что из кровати, в ванную не заходил.

— Пап, отсюда плохо видно… — нудит Родион, издалека щурясь в мерцающий чёрный экран с разноцветными надписями.

— Вот видишь — зрение ты уже посадил, — отвечает Виль, но сам тоже не разберёт, что пишут в телетексте. — Ужасная штука. Как ты там ещё что-то находишь?

— Зато информация там появляется раньше, чем даже в интернетах, — объясняет Родион. Живо нажимая на кнопки пульта телевизора, переключается между пунктами меню. — Ого! «Суперсоникс» вышли вперёд!

— А с кем играют?

— С «Кракенами».

— Проиграют, — уверенно говорит Виль. — Сынок, не проще ли включить прямую трансляцию? У нас же, кажется, был такой канал…

— Нет, пап, не проще, — не отвлекаясь от телетекста, отвечает Родион. — Тут я слежу сразу за четырьмя матчами. Да и к тому же, когда показывают игроков, у меня в глазах рябит. Голова начинает болеть от этого мелькания.

— Мелькания… — задумчиво повторяет Виль. С чего это живую картинку со стадиона стали называть мельканием?

— Пап, пап, ты проснулся? — Катюша вбегает в зал и обнимает отца за колено.

— Да, моя хорошая, — едва не выронив стакан, отвечает Виль.

— А ты не забыл про моих друзей?

— Нет, конечно, помню, — говорит отец, хотя на самом деле забыл. Он смотрит сверху вниз в голубые глазищи дочери и участливо спрашивает: — Ну, рассказывай, что там у тебя приключилось?

Катя вытаскивает из кармана пижамы телефон и показывает:

— Вот тут, смотри: я добавила Вальку, а после этого у меня все друзья слетели.

— Ах, да, на этом мы и остановились.

Виль присел на диван, Катя со всего размаху плюхнулась рядом.

— Я сама! — своенравничает девочка в ответ на попытки забрать у неё телефон.

— Хорошо, — соглашается отец. — Давай поэтапно, шаг за шагом: что нужно сделать, чтобы добавить подружку в список контактов в «Визаж-паде»?

— Не подружку, пап! — возмущается Катя и выпячивает нижнюю губу. — Мы с Валькой — не подружки! Мы с ней пока просто так… Только куклами один раз менялись.

— Ну, хорошо, — улыбается Виль. — Что нужно сделать, чтобы добавить Вальку в список друзей?

— Нужно записать её в файлик, который лежит в папке с настройками! Для этого нужно открыть его этим… как его?

— Текстовым редактором, — подсказывает сидящий рядом Родион.

— Не редактором, а «эдитером», — настырно возражает Катя.

— Это одно и то же, — глядя в телевизор, снисходительно усмехнулся старший брат.

— Ребята, не препираемся! — урезонивает отец.

Маленькие пальчики Кати ловко бегают по клавишам телефона, выводя в интерфейсе консольной строки команду на редактирование файла:

 

edit /core/programs/network_applications/visage_pad/settings/contacts/friends.conf

 

— Ничего не замечаешь? — спрашивает Виль, опытным взором сразу поймав ошибку. — Вон там, в четвёртой строке.

Даже Родион отвлекается от телевизора и заглядывает в телефон Кати.

— У тебя там опечатка, — легко определяет брат.

— Ой! — Катя теперь тоже видит лишний затесавшийся символ в строке конфигурации режима отображения контактов:

 

DB_DISPLAY_MODE_OF_CONTACTS = pi\nk

 

— Косая чёрточка! — воскликнула Катя. — Как она сюда попала?

— Ничего страшного, доча, — успокаивает отец. — Видимо, когда меняла настройки, случайно нажала не на ту кнопку.

— Я ничего такого не нажимала! — упрямится девочка. — Я только хотела, чтобы список моих друзей был розовый!

— Ну да, просто поторопилась и ошиблась в слове pink. Система не воспринимает такую переменную, поэтому и список у тебя не отображается.

— Всё равно, это не я! — Катя надула губки. — Это всё Родя!

— Ну да, конечно, — надсмехается Родион.

— Родион! — повышает голос Виль. — Ещё одно слово — останешься без телетекста! Удалила ненужную чёрточку? — возвращается к дочке. — Хорошо. Добавляем в список друзей Галку?

— Вальку!

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

 

[Valka]

template=standard

context=classmate

userid=valka_printsessa@visagepad.com

 

— Пап, я всё правильно сделала? — осторожно спрашивает Катюша.

— Да, доча. Если твоя Валька зарегистрирована как «Валька-принцесса», то всё правильно. Сохраняй файл. А теперь переходи в режим отображения профиля.

Катя послушно набирает команду:

 

visagepad –st

 

— Посмотрим список друзей? — предложила Катя.

— Да, — кивнул отец. — Посмотрим, добавилась ли туда Валька.

 

contacts show friends

 

Команда выводит на экран телефона вереницу строк, в самом конце которой оба видят:

 

Emil/pashtet_42@visagepad.com     178.125.32.14     OK (1h 45m 22s)

Adelya/adelia_beauty@visagepad.com     (Unspecified)     UNREACHABLE (2d 3h 6m)

Valka/valka_printsessa@visagepad.com     89.250.14.185     OK (8h 39m 51s)

 

— Она онлайн! — от радости верещит Катя, прыгает с дивана и бросается в свою спальню. Но тут же возвращается и, с благодарностью поцеловав папу, спрашивает: — Я — на улицу. Можно?

 

 

— — —

 

Проблема тут, похоже, в так называемом базовом случае — это такое условие, при котором рекурсивный запрос будет остановлен. Не будем же допускать, чтобы она работала до скончания времён. Иными словами, функция будет вызываться при каждом шаге алгоритма до тех пор, пока не вступит в силу базовое условие…

Трель телефона с другого конца комнаты. Но Виль не обращает внимания, будто бы не слышит.

…Да, это как раз тот случай, когда нужно свести сложную, составную задачу к решению более простой, что называется, получив базовой решение…

Вдохновлённый догадкой Виль одержимо стучит пальцами по клавишам, выдавая прерывистую мелодию программистской симфонии. Код получается лёгкий, изящный.

— Перезагружаем процесс… — едва слышно произносит Виль. — Процесс пошёл…

С замиранием в сердце смотрит на строку, в которой отображаются этапы загрузки… 80%… 87… 91… 98… 100! Появляется радостное извещение:

 

progress complete

 

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

Это нечто — прямоугольник с диагональю сантиметров десять. Периметр окрашен в непритязательный серый, фон внутри фигуры — болотно-зелёный.

Но самое главное — на этом мерцающем болотном поле расположены три жёлтых значка, напоминающих стилизованное изображение обычной канцелярской папки.

— Работает… — дрожащим голосом говорит Виль.

Хочется поделиться новостью со всем миром. Виль поднимается и идёт к двери. От волнения не держат ноги, кажется, он ничего не видит вокруг.

Но слышит, как рядом опять зазвонил телефон.

— Алло…

— Виль, приветствую!

— Здравствуйте, Павел Георгиевич, — не сразу отзывается Виль.

— Прошу извинить, что беспокою в нерабочее время, — как всегда соблюдая такт, говорит начальник. — Но дело крайне важное, поэтому я решил сообщить тебе как можно скорее, — Павел Георгиевич переходит на ты, это означает, что разговор очень личный.

— Да-да, Павел Георгиевич, я вас внимательно слушаю.

— Я только что с совещания, был у генерального… Как бы это сказать… В общем, генеральный распорядился свернуть все работы по теме графических интерфейсов…

— Но почему? — в отчаянии вырвалось у Виля. — Он работает! Я только что…

— Увы, Виль… — сожалеет тот, и в голосе чувствуется искренность.

— Павел Георгиевич, я только что дописал код! Помните, я рассказывал, что не могу найти ошибку? Так вот, я понял, что было не так. Теперь всё работает! Могу завтра приехать в офис и продемонстрировать!

— Понимаю твою обиду — столько времени потратил на проект. Но с генеральным спорить бесполезно. Я пытался его убедить, без толку. Он сказал, что не видит перспектив, мол, у графического интерфейса нет будущего. К тому же, инвесторы… Ты же помнишь, что он там наговорил на презентации…

Слова Павла Георгиевича звучат как приговор, и Виль понимает, что сопротивляться бессмысленно.

Попрощавшись с руководителем, Виль обессилено рухнул на кровать.

Ну, как же так? Нет перспектив… Нет будущего…

— Пап, — из коридора зовёт Родион. — Пап, — повторяет, появляясь в комнате, — мне нужно немного мелочи, у меня закончилась… Ух ты! Это что такое? — Родион с интересом разглядывает невиданную диковинку, что поселилась в мониторе папиного компьютера.

— Да так… — безразлично отвечает Виль. — Одна разработка. Эти папки на экране — то же самое, что директории, только представлены… хм, графически, визуально.

— Прикольно. Но не очень удобно, по-моему.

— Почему? — удивился отец.

— Нелепо как-то… — пожал плечами Родион. — Неинформативно, что ли… Глаза разбегаются.

— Ничего подобного! Попробуй открыть папку и увидишь, насколько это удобнее командной строки.

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

 

— — —

 

Оставить комментарий

Рассказ был опубликован в журнале Downgrade.

Читать другие рассказы:

«Они прилетели»        «Вселенная полна потерянных кораблей»

«ГОСТ»        «Под звёздным небом»        «Забытое»        «Продажники»        «Парк развлечений»

Все произведения