История моего программирования
Начало моего занятия программированием было положено еще в середине 80-х годов прошлого века, когда в течении двух с небольшим месяцев пришлось, одновременно с изучением языка PL–1, заниматься написанием программы для электрического расчета участка тяговой сети переменного тока с наличием различных средств повышения эффективности работы системы тягового электроснабжения. Результаты расчетов, выполненных с помощью этой программы, вошли в несколько отчетов хоздоговорных НИР, что материально весьма помогло автору, обучавшемуся в то время в очной аспирантуре. Стоит упомянуть, что это было время больших ЭВМ серии ЕС.
В конце 80-х наступила эра персональных компьютеров, и исторически получилось, что автор начал свою программистскую деятельность на ПК с языка Pascal. Началось все с Turbo Pascal 3.0 и продолжалось до Borland Pascal 7.1.
В этот период автор занимался программированием во многих областях. Вот небольшой список программного обеспечения, над которым работал автор в 90-е годы:
- • большое количество учебного ПО в области теоретической электротехники;
- • специализированные программы анализа режимов работы тяговых сетей переменного тока в установившихся и в динамических режимах;
- • программа тарификации телефонных вызовов через мини-АТС;
- • программно-аппаратный комплекс мониторинга цифрового потока Е1;
- • программный комплекс анализа сигнализации ОКС-7;
- • программный комплекс анализа сигнализации сети доступа ISDN PRI.
Некоторые из этих программ более подробно описаны вот здесь. Работая над этим ПО, автору пришлось изучить пакеты TurboPower, TurboVision, получить опыт работы с оборудованием ПК на аппаратном уровне, обработки прерываний, разработки резидентных (TSR) программ. Был освоен и С++ на примере Borland C++ 3.1.
Большинство написанного автором ПО того времени работало под DOS, что было вызвано спецификой их применения. Однако было написано несколько программ и под Windows 3.1, как на Pascal'е, так и на C++. При этом часть программ были написано с классической для Windows структурой, а на части автор использовал библиотеку Objects Windows Library (OWL).
В начале 2000-х автору пришлось резко изменить род основной профессиональной деятельности и связать свою жизнь с сотовой связью, в частности с эксплуатацией NSS (Core Network) - Google в помощь :)
Конечно для облегчения работы пришлось написать довольно много прикладного ПО, основным инструментом разработки был нелицензионный Delphi. Однако в году 2008-м состоялось мое знакомство с FPC и RAD Lazarus, и с той поры все ПО мною пишется практически исключительно с использованием этих средств разработки. Если иногда приходится работать с С/С++, то это конечно GCC+Eclipse.
В это время в основном писались программы, которые значительно облегчали повседневную работу с коммутационным оборудованием:
- • ПО для снятия различных “принтаутов” с коммутаторов Ericsson и Huawei и представления этих распечаток в удобном для работы виде.
- • программы подготовки командных файлов на основе актуальных таблиц анализа коммутатора.
- • программы обработки статистических данных с оборудования CGSN Ericsson. Здесь было реализовано взаимодействие с MS Excel через OLE, для чего была написана соответствующая библиотека для FPC.
- • ПО анализа обработки вызова на основе актуальных таблиц анализа коммутатора.
Необходимость анализа больших объемов текстовой информации подвигла на разработку программы обработки текстов с возможностью написания программного скрипта (некоторое подобие AWK). В основном причиной этой разработки было желание проверить свои силы в разработке парсера командного языка, При этом для увеличения быстродействия было предусмотрено преобразование исходного скрипта в некоторую последовательность байт-кодов.
Отдельно хочется отметить разработанный в этот период комплект программ обработки сигнализации по протоколам RANAP и BSSAP. Задача, которая решалась с помощью этих инструментов, была довольно проста. Отдел контроля качества сети в очередной раз выкатил претензии по некоторым показателям. Проблема была в том, что в филиале отсутствовало оборудование мониторинга сигнализации — установка его была только в планах, а проблему нужно было решать здесь и сейчас. Снятие информации облегчалось тем, что требуемые протоколы шли поверх Sigtrana, который легко снимался зеркалированием нужных портов маршрутизатора и наличием Wireshark'а. В итоге за 20-30 минут — больше не позволял Wireshark под Windows, банально зависая — я получал кучу файлов в бинарном масштабе. Эту кучу я обрабатывал tshark'ом, имея на выходе уже гигабайты текстовых файлов, которые я уже разбирал своим анализатором по всем необходимым уровням: M3UA, SCCP, RANAP/BSSAP. Это позволило автоматизировать получение статистических данных по качеству и технично отписаться от претензий.
И наконец в качестве хобби были написаны программы анализа электрических цепей LazPhCoord и LazDiscret, при разработке которых автор попытался применить все свои знания по теоретической электротехники и навыки программирования. Программа LazPhCoord была использована при написании диплома дочерью автора.