В Шенноне у киля Boeing-707. Ночной кошмар проектировщика и заказчика ;-)

Главная Статьи Разработки Интересы О себе

 

Моё весьма первое знакомство с вычислительной техникой началось в далёком 1986 году. Считаю, что мне повезло застать очень интересный период в развитии техники, многократной смены технологий. Экскурсов в историю в интернете вполне достаточно, поэтому я постараюсь рассказать только о том, что делал сам и каковы были результаты.

Давным-давно.
При ABEND-е разбейте стеко молотком.
Непобедимая и легендарная.
Первые ПК.
Из любителей в профессионалы.
Хотели как лучше... (или про австрийцев)
Тренажёр диспетчера посадки.
Приватизация по Чубайсу.
Наши железные дороги - самые железные в мире.
Мой первый опыт в Windows.
Ирландия.
Я - директор по ИТ.
Нефть - это наше всё.
Продолжение следует... (пароли, явки)

Давным-давно.

Термин "компьютер" в русском языке появился позже, в 80-х годах прошлого века использовалось название ЭВМ. Так случилось, что моей первой ЭВМ была ЕС-1066 в ВЦ Саратовского университета. Те, кто думают, что "экран и мышь" были всегда, сильно заблуждаются. В середине 80-х они, конечно же были, но далеко не для всех. Мой первый опыт программирования проходил без применения этого чуда технической мысли, то есть на перфокартах.
45-и и 80-колонные перфокарты Перфокарты были изготовлены из плотного картона и используются до сих пор... в качестве закладок для книг. Привожу картинку для тех, кто не никогда их не видел. Перфокарты были 80-колонными и 45-колонными (с круглыми отверстиями). 45-колонные применялись на "Минск-32" и на ЕС ЭВМ уже не встречались.
Я учился на физическом факультете, поэтому предмет "программирование" преподавался достаточно своеобразно. Лекции вёл начальник ВЦ Амельченко Вячеслав Викторович, а читал он нам, понятное дело FORTRAN, а точнее FORTRAN-66. А сейчас постараюсь обрисовать, в чём заключается заключалось своеобразие.
Представьте себе 17-19 летних студентов, которые никогда никакой вычислительной техники не видели. Возможно, самые продвинутые из них видели изредка программируемые калькуляторы, но не более того. Если кто не знает, то в школах в ту пору информатику ещё не преподавали и знания вышеупомянутых студентов в области информационных технологогий можно рассматривать как бесконечно малую величину.
Предподавание началось с понятия ПСЕВДОКОДА. По-видимому, его придумал наш преподаватель для "облегчения усвояемости", но что это такое так никто и не понял (термин в литературе не встречается). Курс был теоретическим, и иногие просто решили дождаться чего-то реального, на чём и в самом деле можно программировать. И вот наконец свершилось - начали читать FORTRAN.
Знакомство с FORTAN-ом началось... с оператора FORMAT. Зачем и с какой целью это было сделано - для меня остаётся загадкой даже спустя много лет. У 80% присутствовавших в голове что-то зациклилось на тему "формат оператора" и "оператор формата", у многих эта зацикленность так навсегда и осталось. Хотя и туго, но процесс шел и к середине первого курса я был совершенно убеждён, что программирование - это совершенно не моё занятие. Если бы мне кто-то тогда сказал, что очень скоро это станет моей профессией на всю жизнь - я бы ни за что не поверил.
Отдельно нужно остановиться на практике. За семестр можно было успеть написать 2-3 программы строк в 100-150 максимум. Сей процесс в полной мере формировал такое качество, как упорство. Для того, чтобы сделать это, нужно было пройти следующие этапы:

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


При ABEND-е разбейте стеко молотком.

Настоящей библией по мейнфреймам была книга К.Джермейна "Программирование на IBM/360", в ней было написано, что есть на божъем свете системы телеобработки и к ним можно подключать терминалы. Но видел такие устройства тогда только в кино.
Терминал ЕС-7927-01 По счастливому стечению обстоятельств, мне довелось попасть в ИВЦ Саратовского экономического института, где я впервые увидел терминал ЕС-17927-01 и это произвело на меня неизгладимое впечатление: оказывается, можно оходиться без колоды перфокарт, делать исправления сразу и получать результаты не через 2 недели, а через 15 минут! Согласитесь, после "комнаты 104" это был прогресс, соизмеримый с полётом человека в космос и освоением мирного атома.
ленточные накопители (НМЛ) ЭВМ ЕС-1035 по тем временам была очень неплохой. Она занимала площадь чуть более 100 квадратных метров, включая накопители на магнитных лентах и дисках. Объём оперативной памяти составлял примерно 400 килобайт, что позволяло без особых проблем выполнять полтора десятка пользоватеских сессий в замечательной оболочке PRIMUS.
PRIMUS 2.5M PRIMUS - это диалоговый монитор, позволявший редактировать файлы, запускать задания и выполнять ряд системных функций ОС ЕС. Он был разработан в МИФИ при участии Валентина Черняка, широко известного в начале 90-х по целому ряду русификаторов для DOS и командно-файловому процессору PIE Commander.
Наверное, нелишним будет вспомнить, что под управлением PRIMUS я увидел и первые компьютерные игры. Для тех, кто хотел бы посмотреть какими они были, их win32-порты выложены у меня здесь:

