Решетюк Виталий Арнольдович
Дата рождения: 29/04/1958 г.
Образование: инженер-системотехник (Донецкий политехнический институт, 1978-84г, специальность АСУ)
E-mail: revitalyr@yandex.ru
Языки:
- C++ (IBM's Visual Age C++, gcc, Metrowerks CodeWarrior, Cbuilder, Visual C++)
- Java (Metrowerks CodeWarrior, Java Builder)
- Delphi, PASCAL (Роботрон, ДВК)
- IDL
- Visual Basic, FORTRAN IV - PL/1 (ЕС), мнемокоды Д3-28, ассемблер DEC (БК, ДВК)
Библиотеки: The Standard Template Library (STL), The ADAPTIVE Communication Environment (ACE(TM)), The Loki Library by Andrei Alexandrescu, C++ Boost
Инструментарий: gmake, cvs, doxygen, Source-Navigator
OS: WinNT/2000/XP, AIX, HP-UX, Solaris, Linux, Win9x, Mac OS v8, Win3.11, MS DOS
Техника: IBM-PC, Apple Macintosh, ИСКРА-1030, ДВК-2, ЕС-1020/1022, микро-ЭВМ Д3-28, С1-20, БК-0010, Роботрон-1715
2002 - 2005
Техника: IBM-PC
Языки: C++ (CBuilder, IBM's Visual Age C++, gcc), Java (Java Builder), Delphi, Perl
OS: Win2000/XP, AIX, HP-UX, Solaris, Linux
Место работы: MaxBill LTD
Задачи:
- участие в разработке подсистемы MaxRate (биллинговые расчеты, © MaxBill):
- разработка и реализация протокола взаимодействия MaxRate и Java консоли [Java, C++ & ACE]
- разработка и реализация C++ template для унифицированного создания динамически загружаемых модулей и wrappers для них [C++ & ACE]
- обеспечение выполнения динамических модулей MaxRate в multithread (очередь данных на обработку с повторно используемыми элементами выборка, из которой производится несколькими задачами) [C++ & ACE]
- разработка и реализация подсистемы multithreaded refreshable dictionaries (блокировки осуществляются автоматически итераторами в режиме «много читателей - один писатель») [C++ & STL & ACE]
- разработка и частичная реализация унифицированного метода сериализации properties объекта (template DataRecordDescriptor, template Serializator, ...) [C++ & STL]
- перепроектирование и реализация подсистемы Loading для использования динамически загружаемых модулей LoadingExtention [C++]
- создание wrappers для библиотеки MBKernel DB Direct Access (DBConnection, DBSession, DBField, DBRecordset, ...), создание «отладочных» реализаций DBSession (DBSessionODBC, DBSessionOTL, DBSessionStub) [C++, Oracle, MSSQL]
- участие в реализации подсистем MBKernel (© MaxBill):
- разработка и реализация платформо-независимого метода использования интерфейсов (не имеют отношения к Microsoft - IRootInterface, IMetaInterface, ImplementationRepository, ...) [C++ & Loki]
- разработка и реализация платформо-независимой подсистемы ProcessAutomation (демон/сервис обеспечивает регистрацию процессов, разрешает по внешним командам запускать/останавливать зарегистрированные процессы, получать/изменять информацию о состоянии процесса и его конфигурационных параметрах в формате XML для обеспечения администрирования с помощью WEB) [C++ & STL & ACE & Loki, Java]
- разработка и реализация кроссплатформенной подсистемы DeviceAgent, интеграция DeviceAgent и ProcessAutomation [C++ & STL & ACE & Loki]
- создание пакета unit tests (test_suite) для помощи QA [C++ & Boost]
- подсистема нечеткого логического вывода (в настоящее время используется для оценки возможных диагнозов по результатам измерений электропроводности участков кожи, независимо от MaxBill) - спроектированы и реализованы:
- язык описания правил [BISON]
- база знаний и механизм нечеткого вывода [C++]
- система интерфейсов для доступа к подсистеме вывода [IDL]
- небольшой инструментарий для тестирования и навигации по базе знаний [Delphi]
- конвертор документ MS Word в Compiled HTML (независимо от MaxBill) [Perl]:
- доступ к сервисам MS Word осуществляется с помощью COM
- на основании стилей заголовков документ разбивается на секции, и каждая секция сохраняется в отдельном .html файле
- анализируются и перестраиваются внутридокументные гиперссылки
- формируются файлы проекта, содержания и списка ключевых слов
- для сформированного проекта вызывается компилятор HHC
- разработка и реализации подсистемы управления съемом информации с датчиков в системе обеспечения взрывобезопасности в угольных шахтах (система КАГИ © МакНИИ, независимо от MaxBill) [Delphi]:
- thread safe класс TGate_COM с методами Read/Write, которые оперируют блоками 'array of byte' (Delphi автоматически освобождает память)
- система интерфейсов (IPipe, IEventSource, IEventSink, IPeriodcalJob, IControlCenter) как абстрактная модель конфигурирования системы и выполнения операций
- реализация интерфейса IControlCenter и обеспечивающих его интерфейсов (ControlCenterImpl, InfoNotifyThread, InfoWatchThread, JobsThread, …)
- несложное GUI приложение и демонстрационные реализации IEventSource, IEventSink, IPeriodcalJob для тестирования и как use case
- система интерфейсов для предметно-ориентированного (а не СУБД-ориентированного) доступа к данным (© ДонНИИ МЭП, независимо от MaxBill) [IDL, Delphi]:
- интерфейс IMetaInfo - фабрика экземпляров, а также наименование, GUID и т.п. обслуживаемого интерфейса
- интерфейс IDataStore - обеспечивает навигацию по ID экземпляров, получение/модификацию значений
- интерфейс IStoredObj - абстракция persistent object со свойствами MetaInfo, DataStore и методами LoadByID, MakeID. Метод GetDetails возвращает subset, представленный IDataStore
- прикладные понятия описываются как интерфейсы, порожденные из IStoredObj
- реализация IStoredObj обеспечивает тривиальную реализацию порожденных интерфейсов
1998 - 2002
Техника: IBM-PC, Apple Macintosh
Языки: C++ (Metrowerks CodeWarrior, CBuilder, Visual C++), Java (Metrowerks CodeWarrior, Java Builder), Delphi
OS: Win9x, WinNT/2000, Mac OS v8
Место работы: НИИ Медицинских проблем семьи, разработки по заказу
Задачи:
- разработка архитектуры Intranet системы - upload/download файлов и иерархическая каталогизация (виртуальные каталоги) [Delphi, C++, Java]:
- спроектирована дисциплина взаимодействия клиентского ПО с базой данных (пакеты Java interface'ов), выполнено проектирование структуры базы данных и реализован локальный stub доступа к данным с помощью JDBC (JDK 1.2.1)
- спроектирован специализированный протокол на базе TCP/IP и реализован Java-адаптер, которым был заменен локальный stub
- участие в проектировании и реализации серверного приложения
- сопровождение серверного приложения (Delphi, C++) и подсистемы сетевого взаимодействия клиента (Java)
- разработана система регистрации ЭКГ во время проведения сеанса гипербарической оксигинации [Delphi, C++]:
- спроектирован и изготовлен драйвер (vxd) для взаимодействия с аппаратурой измерения
- on-line оценка мощности спектра и визуализация LF, VLF, HF, LF/HF составляющих
- контроль нахождения ЧСС в заданных пределах
- ведение базы данных пациентов с сохранением первичного измеренного сигнала
- программное обеспечение для управления камерой зональной декомпрессии портировано в Win32 (Win9x, NT) и дополнено [Delphi, C++]:
- блок автоматического измерения артериального давления
- корректировка режима воздействия по результатам измерения АД и ЧСС
- аварийное прерывание процедуры по физиологическим показателям, допустимому давлению в камере, датчику перегрева двигателя
- развитая подсистема визуализации
- адаптация plug-in'ов, разработанных для системы 3D моделирования и анимации Electric Image, к среде Lightwave v5.6 [C++]:
- Colorize - создание цветовых эффектов с привязкой к геометрии и номеру фрейма
- CellMap - наложение текстуры по индивидуальным фасетам
- Troopper - механизм клонирования объектов (не завершен)
- библиотека для вывода текста по заданной трассе (Win32) [C++]:
- вывод (посимвольный или строки) по
- прямой
- окружности
- сплайновой кривой
- управление ориентацией символов (вертикально/ортогонально к трассе)
- управление точкой начала текста и направлением вывода
- возможность использования на уровне
- классов C++
- функционального API (статическая/динамическая линковка)
- интерфейсов OCX
- quick start примеры для MS VC, CBuilder, Delphi, Basic
- help с иллюстрациями и детальным описанием использования
- участие в разработке обучающего курса (Macromedia Authorware 4) в качестве консультанта по «потрохам» (синхронизация аудио/видео, исправление ошибок в template code, написание фрагментов кода)
~1996 - 1998
Техника: IBM-PC
Языки: Delphi, Interbase, Visual Basic, C++ (CBuilder)
OS: MS DOS, Win3.11, WinNT
Место работі: программист ООО ДЦ «Ваш капитал»
Задачи:
- участие в задачах автоматизации офисной деятельности [Delphi, VB, Interbase]:
- базы в формате Interbase (доступом к данным посредством stored procedure)
- клиентские приложения Delphi 2/3,
- экспорт данных в продукты Microsoft Office с помощью OLE интерфейсов
- реализация концепции «persistent object» - сохранение и восстановление состояний экземпляров прикладных объектов на уровне абстрактного объекта, взаимодействующего с хранилищем данных
- реализация "динамического полиморфизма" - на уровне API введена функция Cast, расширяющая семантику оператора AS. Данный способ был разработан для нейтрализации ограничений на множественное наследование в Delphi
- разработано программное обеспечение для управления камерой зональной декомпрессии [C++]:
- ПД регулятор разрежения в камере по заданному закону
- формирование рекомендаций по индивидуализации воздействия и корректировки следующего воздействия по результатам проведения сеанса
- ведение базы данных пациентов)
- одновременно система обслуживает два лечебных места (MS DOS, DPMI32)
- разработан блок подбора точек акупунктурного воздействия по энергетическому профилю, оцениваемому по наблюдаемой симптоматике [Delphi]
~1991 - ~1996
Техника: IBM-PC
Языки: C++
OS: MS Dos
Место работы: ведущий программист Республиканского центра диагностики и реабилитации репродуктивной функции человека
Задачи:
- анализ текстовых документов с диагнозами и полуавтоматическое построение синтаксического дерева диагноза. Обеспечение анализа (выборка, построение стат. моделей) историй болезней из компьютерной базы (система CAIS, разработка Intercomputer). Построение компьютерного варианта назначения лечебных воздействий по формализованному диагнозу
- компьютерная версия методики индивидуального назначения и корректировки режимов воздействия при реабилитационной терапии воспалительных заболеваний органов малого таза и брюшной полости локальным отрицательным давлением.
- система автоматизации сбора информации во время медицинского эксперимента. Разработан язык описания конфигурации аппаратуры, логики проведения этапов эксперимента, описание измеряемой информации в соответствии с этапами эксперимента. С помощью LEX/YACC реализован синтаксический анализатор, а вся система построена как интерпретатор сценария эксперимента
- система документирования операционного процесса при эндоскопии. Представляющие интерес для хирурга фрагменты видеоинформации (кадры) сохраняются в базе данных. Данные о пациентах (включая сохраненные видео-кадры) могут быть перенесены в архив, который ведется с помощью системы ARVID на видеокассетах.
- развитие системы QST для демонстрации графических изображений и усложнения описания логики проведения опроса и оценки его результатов.
- участие в разработке системы «Оценка инвестиционной привлекательности приватизируемых предприятий»: стат. анализ балансов (форма 2), построение модели и реализация на Clipper 5
~1987 - ~1993
Техника: ДВК-2, ИСКРА-1030, IBM-PC
Языки: активное освоение и использование «C»
Место работы: ведущий программист Республиканского центра диагностики и реабилитации репродуктивной функции человека
Задачи: (большинство разработок выполнялось в соавторстве с коллегой)
- перевод и адаптация оконной библиотеки JPI MODULA на Turbo C
- система регистрации R-R интервалов и проведения темпинг-теста: используя 4-е входных линии LPT (paper out и т.д.) и, разогнав таймер до разрешения 1 мс, была обеспечена возможность измерения временных интервалов на PC XT без дополнительной аппаратуры
- система (QST) для автоматизации психологического тестирования основанного на бланковой методике (вопросы с фиксированными ответами)
- система AISS как электронный помощник работника юридической консультации.
- система управления камерой зональной декомпрессии (воздействие локальным отрицательным давлением на область малого таза в лечебных целях). Закон изменения давления задается в виде трапеции, текущее давление в камере измеряется датчиком и с помощью АЦП вводится в систему, определяется невязка и при выходе за границы коридора чувствительности выдается соответствующее управляющее воздействие на атмосферный и/или вакуумный клапаны. Работа с аппаратурой (ввод с АЦП и управление клапанами) выполняется в фоновом режиме, управляемым прерываниями таймера и АЦП. Оперативный режим занимается визуализацией (график заданного/текущего) и контролем ввода с клавиатуры.
~1980 - ~1989
Техника: ЕС-1020/1022, микро-ЭВМ Д3-28, С1-20, БК-0010, Роботрон-1715, ДВК-2
Языки: FORTRAN IV - PL/1 (ЕС), BASIC (несколько диалектов: Д3, С1, БК, ДВК), PASCAL (Роботрон, ДВК), мнемокоды Д3-28, ассемблер DEC (БК, ДВК)
Места работы: студент ДПИ, программист в Донецком НИИ Черных металлов, ст. инженер-программист НИИ Гигиены труда и профзаболеваний
Задачи:
- многомерный статистический анализ экспериментальных данных (корреляционный, факторный, регрессионный, дискриминантный, анализ временных рядов)
- для ЕС - готовые пакеты /FORTRAN/PL/
- для Д3, С1, ДВК - собственные разработки /BASIC/FORTRAN/мнемокод Д3/
- обработка данных результатов анкетирования: Роботрон /PASCAL/
- фрагменты обучающих/контролирующих программ: БК /BASIC/
- элементы сетевой поддержки: ДВК (сервер) - БК (раб. станции) /ассемблер/
- сопряжение с аппаратурой:
- Д3-28 <-> «устройство подготовки данных на перфоленте» для вывода печатной информации на CONSUL
- Д3-28 <-> «ритмокардиосигнализатор РКС-01» для автоматизации ввода ритмограмм