На главную

Этапы большого пути

16-04-2019

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

Потому вспомню былое. Качество картинок не ахти, скриншоты делал в 2001-м году, тогда разрешения были другие.

Калькулятор для Володи Поливанова

Калькулятор для Володи Поливанова

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

Программа называлась: vlc.com, что как раз и означает Vladimir Polivanov’s Calculator. Внутри чистый язык Ассемблера x86. Программу можно было запускать в резидентном режиме — современная молодёжь даже не знает, какая чёрная магия для этого требовалась.

Мне кажется, написал я её в 92-м или 93-м году.

ReadMe.com

ReadMe.com

Эту программу я написал для нашей Чайной компании по просьбе Сергея Рудницкого. Ему очень нравилась ReadMe.com фирмы Borland, которая шла вместе с Turbo Pascal.

ReadMe.com показывала текст и позволяла прокручивать его вверх и вниз. Текст был «зашит» внутри, так что программа была узкофункциональной. Сергей хотел, чтобы у Чайной компании была такая же программа, чтобы текст можно было вставлять самим, чтобы его можно было выделять цветом, и чтобы утилита могла показывать картинку.

Всё это я сделал. Программа представляла из себя компилятор и сборщик, написанные на C, а также несколько модулей на языке Ассемблера. Компилятор брал текстовый файл с разметкой и кодировал его в форму, удобную для быстрой отрисовки. Сборщик (linker) складывал вместе модули и кодированный текст, и создавал *.com файл, который красиво отображал содержимое. На скриншоте пример форматированного текста с расцветкой и тенями.

Помню, что в поисках вдохновения для языка разметки я читал про SGML, но решил, что он слишком сложен. Ретроспективно я знаю, что HTML в то время уже существовал, но первый браузер появился у нас года через два. Кажется, всё это происходило в 95-м году.

Абитуриенты и студенты

Абитуриенты и студенты

В самый разгар кризиса, когда на КАМАЗЕ задержка зарплаты была чуть не полгода, мне повезло устроиться в райское место — Экономико-строительный колледж. Там я плотно поработал с базами данных ещё в их досерверной инкарнации, а именно — с базами Paradox.

Delphi первой версии, BDE и InstallShild.

То, что я делал тогда под руководством Саши Нечаева, а потом и сам, сейчас бы назвали document workflow. Разработали учёт абитуриентов, учёт студентов и программу для проведения экзаменов.

Благодаря этому опыту я через несколько лет быстро освоил MySQL.

3D engine

3D engine

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

Я хотел понять, как всё работает. К счастью, в середине 90-х году вышла книга, где рассказывалось, как устроен Wolfstein.

В результате я разработал трёхмерный движок, сначала чуть более крутой, чем Wolfstein (на картинке видно, что стены пересекаются не только под прямым углом, как в оригинальной игре), а потом — такой же, как в Doom. Пришлось разбираться с матричной и векторной алгеброй, и осваивать ООП в C++.

Процесс затянулся на три года, с 93-го по 96-й. Когда я перебрался в Москву, моё увлечение помогло мне устроиться в Акеллу.

Карта города

В родном городе я участвовал ещё в одном 3D проекте. Зная, как работает 3D, я быстро разобрался с OpenGL. Имея опыт разработки и на C, и на Delphi, я смог подключить OpenGL к Delphi.

Меня позвали разрабатывать OpenGL-движок для трёхмерной карты нашего города. Несколько модельщиков собирали данные по городу, и рисовали его в 3D MAX.

На рисунке видно фрагмент микрорайона, в котором я тогда жил.

Shareware

Shareware

В конце 90-х Александр Каталов опубликовал в Компьютерре статью о том, как круто разрабатывать shareware-программы. Статья стала отправной точкой для многих программистов.

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

Shareware site

Для программы я сделал сайт, вы видите его на рисунке. Тогда веб-дизайнеров просто не было, поэтому мне пришлось осваивать Photoshop. Старт новой индустрии — время вынужденных универсалов. Это сейчас мы все специализированы, кто в дизайне, кто в бекенде, кто во фронтенде, а тогда, если ты хотел что-то сделать, приходилось изучать и делать самому.

Навыки Photoshop, кстати, до сих пор мной не утрачены, всё ещё могу отретушировать фото и сделать коллаж.

Веб

Мой первый сайт

Так выглядел мой первый сайт. Там было несколько статей, которые вы найдёте и здесь. 1998-й год.

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

Мой второй сайт

Коллаж в правом верхнем углу сделал из пяти или шести фотографий, найденных в интернете. На главной странице я разместил Леонардо да Винчи, показывая, что тоже шит не лыком. На сегодняшний вкус, коллаж получился вычурным, но мне тогда было 25 или 26 лет — тяга к фэнтези вполне объяснима.

Обладая небольшим опытом в разработке сайтов, я сделал первый профессиональный сайт для компании, в которой тогда работал.

Сайт компании Микон

Сайт существует до сих пор, но дизайн там, конечно, давно другой.

После этого Олег Сорока пригласил нас с Костей Миловским делать первый сайт КАМАЗА. А потом меня позвали работать официально, так что я — самый первый веб-мастер КАМАЗА.

Дизайн, который мы тогда разработали, и дизайном назвать нельзя, а вот второй мне показать не стыдно.

Сайт КАМАЗА