Вместе с моим другом Андреем Чесноковым, который сейчас стал директором компании по разработке ПО, мы быстро освоили PL/1 и на начальном уровне ассемблер. Обычно задачи как-то возникали сами собой или кто-то просил что-то для него сделать, но один раз решили сделать нечто эпохальное. В качестве эпохального творения решили перенести программу ПРЕЗИДЕНТ с Бэйсика ZX Spectrum на ЕС. В изначальной версии на Бэйсике было около 1500 строк, но проблема усугублялась тем, что в качестве исходного материала у нас была лишь распечатка и нам предстояло набрать текст без ошибок. Так как на ЕС не было реализации Basic-а, стали переводить текст на PL/1, эмулируя вызовы GOSUB при помощи управляемого массива меток (в PL/1 был такой тип данных). При первой попытке компиляции из АЦПУ вышел листинг ошибок длиной метров 150, который потом лет 10 лежал у меня на шкафу и использовался для заворачивания всего, чего угодно. Тем листингом мы израсходовали месячный лимит кафедры АСУ на распечатки, за что нас сильно ругали ;-) В ходе этого мы преодолели нехватку таблицы для внешних имён компилятора PL/1, разобрались в огромном количестве опций и наконец месяца через три заставили эту программу работать! Это был успех, который окончательно отвратил нас от физики и тот самый момент, когда можно сказать, что "болото информационных технологий" поглотило нас. Без ложной скромности могу сказать, что по ЕС в те годы в нашем городе вряд ли нашелся бы кто-то нашего же возраста, сопоставимый с нами по опыту в PL/1.
Микроша Я бы покривил против истины, если бы стал утверждать, что в это время существовали только "большие машины" серий ЕС и СМ. Именно тогда появились и первые действительно персональные ЭВМ, среди которых были БК-01001, БК-0110, Микроша и "самопальные" Радио-86РК. Они подключались к бытовому телевизору, отчего изображение на экране гуляло вместе с напряжением в сети, а в качестве внешней памяти использовался бытовой магнитофон. Но после ЕС ЭВМ я их как-то всеръёз не воспринимал, их и компьютером то назвать было даже неловко.
На дворе стоял 1988 год, могущество Страны Советов не вызывало никаких сомнений, а линейка ЕС ЭВМ казалась незыблемой на века. На этом нужно немного прерваться т.к. пора было идти в армию (в те годы студентов ещё призывали на срочную службу).
Перед самым призывом мы слегка похулиганили - оставили сообщение в системе автозагрузке PRIMUS для нашего преподавателя, не зная ни одного логина и пароля. Для этого мы зашли ВЦ СГУ после "мехматовской" группы, воспользовавшись "забытым" терминалом запустили пакетное задание на исполнение утилиты ACRSFILL из библиотеки PRIM.PROCLIB, которая и дала нам полную и неограниченную власть над ЕС-1066. После этого зашли под созданным нами пользователем и оставили нашему преподавателю сообщение в PROCINIT. Какой это имело эффект - нам не было известно, через день-два мы уже "топали сапогами".


Непобедимая и легендарная.

