Мой последний рабочий день, 01. 09. 2012. Часть 2

Продолжение...

                - Часть 2 -

Один из моих любимых проектов - DVM (Datenverarbeitung Mittelspannungsnetz), 1986-1987.

                *****

Вы когда-нибудь программировали? Я имею в виду серьёзную, сложную задачу. Мне однажды пришлось, в каком-то плане даже по собственному желанию..., люблю собственные желания.

В предыдущем воспоминании подарок моих старых коллег ГДР-овских времён напомнил мне тогда o проектe 25-летней давности DVM (Datenverarbeitung Mittelspannungsnetz). Это фото было частью подарка по теме - проект DVM.

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

Проект DVM был с нашей точки зрения готов.

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

Мы описали задачи и объём информации, необходимой для решения задач.

Задачи не были связанны с автоматическим сбором информации в реальном времени. Информация должна была вводиться в бюрокомпьютер и исправляться вручную, без связи с процессом.

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

Однако ни одна из фирм не была в состоянии справиться с этим. Они использовали систему управления базами данных Redabas (Relationales Datenbanksystem), на базе dBASE, ГДР-овской фирмы VEB Kombinat Robotron. Для компьютеров с 8-бит операционными системами SIOS, UDOS и CP/M. Если не ошибаюсь, давно было, да и одноразово, как и многое в моей жизни.

Redabas был создан для различных задач, поэтому работал удивительно медленно. Для решения наших задач предприятиям требовались минуты.

Наш шеф был непоколебим и оставался при 20 секундах. Видимо он знал, что на аналогичном предприятии в западном Берлине эти задачи решаются в пределах 20 секунд... Что мы, хуже их?

Дело было в 1986 году, тогда это было новшеством, ничего лучшего не было. Что делать? Наше предприятие требовало решения проблемы.

У меня была уверенность, что, если создать систему управления базами данных самому и только для наших задач, то можно было бы уложиться в 20 секунд.

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

Но вот беда у нас не было программистов. Я, как и некоторые другие, знал основы программирования и совсем немного язык ассемблера. Но с такими знаниями браться за серьёзные задачи глупо.

Однако, подумал я, пришло время показать, что что-то могу...

Посетив короткие курсы по языку ассемблера при фирме Robotron, я взялся за дело. Познал наш первый бюрокомпьютер и решил одну из задач проекта DVM, занимающей большое время у компьютера.

И, надо же, время для решения этой задачи составило лишь 3 секунды.

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

Наш шеф был в восторге! Стал таскать меня с бюрокомпьютером по начальникам или приглашать их в лабораторию. Он понял, что мы справимся сами! Впервые...

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

А я ловко обошёл эти сложности уже готовыми командами языка ассемблер, которых они не знали. Мне не верили, что можно так легко работать...

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

Мои программы были оптимально короткими и работали быстро и надёжно... Но это было лишь начало, которое нас окрылило.

Внутренняя и внешняя память у первых бюрокомпьютеров была очень маленькая. Поместить туда всю базу данных и написанные программы казалось невозможным:

- 46 подстанций высокого напряжения
- 4800 (до 10 000) трансформаторных подстанций 10/0,38 кВ
- 700 колец трансформаторных подстанций 10/0,38 кВ

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

Один коллега принёс хорошую литературу из технической библиотеки на эту тему. Мне понравился один метод оптимирования информации для базы данных, состоящий из четырёх ступеней. И я принялся за дело...

Мне надоели наши постоянные дискуссии на эту тему. И я ушёл в себя... Через несколько дней или недель абсолютно оптимальная база данных была готова.

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

Получилось всё красиво: всю информацию я разбил на 8 файлов [Файл (англ. file) — именованная область данных на носителе информации] и повязал их оптимально указателями для быстрого поиска необходимой информации. Все необходимые исходные данные помещались на двух дискетах!

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

Если я вам скажу, что память одной 8" дискеты была в то время 180 Кбайт, то молодые не поверят, что на таком компьютере можно было бы вообще что-то серьёзное создать... Мы создали.

В структуру предприятия, для которой мы делали проект DVM, приняли двух молодых специалистов. Они закончили ВУЗ по информатике и прекрасно разбирались в компьютерной технике и программировании. Одного нам дали в помощь. Это была благодать...

Коротко остановлюсь на этих талантливых ребятишках.

