Читать книгу Сын технологий. Роман в пяти годах и тридцати главах. Книга первая - Сергей Березовский - Страница 17

ГЛАВА 5. ШКОЛА
III

Оглавление

Увольнять же Андрея, похоже, никто не собирался, да и работы у него было выше крыши. Деваться было некуда, и он с прежним усердием продолжал разбираться с проектами. Рабочее место по-прежнему оставляло желать лучшего. Старое бабушкино кресло, оставшееся ещё от предыдущей хозяйки Эллы Яковлевны, постоянно ломалось. Андрей утомился подкручивать ему ножки, но покупать новое ему не хотелось. Он рассчитывал на то, что скоро будет офис, а домашнее кресло нужно будет приобретать в комплекте со всей остальной мебелью уже после общего ремонта квартиры. Монитор продолжал гаснуть, хотя кое-как и удалось приловчиться вмещать туда необходимые для работы программы.

Старый компьютер тоже нашёл своё применение. Для некоторых заданий по работе требовалась другая разновидность операционной системы, не совместимая с операционной системой на основном компьютере. Андрей купил удлинитель с розетками, впихнул старый компьютер между двумя шкафами в другой угол комнаты и подключил в сеть с основной машиной. Для этих целей Шура обеспечил дополнительным коммутатором, а Ишаков – куском сетевого кабеля. Андрея раздражало, что для настройки сети и других процедур семнадцатикилограммовый монитор иногда приходилось отключать от основного компьютера, нести через всю комнату и подключать ко второй машине. Это было необходимо, например, для проверки работы некоторых диктофонных устройств с другой операционной системой или когда на втором компьютере возникали проблемы, которые нельзя было продиагностировать через сеть и решить с основного компьютера.

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

Андрей очень не любил тратить время на все описанные процедуры. В Корпорации такими вещами занимался специальный отдел системщиков, и обычным сотрудникам о покупке и замене оборудования думать было не нужно. Пришёл человек – поменял всё за пять минут – ушёл. После решения проблем Андрей задумывался, куда отнести время, потраченное на восстановление и ремонт: приписывать его к рабочим часам или рассматривать как личное? Ведь один и тот же компьютер служил и рабочим, и домашним целям. В итоге он решил, что потратил всё-таки личное время, а эти часы нужно будет отработать. Хотя, конечно, ничего, кроме головной боли, такие вопросы не приносили.

Система учёта времени и заданий, в которую Блёдер когда-то так поспешно добавил два срочных задания, на деле оказалась неиспользуемой. Андрей продолжал вести учёт времени на своих листиках и основные моменты по выполняемым заданиям тоже помечал на листиках. Когда очередная задача была закрыта, он её с удовольствием вычёркивал. Технические подробности и другую дополнительную информацию он вразнобой записывал в электронные документы, а обсуждение работы по-прежнему вёл в программе-болталке с Шурой. Записи этих бесед, которые велись в программе-болталке автоматически, Андрей при выполнении задания внимательно перечитывал по нескольку раз.

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

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

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

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

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

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

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

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

Ну а Андрей занялся другим заданием – автоматизацией процесса сборки и развёртывания программ. Про процесс сборки нужно предварительно сказать несколько слов. Как создаётся, например, автомобиль? Отдельно собирается двигатель, отдельно – колёса, отдельно – электрические блоки, отдельно – кузов. Потом всё это скрепляется, сваривается, привинчивается – и получается готовый автомобиль. Ровно то же самое происходит с компьютерными программами. Сначала разрозненные фрагменты текста одной большой программы превращаются в отдельные составляющие блоки. Потом эти блоки собираются в более крупные блоки, те – в ещё более крупные и так далее. Кроме собственно текста программы, в процессе работы используются дополнительные блоки. Это могут быть как собственные разработки, так и коммерческая продукция третьих фирм, которые производят специализированные блоки разного предназначения и распространяют их по соответствующим лицензиям.

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

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

Затем сборка Про-системы попадала к клиентам на центральный компьютер больницы и начинался процесс развёртывания. Как располагаются на отдыхе, например, на природе? Распаковывают палатку, забивают колышки, разворачивают, натягивают, устанавливают. Собирают мангал из компактно сложенных запчастей. Откупоривают бутылки, разливают по рюмкам водочку, открывают банку с огурцами, раскладывают по пластиковым тарелочкам еду. Аналогичные процессы происходили и с Про-системой. Упакованная сборка вначале попадает на центральный компьютер, и там её распаковывают. Затем создаётся база данных и заполняется необходимой для работы начальной информацией, другими словами – инициализируется. Если база данных в больнице уже существует и активно используется, создавать её заново не нужно. Зато с ней нужно проделать процедуру обновления, чтобы она соответствовала последним изменениям Про-системы, которые появились в ней с момента предыдущего развёртывания. Другими словами, устанавливается новая версия Про-системы. После развёртывания Про-система подключается к базе данных. Если при этом база данных и Про-система физически располагаются на разных компьютерах, то нужно предварительно проверить, не закрыта ли возможность подключения одного компьютера к другому. Как правило, и база, и Про-система располагались на одном компьютере, но предусмотреть нужно было все возможные варианты. Были и другие нюансы. Например, процесс развёртывания слегка различался в зависимости от разновидности используемой операционной системы. И все эти моменты при автоматизации развёртывания нужно было учитывать.

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

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

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

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

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

Сын технологий. Роман в пяти годах и тридцати главах. Книга первая

Подняться наверх