В СССР в 80-е иногда случались "временные трудности" вроде дефицита. То исчезнет зубная паста, то почему-то не окажется в продаже никакого мыла. Не скажу, чтобы это очень уж раздражало (тогда почти все советские люди имели запасы "стратегических товаров"), но требовало некоторых объяснений. Наиболее распространённым было такое: страна окружена внешними врагами и сильно тратится на гонку вооружений. Дескать по этому не до мыла, когда ракеты нужно делать "как колбасу". Меня такое объяснение вполне устраивало и даже была определённая гордость за свою страну, что вот хоть "они" и с мылом, а мы по "ним" и без мыла жахнем ;-). Я тогда, как и многие другие, полагал: если "на гражданке" чего-то нет, то уж в армии наверняка есть всё и всё самое современное. Попав в армию осенью 1988-го, я был удивлён глубиной собственных заблуждений.
Высотомер ПРВ-11 Я попал в войска ПВО страны и моим "боевым оружием" стал высотомер ПРВ-11 (1РЛ-119) "Вершина" 1972 года выпуска. При первом взгяде на него можно было подумать, что он воевал ещё во Вьетнаме - дверь не закрывалась, контакты "не контачили", а резервный дизель-генератор из-за отгоревшей трубы коптил прямо в кабину оператора. После этого меня уже не удивлял факт посадки Руста в Москве у Красной площади, удивлять стало другое - почему же он не взлетел и не улетел беспрепятственно обратно.
Оказалось, что в армии почти всё устаревшее, а значительная часть техники и вовсе неисправна. Система проводки воздушных целей работает "матюгальником по радиоканалу", то есть вручную. Задержка информации по цепочке оператор-планшетист-оперативный-диктор достигала 2-х минут при дискретности в полминуты. А это только первичный уровень, дальше та же система повторяется на уровне батальона и полка, лишь после этого цель передаётся ИА или ЗРВ для обстрела. А за 5-7 минут даже со скоростью 800 км в час убраться из зоны поражения вполне реально. А если добавить сюда протекающие крыши командных пунктов и заливаемые водой кабельные каналы, то "непобедимость" нашей армии становится совсем не легендарной, а скорее даже весьма мифической.
Да ещё можно добавить что "советскому солдату можно давать в руки только тяжёлое, железное и без ручки, чтобы не сломал и не украл". Никаких вычислительных машин сложнее калькуляторов я не встретил. К слову, ситуация в войсках за двадцать лет не сильно изменилась.


Первые ПК.

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

Персоналка ЕС-1840 Первой "настоящей ПК" в современном понимании этого термина для меня стал ЕС-1840 и Искра-1030. "Чёрно-серый" или зелёный экран разрешения CGA, пара 5.25-дюймовых накопителей для гибких дисков на 360 килобайт каждый - это всё, что было. Но этого вполне хватало для небольших программ. Аппетиты разработчиков были не такими, как сейчас, например Volkov Commander занимал 60кб, а GWBASIC - 80.
Специалистов по новой технике практически не было, литературы в провинциальных городах было очень мало - за ней даже ездили в Москву в "Дом книги". Если кто-то не помнит - Интернета в ту пору ещё не существовало. Все программные средства добывали через знакомых, при этом авторские права никого не интересовали - у каждого "околокомпьютерного" человека был огромный склад программных средств, которые хранились на 5.25" гибких дисках, при этом он сам не всегда мог объяснить зачем нужны те или иные программы. Собирали всё "на всякий случай", вдруг когда-нибудь понадобится.
С Андреем Чесноковым, с которым переносили ПРЕЗИДЕНТА с Бэйсика на PL/1, мы взялись за новое направление с удвоенной энергией. Мы осваливали новые компиляторы, библиотеки и инструменты, которые нам удавалось раздобыть. Microsoft Fortran проблем не вызвал т.к. был очень похож на тот, что был на ЕС ЭВМ. Потом был Turbo C 1.5, за ним - ассемблер. Далее разбирались с аналогом FoxBase, который назывался КАРАТ. При этом мы никогда не занимались изучением ради самого изучения - цель была всегда совершенно конкретная. Я сейчас расскажу пару историй, которые будут хорошо это иллюстрировать.

История первая.

Понятия домашних компьютеров ещё не существовало и вся вычислительная техника была распределена по предприятиям. Для того, чтобы получить к неё доступ, проще всего было устроиться куда-нибудь либо временно, либо на полставки. Впрочем, за это ещё и платят, что для студента совсем не плохо. Одним из моих мест работы на некотором этапе был Станкостоительный завод, в те годы выпускавший внутришлифовальное оборудование, а ныне превратившийся в продовольственный рынок (впрочем, такая участь постигла почти половину нашей промышленности). Моей задачей было разработать программу по построению форм статистической отчётности.
Robotron 1715 Выполнять эту задачу пришлось на ПК Robotron-1715, сделанный в ГДР. Эта 8-разрядная машина была построена на аналоге процессора Z80 и имела 64кб оперативной памяти. Помимо этого, ещё 64 кб памяти могли использоваться как "электронный диск" (понятия ramdrive по понятным причинам не использовали). Операционной системой была CP/М, ставшая прародительницей PC DOS. Именно с этой операционной системой непосредственным образом и связана эта история.
Над своим генератором таблиц я трудился несколько месяцев, но за неделю до сдачи работы в результате ошибки в скрипте я удалил все исходные тексты своей программы. Как и любая ОС, CP/М предоставляла возможность выполнять файловые операции, то есть копировать, удалять и т.д. Но штатных средств восстановления удалённых файлов у неё не было вовсе! Лишний флоппи-диск можно было купить у барыг за 20 советских рублей (около 30 $US), но "душила жаба" и резервной копии у меня не оказалось (кстати, с тех самых пор резервная копия у меня есть ВСЕГДА, и обычно не одна).
Решение пришло само собой - если средств восстановления нет, то их нужно сделать. За довольно короткий срок мы изучили принципы построения файловых систем, особенности работы Int 13h в BIOS и, вооружившись компилятором C, сумели восстановить все мои файлы. Эта история подняла нас на качественно новый уровень.