Один, которого нам дали в помощь, был холериком, работал очень быстро, но делал миллион ошибок, которые постоянно исправлял. Он работал как ребёнок, методом "проб и ошибок". Но в конечном счёте у него всё получалось и он ничего не боялся, в отличии от моих коллег, которые были старше и с этим не выросли.

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

Своим форматированием дискеты он выигрывал дополнительно 10 % памяти. Он нам написал тогда драйверы для подключения принтера и цветного монитора к бюрокомпьютеру.

Он очень красиво писал программы: коротко, ясно, лишь с необходимыми пояснениями. Он никогда не ошибался, всегда чётко понимал, что делает. Это был не метод проб и ошибок, а абсолютное знание дела.

Он был очень медлительным во всём: и в движениях, и в разговоре, немного заикался. И напоминал мне ленивца, которых я позднее видел в джунглях Амазонки или коалу, которых я видел в эвкaлиптовых лесах Австралии.

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

Короче, эти два молодых специалиста сильно отличались друг от друга, но оба были молодцами. На них можно было положиться...

Тогда появился язык программирования Turbo Pascal (Турбо Паскаль). Вернее это интегрированная среда разработки программного обеспечения и язык программирования в этой среде. Среда позволяла легко встраивать в код на Паскале вставки на языке ассемблера. Программирование облегчалось значительно.

Я познакомился с Турбо-Паскалем, пройдя короткие курсы в университете Гумбольдта и встал на сторону молодых, которые его обоготворяли. Решили несколько задач на этом языке. Результат был удовлетворительный, задачи решались где-то за 10 секунд.

Время можно было снизить вставками на языке ассемблера. Так что моя работа на языке ассемблера не была напрасной...

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

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

Он удивился и спросил меня - зачем я работаю против себя? Ведь я единственный, который может довести этот проект до конца. Зачем я хочу терять монополию?

Он мне обещал крепко повысить мой оклад, что и сделал в конце проекта.

Я ему объяснил, что ребятам трудно даётся язык ассемблера. А одному писать все программы накладно. Это как поле лопатой вскапывать...

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

И что мне всё равно, что это не моя идея, а идея молодых. У меня нет желания быть незаменимым, тогда будут у меня проблемы с отпуском.

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

Шеф сдался и мы перешли на Турбо Паскаль.

Моей тёте, проживающей в  ФРГ стукнуло 80 лет и я имел привилегию посетить её в Ганновере. Нине поехать со мной не разрешили. Границы ГДР были крепки.

Это сейчас у ЕU границы никто не защищает. Каждый может их перейти, беженцы и не только валят сотнями тысяч со всех сторон. А тогда было строго, всех бы постреляли. Даже меня чуть было не пристрелили, когда я возвращался назад из Ганновера...

А привёз я с собой пару прекрасных книг по языку ассемблера и Турбо Паскалю.

Хорошее было время, творческое... Ребята втроём взялись за программирование задач на Турбо Паскале. А я решил, что пора программировать и Editor (Редактор) - это программа, позволяющая вводить и обрабатывать данные, необходимые для решения задач.

Editor я разбил на физический и логический. Физический Editor позволял вводить данные в 8 файлов без логики и проверки достоверности. Это я сделал быстро, чтобы ребята могли свои программы опробовать.

Логический Editor позволял вводить в компьютер новые подстанции или её элементы или элементы сети, изменять данные или убирать подстанции или элементы, просто указав имя. И все данные, скажем подстанции, убирались из 8 файлов, не оставляя пробелов. Файлы сжимались или расширялись, не занимая лишнюю память. Никто тогда так красиво не работал...

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

Правда, тогда ходили разные мудрости, шутки, поговорки на тему компьютеров. Одна из них - "идиотски" надёжными программами пользуются только идиоты... Шутка - это предназначалось не для идиотов, а для инженерно-технического персонала.

Ребята были уже готовы с программированием задач, я был со своей программой Editor готов последним. Так сказать начал первым и закончил последним.

Проект удался! Мне дали первого инженера и прилично повысили оклад.

P.S.: В следующем рассказе перейду опять к празднованию моей кончины, вернее конца трудовой деятельности.

Хотелось бы ещё добавить, что программированием я решил больше не заниматься. Либо этим нужно заниматься постоянно, либо вообще не заниматься.

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

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

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

Продолжение в рассказе "Мой последний рабочий день, 01.09.2012. Часть 3/5"


Рецензии