История вторая.

Персональных компьютеров на предприятиях было не так уж мало, но желающих за ними поработать тогда находилось неизмеримо больше. За ПК нашего отдела (в очень оборонном институте) повадились сидеть "тётки", разрабатывающие что-то на FoxBase. Коварный план освобожнения "нашего" ПК от такой напасти не заставил себя долго ждать, хотя для этого пришлось основательно изучить ассемблер и прерывания DOS.
Идея была проста и красива: создать резидентную программу, которая бы при чтении с диска файлов с расширением .PRG заменяла бы в нём все латинские "p" и "P" на аналогичные по написанию русские. При записи - всё наоборот. Но каков был эффект, когда мы закончили своё творение! Это надо было видеть! ;-) "Тётки" около часа читали сообщения об ошибках на совершенно правильные с любой точки зрения операторы и безуспешно пытались что-то исправить. Они даже позвали всех корифеев, каких можно было найти, пытались обратиться к каким-то знакомым светилам по-телефону - НО ТЩЕТНО! Совсем добил их тот факт, что те же самые программы с того же самого диска на другом ПК работают замечательно. После этого они решили, что "наш" компьютер совершенно неисправен и никогда больше не пытались его занять. Конечно, это было хулиганство, но было очень смешно ;-)


Из любителей в профессионалы.

Конечно, интересно взламывать университетский мэйнфрейм или потешатся над программистами FoxBase, но профессионалом может считаться лишь тот, кто зарабатывает деньги. Скажу больше, для кого это - основной источник дохода. Конечно, и профессионалы, и любители в любых областях могут быть умными и не очень, но профессионал - это выбор. Моим первым профессиональным местом работы стало СП "Прагма Электроника".
Для меня это была великолепная школа. Это было первое СП в регионе и там собрались замечательные люди из бывшей "оборонки", в основном с завода "Тантал" и НИИ "Волна". Предприятие зарабатывало деньги на торговле импортными компьютерами, а тратило их на собственные разработки. В Инженерно-технический центр этой компании я и попал.
Моим первым заданием стало внедрение "АСКИД", под этой абракадаброй понималась автоматизированная система контроля исполнения документов. Говоря современным языком, это был прародитель систем офисного документооборота. Была командировка в Омск к разработчикам этого пакета и мне поручалось внедрить его в местном облисполкоме.
Пакет был написал на Clipper5, который я уже к тому времени хорошо знал, но дела с пакетом не ладились. Дело даже не в том, что в нём было достаточно много ошибок, которые медленно исправлялись (и пересылались на дисках по почте, Интернета ещё не было), а концептуально. То есть, мы пытались "впарить" заказчику явно не то, что ему было нужно. Через несколько месяцев я уже стал в тонкостях разбираться в особенностях движения бумаг внутри областной администрации и решил выполнить свою задачу внедренца с точностью до наоборот.
Вяло сопровождая омский продукт, я сел создавать свой. Я создавал его "с нуля", исходя из собственных представлений о хорошем продукте и о потребностях заказчика. Через четыре месяца работы по 12-14 часов в сутки всё было готово, и в течение нескольких недель моя первая программа заработала в администрации области (кстати, она там работает и по сей день). Это был мой первый серьёзный успех как разработчика, хотя я за него почти ничего не заработал - за полгода инфляция съела 70% всей суммы.
Впрочем, автоматизация такого рода не приносит реальной пользы. Приведу пример: До автоматизации в приёмной облисполкома работло три сотрудника, наиболее трудоёмкой частью работы которых являлось сведение статистики обращений граждан. После внедрения моей программы всё стало делаться автоматически примерно за 30 минут. Однако сотрудников в приёмной осталось по-прежнему три. Их работа стала намного более утомительной т.к. сидеть и ничего не делать 8 часов каждый день и вправду очень тяжело! :-)


Хотели как лучше... (или про австрийцев).

"Прагма Электроника" была советско-автсрийским СП. Вся совместность, правда, заключалась в поставках компьютеров австрийской фирмы KLARISA. Техника по тем временам была очень неплохой, если бы не один забавный казус. Автстрийцам, видимо, кто-то рассказал, что в СССР существует свой собственный стандарт на раскададку клавиатуры и они решили нам сделать приятное. Приятное заключалось в том, что во всей огромной партии компьютеров расладка клавиатура была не QWERTY, а JCUKEN, как на терминалах ЕС ЭВМ. Мне то это не очень мешало бы - я за клавиатурой ЕС провёл уже несколько лет. Но, пикантность заключалась в том, что JCUKEN - это были только надписи на клавишах, сами же скан-коды вполне соответсвовали QWERTY ;-). В то время ещё не продавали наклеек, да и клавиатуры были весьма редким и дорогим товаром. Проблему, помнится, решил великолепный инженер Пётр Василенко, создав драйвер для DOS. Этот драйвер переводил всё в JCUKEN "как написано", но не обрабатывал Ctrl и Alt-комбинаций. То есть, чтобы нажать Alt+G надо было вместо этого нажимать Alt+P по месту расположения QWERTY-аналогов.
На каком-то этапе такие "особенности" меня совсем достали совсем и я написал свой драйвер без подобного недостатка. Этот драйвер поставлялся вместе с компьютерами KLARISSA и просущесвовал до широкого распространения Windows.


Тренажёр диспетчера посадки.

Вы когда-ибудь летали самолётом? Тогда вы наверняка видели посадочные комплексы компании TESLA, стящие обычно вблизи ВПП, дальшейшие имеет к ним самое прямое отношение.
Как-то в нашем предприятии появился преподаватель, ныне расформированного, Энгельсского зенитно-ракетного училища Николай Николаевич Иванов. Иванов показал свою математическую модель поведения воздушного судна на посадочной глиссаде и предложил сделать на основе его модели коммерческий продукт. И работа закипела. ;-)
В постановке задачи нам очень помог Катков Анатолий Федорович из Саратовского авиаотряда, работавший тогда начальником УВД (Управление Воздушным Движением, с РОВД путать не надо). Мы несколько раз осматривали комплекс, смотрели заходы на глиссаду и работу диспетчера. Бортов взлетало и садилось много, задача создания тренажёра для диспетчиров была вполне достойной. Да и просто мне это было очень интересно!
Математическая модель была переведена Ивановым на Fortran, остальное далалось на C и ассемблере. Была сделана затухающая развёртка, мало отличающаяся от реального индиктора комплекса (вывод с затуханием на 286-й машине сделать не очень просто из-за невысокого быстродействия). Но особенно интересно получилось с голосовыми ответами борта диспетчеру.
Никаких мультимедийных устройств вроде Sound Blaster ещё не было в продаже и наш инженер Илья Савельев сделал его аналог. Его плата садилась в ISA-слот и генерировала прерывание, на которое мой драйвер должен был выдавать данные. Всё работало неплохо, если бы не одна проблема: наводки от цифровых схем ПК создавали очень большие шумы в аналоговой части схемы. Голос из динамика звучал через жуткий треск и хрипы, Илья боролся с этим как мог, но к моменту демонстрации у заказчика лучше практически не стало. Мы, естественно, очень боялись, что авиаторам не понравится, но времени у нас уже не было.
Каково же было наше удивление, когда после демонстрации все стали нас хвалить: "МОЛОДЦЫ, ЧТО ВЫ СМОГИ ТАК ПОХОЖЕ ИЗОБРАЗИТЬ НАШУ РАДИОСВЯЗЬ" ;-). Занавес ;-)))
Впрочем, продать тренажёр нам так и не удалось - к моменту окончания работ перевозки упали в несколько раз, лётчики, техники и диспетчеры стали увольняться и остался один ежедневный рейс на Москву.


Приватизация по Чубайсу.

Учёт ценных бумаг Не нужно думать, что только Чубайс продавал страну. Этим пришлось заниматься и мне - мной был разработан и внедрён автоматизированныё реестр акционеров ОАО "Саратовэнерго". Работа была выполнена на Clipper5 со вставками на C и ассемблере в сети Novell. Это была очень большая и интересная работа, включавшая в себя эмиссию, первичное размещение акций, расчёт дивидендов и процентов голосов.
В общем, я очень много времени провёл у заказчика и на тот момент разбирался в ценных бумагах весьма неплохо. Значительная часть законов только принималась и ПО приходилось постоянно переделывать, порой очень серьёзно. В конеце концов, удалось создать логичную, гибкую, не перегруженную модель хранения данных, отличавшуюся высокой производительностью.
Для 386-й машины 25 MHz расчёт по 18 тысячам акционеров и 14 филиалам был весьма трудоёмкой задачей, если впомнить, что расчёт ведётся всегда задним числом с откатом по истории операций на дату начисления. Никаких SQL-серверов ещё не было и все "транзакции" надо было придумывать самостоятельно. Из-за нехватки разрядной сетки для ходивших тогда "неденоминированных" рублей приходилось расчёт дивидендов вести с плавающей точкой. А потом в сверять сумму с итоговой и в несколько проходов раскидывать ошибки округдения. Если бы я списывал эти ошибки округления на свой счёт, то моя фамилия могла бы звучать среди таких, как Абрамович, Березовкий и Потанин ;-) Но я тогда был честным, что может быть и к лучшему - "звучать среди" Ходорковского и Лебедева как-то не очень хочется.
Не обходилось без курьёзов: однажды в одной из версий из-за разрушения индексов все дивиденты РАО ЕС перешли одному из акционеров. При этом все промежуточные суммы сходились! Хорошо, что суммы были огромные и это сразу бросилось в глаза. После этого случая пришлось встроить в программу автоматическую проверку и перегенерацию индексов.
Программа проработала в "Саратовэнерго" ещё шесть лет после того, как я уволился из "Прагма Электроники". Она была заменена на централизованную только в 2001-м, когда DOS и Novell уже совсем не смотрелся. Сейчас её "чубайсовский" функциональный аналог работает на мощном многопроцессорном сервере под Oracle, вот только сотрудницы отдела акционирования как-то признались, что моя была удобнее и работала быстрее ;-)
Осталось добавить, что в середине 90-х я имел дело с несколькими пиратскими версиями своей программы на разных предприятиях. Иногда за мной даже заезжали ребята, выглядевшие примерно как главные герои в фильме "Жмурки", для получения консультаций или решения различных технических проблем. Не могу сказать, что общение с бандитами мне доставило большое удовольствие, но значит программа у меня получилась и вправду неплохая. В общем, какие-то деньги от приватизации энергосистемы я тоже получил... хотя и в размере собственной заработной платы ;-).

Программа вполне прилично работает даже сейчас и Вы можете её загруить спрямо сейчас с данного сайта. После распаковки запускайте start.bat т.к. в нём устанавливается переменная окружения.

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


Наши железные дороги - самые железные в мире.

Приволжская ж.д. В 1994-м году я стал железнодорожником. Моим местом работы стал информационно-вычислительный центр (ИВЦ) Приволжской железной дороги. В центре в ту пору создавалась группа для решения крупной задачи - построения системы ТЕХПД. Более понятно это можно было бы назвать распределёной системой оформления и сопровождения грузовых отправок.
К моменту моего прихода группа уже существовала и работа шла уже несколько месяцев. Неформально руководил группой Константин Бакшт, известный многим тем, что обладал двумя потрясающими качествами: он умел начать практически любое дело и пригласить в команду сильных специалистов, а потом умел так испортить со всеми отношения, что ему приходилось уходить самому. Группа работала в новом по тем временам направлении - терминальным системам на базе UNIX. В качестве сервера использовался SCO UNIX версии 3, а в качестве терминалов планировалось аппаратное решение (VDX, VT220 или аналогичные). Связь с узловыми станциями предполагалось установить по ТЧ или радиорелейным каналам через модемы. Помимо этого, система должна была обмениваться данными с системой ЕК ИОДВ, работавшей на IBM-овском мэйнфрейме, пришедшем на замену ЕС-1045.
Задача была потрясающе масшабной, особенно если знать, что в то время сети передачи данных на Приволжской ж.д. не было. И всё это нам предстояло создать и создать впервые в регионе и впервые в отрасли!
Терминальное решение было выбрано совершенно правильно, а вот с прикладным ПО дело не ладилось. Ранее предполагалось, что в для доступа к данным будет использоваться библиотека CodeBase, а пользовательский интерфейс будет построен на основе curses. В процессе выполнения же выяснилось, что непосредственное использование CodeBase и библиотеки curses крайне трудоёмко. Фактически это могло означать крах проекта, срок сдачи которого неумолимо приближался, а задача была контроле у Начальника дороги. В качестве временного решения мы попробовали использовать Clipper на SCO в эмуляторе DOS. Это была тупиковая ветвь с самого начала, но в то время мы об этом не знали. Через три месяца мы, работая "как негры на плантации", смогли сделать работоспособный вариант и даже показать его комиссии по приёму. Однако до внедрения дело не могло дойти по определению - в Clipper5 функция сборки мусора работала во время ожидания и это приводило к 100%-ной загрузке CPU в любой многозадачной системе. Попытки переписать ядро Clipper-а на ассемблере мы предпринимали, но столкнулись с весьма сложными проблемами в модуле управления виртуальной памятью. Возможно, мы со временем мы и смогли бы одолеть злополучную виртуальную память, но дальнейшие события сделали это неактуальным.
3 ноября 1994 года начальник Приволжской железной дороги Юрий Циттель был застрелен возле собственного дома. Из-за чего это случилось - доподлинно не известно, но ходили слухи, что кто-то добивался контроля над вещевым рынком на стадионе "Локомотив", принадлежавшем железной дороге. Из-за этого события про наш проект на время забыли, что дало нам время основательно переделать концепцию.
В качестве новой концепции была выдвинута идея использовать СУБД Interbase 3 и препроцессор для запросов GDML. В качестве пользовательского интерфейса выбор остановился на моей библиотеке классов для termpcap/terminfo, которую я создавал в инициативном порядке. Дальше развитие комплекса пошло лучше и уже к середине 1995 года комплекс стал внедряться. Параллельно строилась сеть передачи данных, создавалась инфраструктура по её обслуживанию. Развитие системы и наращивание её возможностей шло до 2002 года, когда она была заменена централизованной системой линейных районов, разработанной в Москве по заказу АО РЖД.
Программный комплекс "Система ТехПД" позволял:

По состоянию на июнь 2000г. около 98-99% перевозочных документов обрабатывалось через наш комплекс "ТехПД", при этом в ручном режиме проводись только документы с ошибками, возникшими в силу технологических разногласий между комплексом ЕК ИОДВ и АРМ ТВК.

Направление терминальных систем развивалось услилиями нашей команды весьма интенсивно. Были созданы комплексы таксировки по 10-01 и ТП МТТ, запросная система в ЕК ИОДВ и многое другое.


Мой первый опыт в Windows.

Telnet-клиент С развитием наших систем возникла проблема с аппаратными терминалами: их было нерационально использовать в ситуации уже имеющейся сети (зачем выводить всё на RS232, если есть сеть?!). Идеальным было бы использование telnet-клиента, совместимого с терминалом SCO ANSI, но для платформы win32 такого найти не удалось.
И тогда я решил написать такой клиент именно для win32 т.к. именно тогда появилась Windows 95 и Windows NT 4.0. Пришлось, конечно, разбираться со всевозможными RFC, разбираться с особенностями работы socket-ов под win32, с компилятором Microsof Visual C 2.2, но сравнительно быстро я создал telnet-клиент на win32 с полной эмуляцией консоли SCO UNIX и даже возможностью локальной печати. Эта программа была растиражирована по всей Приволжской дороге, а потом была выложена в Интернет. Ей пользовались во многих местах, например в "Мост-Банке" в Красноярске, откуда мне прислали записанный протокол сессии.
Позже в ИВЦ я разрабатывал и на SCO, и на FreeBSD, но основным для меня с тех пор стало программирование под win32. Был написаны локальный концентратор TGW для АРМа ТВК, комплекс по приёму телеграмм МПС через телеграфные модемы ТЛА-51 и АЛЬФА-ТЕЛЕКС (это которые с 5-битными байтами) и другие программы, сегодня представляющие только археологический интерес ;-)


Ирландия.

Компания DATAC Одним весенним днём у крыльца ИВЦ появился Евгений Самодуров, которого я знал ещё по СП "Прагма Электроника", где он был начальником инженерно-технического центра. Оказалось, что он уже давно живёт в Ирландии и хотел бы организовать в городе предприятие по разработке ПО для зарубежных заказчиков. Команда была подобрана очень тщательно и на тот период наверное была лучшей в городе.
Область была для всех абсолютно новой - разработка инструментальной SCADA-системы. Чтобы не выдать какую-либо коммерческую тайну, историю развития проектов рассказывать не буду (официальную информацию по этому поводу можно прочитать на официальном сайте компании). Работая в этой компании, я разработал следующий софт:

Я не могу выложить на свой сайт ничего из того, что делал для комании DATAC, но демонстрационную версию пакетов Real.Win и Flex.Win Вы можете забрать на официальном сайте Realflex Technologies.
Платформа ULA компании BP В командировки мы ездили часто, чаще в Дублин, но бывало и дальше. Помимо Ирландии, мне довелось дважды побывать в Норвегии и даже внедрять свой Flex.Base на платформе BP ULA в Северном море, где пришлось совмещать его с ABB Operator Station. Название Ula - это имя норвежского былинного богатыря, вроде нашего Ильи Муромца.
Только так и можно добраться Добраться до платформы можно только на вертолёте из Ставангера (Stavanger). Перед посадкой выдали резиновый комбинезон оранжевого цвета и "бананы" в уши. Я до этого никогда не вертолёте не летал и сразу их выбросил. Однако конструкция вертолёта такова, что посадочная дверь расположена у среза сопла двигателя - шум непередаваемый (вертолёт в целях безопасности не глушит двигатель). В результате этого я до конца дня ни по-английски, ни даже по-русски говорить не мог - плохо слышал и всё время переспрашивал ;-)
По сути, это был филиал иностранной компании в России, работать было очень интересно. Работа была построена по всем правлам "военного искусства" - проектирование-кодирование-тестирование-отладка. Использовались для отслеживания состояния багов (bug tracking) и, конечно, CVS. Там я работал, пока не перебрался на работу в Ирландию.

Если Вам кто-то будет рассказывать, что в Realflex самое важное - это QNX, не верьте! Это - действительно замечательная и "правильная" SCADA-система, но сильна она именно разнесённой клиентской и серверной частью. Вы не найдёте другой SCADA-системы, с которой Вы могли бы получать данные реального времени на свой ноутбук даже по медленному каналу, например находясь в самолёте над Атлантикой! Вся удалённая работа с Realflex построена на основе специального протокола, включающего сжатие и шифрование данных. При этом оперативность и низкие требования к ресурсам, вне всякого сомнения, ставят данную SCADA-систему в число лучших на рынке. Скажу больше - Realflex обязан Flex.Win своими выдающимися качествами. Если когда нибудь появится более интересный продукт - не сомневайтесь, он будет построен именно по той же разнесённой архитектуре.


Я - директор по ИТ.

ОАО Жировой комбинат Сказать честно, с "туманного Альбиона" я возвращаться не планировал. Прекрасная страна, замечательный климат, практически нулевой уровень преступности... но вывезти туда жену с детьми в обозримые сроки оказалось нереальным. Так в марте 2004-го года я взял в Шенноне "one way ticket" и вскоре оказался дома. На одном из местных сайтов вакансий очень быстро нашёл объявление с подходящей заработной платой и стал директором по ИТ на ОАО "Жировой комбинат".
До этого я всегда работал в компаниях, разрабатывающих программное обеспечение. Производство оказалось для меня по сути новой отраслью, что позволило мне сделать важные для себя открытия:

Пришлось почувствовать себя в шкуре администратора со всеми планёрками, совещаниями и другими "материально-правовыми" особенностями. За три с небольшим года удалось разработать и внедрить систему мониторинга заявок на обслуживание, запустить внутрикорпоративные web-сервисы, выбить денег на новый кластерный сервер и запустить его в работу. Можно было бы сделать намного больше, если бы не постоянная борьба с "ветряными мельницами" - ряд застарелых проблем не удавалось решить в принципе. Так, например, не удалось отказаться от учёта ОС и ТМЦ, хотя это съедало почти половину "трудовых ресурсов".
Особенно "радовало" направление 1С - дело не в квалификации персонала, а само направление является порочным. Компания 1С породила свой "конструктор LEGO" максимально приближенным к прикладной области, но оборотной стороной этого стала его крайняя ущербность на системном уровне. Кроме этого, 99% так называемых "специалистов 1С" не в состоянии решать эти самые системные вопросы.
Впрочем, эта особенность 1С не дала мне возможности окончательно забыть программирование: когда надо было сделать статистику по использованию сотовой связи, Интернет-траффика или что-то аналогичное, то приходилось делать это самостоятельно на C++ или C#. Так что, нет худа без добра ;-)
Другая трудноразрешимая проблема - это автоматизация производства. Беда в том, что каждый начальник цеха или производства сам лично выбирает проект автоматизации и "выбивает" на него деньги. Естественно, чаще выбирается то, что дешевле и без оглядки на возможную интеграцию. В итоге получаем фрагментарную автоматизацию, построенную на программно-аппаратных решениях разных производителей без какой-либо возможности свести данные воедино.
На комбинате я "пережил" трёх генеральных директоров и столько же директоров ИТ холдинга, но к концу реформы силы меня оставили. После интерграции ИТ в структуру холдинга "под крышей" УК я бы превратился в стрелочника, у которого есть зона ответственности, а своих ресурсов уже нет. Да и к этому времени я почуствовал "второе дыхание" к разработке программного обеспечения и... стал "нефтяником" ;-)


Нефть - это наше всё.

Контроллер станции управления Какое же это счастье - делать то, что нравится! ЗАО "Геофизмаш" вернуло мне уже почти забытое ощущение творчества, к тому времени я уже давно не встречал большого количества умных людей, собранных в одном месте. Я даже порой стал склоняться к мысли, что "катастройка" вместе с приватизацией и прочими реформами не прошли даром и сколько-нибудь толковые специалисты в нашей стране вымерли бесследно, как мамонты. К счастью, оказалось, что вымерли они не все :-)
"Геофизмаш" больше всего напоминает ирландскую компанию DATAC, но отечественную. Компания тоже выпускает "интеллектуальное железо", к которому необходима разработка программ нижнего и верхнего уровня. Мне достался верхний уровень. Это отдалённо напоминает разработку SCADA-систем, но с большим количеством особенностей. Не всё идёт гладко, но в этом наверное для меня и заключается главный интерес - есть куда развиваться. На "Геофизмаше" я пока успел сделать следующее:


Продолжение следует... (пароли, явки)

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


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

 

© Пчелинцев А.В. 2009-2011. Использование материалов допускается только с разрешения автора.

Используются технологии uCoz