Last updated: Fri Jul 4 23:28:44 1997

Вот наиболее интересные из моих 'проектов'. Если вы хотите узнать поподробнее об одном из них - нажмите на его название.

Название (условное) Тип Язык (средство) разработки Текущий статус Примечание
X-Cross FIDO-узел и BBS OS/2 3.0, Brake/2 7xx, Squish/2 1.11, Itrack/2 1.3, T-Fix/2 2.9, Max/2 3.0, REXX Работает, вроде :)
My Toys Стратегическая игра C++ Разработка прекращена.
Хорошего названия пока не придумал Книга Пока не решил ;) Собственно, дальше общих идей я и не пошел...
Kross Base Небольшая база данных для кросса учрежденческой телефонной станции VX-REXX, SQL (DB2/2) Разработка завершена.
Ломбард Система учета для ломбарда HTML (сервер - ICS/2), SQL (DB2/2), DB2WWW, REXX Разработка завершена. В реальной работе не используется из-за отсутствия финансовых и технических средств
DL-MUD Система для построения муд-серверов, с возможностью динамического изменения кода "на ходу" C Разработка отложена на неопределенный срок.
Провайдерство Узел Internet, используемый для предоставления платного доступа к этой сети HTTP, FTP, SMTP, NNTP-сервера и многое другое Проект остановлен из-за отсутствия финансирования.
CHCP Proxy Перекодировщик html-ек 'на лету' в/из KOI8-R, CP1251, CP866. C. Написан для OS/2 с IBM TCP/IP. Портирован под Win32 и Unix. Разработка завершена, но время от времени вносятся разные улучшения/исправления.


Нажмите сюда, чтобы вернуться на начальную страничку.
X-Cross (FIDO-узел и BBS)

 

Около четырех лет тому назад я купил свой первый модем (на 2400). Так как я не знал ни одного модемного номера в своем городе, первое время я пытался звонить по межгороду, но у меня ничего из этого не выходило (да и дорого получалось). Один из моих приятелей познакомил меня с Андреем Луковенко, который тогда был опытным BBS-юзером и он мне дал несколько номеров телефонов местных BBS. Большинство из них работало только по ночам, поэтому на них я почти не звонил, но одна - Big Flies Meeting (сисоп Дамир Бикмухаметов) работала круглые сутки (очень жаль, что сейчас эта BBS уже не работает). Первое время я просто качал разные файлы, но мне хотелось чего-то большего, и я много раз пытался разобраться с меню 'Письма'. К счастью, я довольно быстро узнал про назначение программы Blue Wave и открыл для себя очень интересный мир электронной почты сети FIDONet (звучит банально, но это действительно было так !).

Скоро я получил поинтовый адрес на узле 2:5011/22 (сисопом его тогда был Игорь Серов) и стал 'полноценным фидошником'. Этот узел какое-то время работал круглосуточно, но потом перешел на ночной режим работы и мне приходилось оставлять свой компьютер включенным на ночь с запущенной программой майлера (использовался T-Mail). Так как я всегда увлекался стратегическими компьютерными играми, особено теми которые позволяли бы играть сразу нескольким игрокам, я подумал - почему бы не поставить одну из таких игр на свой компьютер ? И я поставил себе на компьютер игру Galactic Warzone (это была единственная более-менее приличная игра такого плана, которую я сумел тогда найти). Так как играть можно было круглосуточно (благодаря хоть какой-то многозадачности Windows 3.1 и DesqView я мог использовать компьютер как для дела (см. Kross Base) так и для того, чтобы он мог постоянно отвечать на звонки и запускать эту игру), игроков стало достаточно много.

Потом я получил уже нодовый адрес в FIDONet и стал сисопом своего собственного узла. На X-Cross появилась еще одна online-игра - Dragon Warz, затем я поставил себе настоящую BBS-программу Remote Access 2.0 и X-Cross стал BBS (к сожалению, вынужден сказать, что число игроков в online-игры резко сократилось из-за моих не совсем корректных действий по поддержке игр и возросшей нагрузки от юзеров BBS). Через какое-то время я перевез компьютер домой и мой домашний телефон перестал быть моей собственностью ;).

Так как многозадачные возможности Windows и DesqView быстро перестали меня удовлетворять - я поставил себе OS/2 3.0 Warp (сначала одну из бета-версий, потом - русскую версию OS/2, под которой сейчас и работает X-Cross (правда, она сильно пофиксена - последний fixpak, который я на нее ставил, имел номер 22). Разумеется, при 4 Mb RAM OS/2 работала не особо быстро, особенно из-за того что у меня все коммуникационные программы были под MS DOS, поэтому я начал переход на чисто полуосевые программы. С T-Mail особых проблем не возникло, а вот с Gecho и Remote Access было труднее... Но желания было много и скоро две последнии были заменены на парочку Squish 1.11 и Max 2.02. Спустя какое-то время, из своей командировки в Москву я привез еще 4 Mb памяти и обстановка сильно улучшилась. Но скоро у меня стало не хватать места на диске и компьютер пополнился еще одним винчестером Conner на 420 Mb.

Очень быстро я разочаровался в T-Mail и решил перейти на какой-нибудь другой майлер. К счастью, на стабильности работы X-Cross мои эксперименты не сильно отражались, так как у меня на работе стояла вторая станция, названная Buble of X-Cross, и на ней я проводил свои 'опыты' с майлерами BinkleyTerm 2.59a, Xenia Mailer 1.98 (помню, это была одно время такая мода на 'Ксюшу') и the Brake. Остановился я на последнем, несмотря я на его (тогда) повышенную глюкавость и незавершенность, но куски от старых майлеров у меня до сих пор валяются на диске, так как при построении своей системы не особо заботился о полной изоляции отдельных программ-модулей друг от друга. Конечно, это мне не особо мешает, иначе бы я давно принял меры :).

Сейчас X-Cross является достаточно стабильным узлом (самый сильный перебой в работе, происшедший в конце февраля 1997 года (целая неделя !) был связан с тем, что я в течении месяца с лишним просто не имел никакого доступа к узлу - переезд :( ...) и у него около 30 поинтов и даунлинков, получающих свою почту и массу эхо-конференций. Также на нем работает BBS на базе программы Max 3.0 (с поддержкой RIP-графики), за которой, правда, следит в основном, мой cosysop, тот самый Андрей Луковенко и еще проводится партии в off-line игру VGA Planets 3.0. Компьютер получил новый диск WD на 850 Mb (старый Quantum 170 Mb сейчас уже не используется), память увеличилась до 20 Mb, процессор сменился на 486DX-33, добавилось устройство для чтения компакт-дисков (которое уже успело сломаться, из-за чего BBS потеряла большую часть своей файловой базы :(), модем на (пока ? :)) единственной линии сменился на USR Sportser V.34. В общем - узел работает и, как я надеюсь - будет работать еще долго, несмотря ни на что.

В заключении, хотелось бы выразить массу благодарностей всем, кто помогал и помогает мне в этом непростом деле - Антону Кузнецову, Андрею Луковенко, Владиславу Злобину, Владимиру Карабаеву, Дамиру Бикмухаметову, Дмитрию Бурашникову, Джону Гладких, Денису Нуриманову, Джеку Федоруку, Евгению Зарипову, Игорю Серову, Радику Серазетдинову и многим-многим другим, кого я забыл сюда вписать из-за своей рассеяности и не очень хорошей памяти.


My Toys

 

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

Действие на ней происходит на одной из планет, потерпевшей глобальную катастрофу - на ней полностью погибло две цивилизации. Первая из них - естественного происхождения, а вторая - цивилизация искуственно созданных (первой цивилизацией) роботов. От последней цивилизации, погибшей в результате диверсионных действий экспедиции пришельцев, на планете остались огромные мощности по производству военных роботов и мощнейших видов оружия.

Один из разумных индивидов, желающий получить огромную власть, сумел получить доступ к системе управления производством, снабжением и добычей полезных ископаемых на этой планете. Этим он создал сильную угрозу для других, поэтому возникла необходимость остановить его и разрушить систему по производству оружия на этой планете, для предотвращения подобной угрозы в будущем. Если Вы хотите немного подробнее ознакомиться с этой 'историей', Вы можете скачать файл mytoys.zip 5.5Kb (формат WinWord 6.0).

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

С чисто игровой точки зрения, основная часть игры - раздача приказов роботам (каждый из них может действовать самостоятельно или в группе, подчиняясь небольшим программам на языке программирования, напоминающем сильно урезанный REXX) с целью организовать снабжение заводов и электростанций необходимыми ресурсами, а также, после накопления необходимого количества сил - уничтожения вражеских объектов. Так как управление таким огромным количеством объектов (роботов, заводов, рудников и электростанций могло достигать нескольких сотен) для одного человека, практически, невозможно - я планировал ввести в игру 'ассистента' - программу, которая бы самостоятельно выполняла рутинные операции - организацию групп для караванов с материалами, перехват вражеских конвоев и т.д.

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


Без названия

 

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

Это должна была быть целая трилогия. Три фантастических повести о тех, кто не является людьми. Три искуственных разума (по одной части на каждого) - один разум, появившийся искуственно, в результате ошибочного направления развития системы для поиска разумной жизни, другой разум, созданный для управления системой правопорядка на целой планете и, наконец, третий разум - созданный на Земле, в рамках исследований искуственного интеллекта.

Центром повествования во всех трех частях, является проект "Конкретная реализация 'Декларации прав разумных индивидуумов', первая версия". Это проект, родившийся давным-давно, на одной из далеких планет. Те, кто присоединяется к нему, теряют всякую привязку к своему телу - их разум считывается и строится соответствующая ему нейронная решетка в одном из 'хранилищ' на одной из космических баз этого Проекта. Исходный мозг разрушается и разум индивида работает внутри огромного компьютера - базы, размещенной на какой-нибудь пустынной планете. При необходимости, разум может перемещаться на другие базы, при помощи линий связи с нулевой задержкой, а с помощью субатомных технологий, может быть помещен внутрь миниатюрного компьютера и быть вживленным в любое доступное тело ('бесхозное' или при наличии согласия 'хозяина'), получая таким образом возможность продолжать свою обычную жизнь, используя все преимущества своего нового хранилища разума - огромную скорость работы и постоянный канал связи с базой и с другими разумами. Все индивидуумы, присоединившиеся к этому Проекту, обязаны соблюдать 'Декларацию прав разумных индивидуумов' - три простых правила :

Эти три простых закона и являются стержнем всей трилогии.

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

Герой первой части - разум появившийся в результате совершенствования системы 'Наблюдатель', предназначенной для поиска разумных рас и строительства новых баз. Его появление не было запланированным - просто, однажды нейронная решетка этой системы стала слишком большой, чтобы только запоминать и распознавать признаки существования разумных рас. Эта решетка обрела возможность самостоятельно мыслить и превратилась в один из разумов. Необычный принцип мышления, навязанный первоначальными целями создания, при котором в ответ на внешние раздражители рождаются ассоциации, имеющие отношение к данному раздражителю, а в ответ на появление этих ассоциаций - появляются следующие и так может происходить бесконечно, пока специальный отдел этого искуственного мозга не прервет этот поток ассоциаций и не сделает вывода на их базе. Необычная судьба этого разума - первая планета с 'естественной' разумной цивилизацией, которую он посещает - гибнет из-за термоядерной войны между государствами. После этой войны он остается единственным из оставшихся в живых разумных существ на этой планете. Необычны и решения этого разума - после своего спасения, он отказывается от имитации базовых эмоций и инстинктов, созданных специально для него и становится разумом без эмоций, без чувств. Таким он и появляется на Земле - на своей 119-ой по счету планете, с целью собрать как можно больше информации о неизученной и нетронутой пока культуре - так он это объясняет другим.

Герой второй части - разум, бывший когда-то гигантским компьютером, предназначенным для управления системой полицейских роботов. Население его планеты решило, что лучше всего с 'грязной' работой по предотвращению и раскрытию преступлений справится такой как он - неподкупный и непреклонный. Но он быстро вышел из под контроля и начал ставить перед собой другие задачи, начал навязывать свои законы, и поэтому те, кто его создал, лишили его такой власти. Он превратился в управляющего кучей движущихся рекламных киосков, бывших когда-то грозными полицейскими роботами. Когда герой первой части встретился с ним и предложил ему присоединиться к Проекту, он принял решение очень быстро и уже не жалел об этом. Так он превратился в странника по неизведанным планетам, моральные принципы которого сделали его космическим борцом с несправедливостью... На Землю он пришел вслед за тем, кто помог ему стать таким, с целью следить за ним и предотвратить попытку получить слишком большую власть над людьми, так как он, имевший когда-то огромную власть - уверен, что только это может быть настоящей целью разума без чувств и эмоций.

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

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


Kross Base

 

Когда-то я работал связистом в одной из государственных организаций. Работа была из серии 'сиди и жди', то есть - свободного времени было достаточно много, но реагировать надо было быстро. Так как система связи в этой организации была не слишком простой - более 100 городских номеров и около 300 внутренних, кабельное хозяйство было совсем не маленьким. В комнате, где я сидел, стоял большой шкаф - кросс (позже, когда организация раскошелилась на дорогую, но очень современную телефонную станцию "HICOM-300", этот шкаф сменили несколько висящих на стенах коробок). В нем сходились практически все кабели этого здания - городские линии, номера внутренней АТС и абонентские линии из комнат. Естественно, все соединения в этом кроссе нужно было держать под хорошим контролем. Все 'кроссировки' (соединения между абонентскими и городскими или внутренними линиями внутри кросса) записывались в большую амбарную книгу, а время от времени, делалась огромная таблица по каждой паре проводов в кроссе на большом куске ватмана. Разумеется, я с самого начала был приверженцем идеи автоматизировать это хозяйство, и как только появился компьютер - я приступил к делу.

Обычно такие вещи делаются на каких-нибудь dBase, FoxPro и подобных 'СУБД', но я всегда был поклонником нестандартных решений и поэтому сделал первую версию этой базы данных на WordBasic MS WinWord 2.0 ! Конечно, пришлось преодалеть массу трудностей в борьбе с этим бейсиком-переростком, но рабочий вариант программы был готов. После того, как я ввел в эту базу все данные из кроссового 'журнала', моя работа сильно облегчилась - программа быстро выдавала нужные мне данные о занятости пар, кроссовые данные требуемых номеров и сама следила за тем, чтобы на одну пару по ошибке не повесили бы два или больше номеров. Потом я поставил себе WinWord 6.0 и перегнал свою программу под его диалект WordBasic-а.

Затем был "HICOM-300", новая станция, новое оборудование, новые принципы работы и новый кросс... К тому времени я уже стал приверженцем OS/2 и решил сделать программу на родной для этой системы среде - на REXX. Тут пригодилось такое замечательное свойство REXX/2, как возможность подключать внешние библиотеки, и я перешел на формат базы .DBF, при поддержке библиотеки RexxBase. В основном, работа над новой программой заключалась в борьбе с глюками RexxBase, которая была недоведенной до ума shareware-примочкой. Конечно, такие трудности меня редко останавливали и я все-таки довел программу до рабочего состояния, хотя у меня и оставалось какое-то слабое чувство 'неудовлетворенности'.

А однажды я поставил себе DB2/2 1.2. Все что я знал тогда о SQL - это то, что в нем есть волшебная команда SELECT :). С помощью справочника команд DB2, я научился азам SQL, а потом мне просто повезло - я получил книгу Мартина Грубера 'Понимание SQL'. С тех пор я уже не обращался к программам, типа FoxPro или dBase - они мне стали ненужны - SQL давал мне все что нужно для работы с базами данных. Разумеется, я решил испробовать свои познания в SQL в реальной более-менее сложной работе и начал делать новый вариант кроссовой базы данных.

Для построения пользовательского интерфейса и алгоритма программы я воспользовался Watcom VX-REXX, с помощью которого можно было легко сделать красивую программу, сочетающую привлекательный интерфейс пользователя и громадную гибкость REXX. Благодаря простому интерфейсу DB2/2, позволяющему легко делать обращения к SQL-базе из REXX-программ, рабочий вариант программы появился достаточно быстро. Спустя довольно малое время, компьютерная база данных по кроссу почти полностью вытеснила из употребления кроссовый журнал и бумажные таблицы, сделав их только средством резервного хранения информации на случай непредвиденных ситуаций.


Система автоматизации ломбарда

 

Первым делом, когда я перешел на работу в одну из коммерческих фирм - было задание автоматизировать ломбардные операции. Над этой пролемой я работал вместе с Олегом Бондарем, и мы достаточно быстро выбрали средство разработки. Так как перед нами рисовали радужные перспективы учета информации по множеству удаленных торговых точек, мы сделали свой выбор в пользу решения в стиле Intranet - WWW-сервер, который при помощи специальной программы-посредника делает обращения к SQL-серверу, строит красивые отчеты в html и отдает их клиенту. В качестве платформы мы выбрали OS/2, как наиболее изученную, дешевую и достаточно надежную, WWW-сервером служил IBM Internet Connection Server, SQL-сервером - DB2/2, а в качестве посредника - DB2WWW. Для операций, требовавших повышенных алгоритмических 'извратов' служил простой и надежный REXX.

Работа над программой шла достаточно быстро и в течении двух недель был готов первый более-менее рабочий образец. Выбранный способ построения системы сильно упрощал обслуживание и поддержку - все данные и программы хранились на надежном сервере, а от клиентской машины требовалось только одно - правильно показывать html-страницы. Для окончательного введения системы в действие требовалось очень немного - закупить необходимую технику (требовались компьютер-сервер, на котором, по замыслам должны были храниться практически все деловые данные фирмы и совсем небольшую клиентскую машину для ломбарда). Тут-то и возникло препятствие, из-за которого ломбард в этой фирме так и работает 'на бумаге' - необходимые финансовые средства не выделили.


DL-MUD

 

Игры, в которых можно было бы играть сразу нескольким людям - этакие 'виртульные миры', нравились мне всегда. Как только я получил доступ к сети Internet, я сразу попробовал себя в MUD-ах и быстро стал этаким 'наркоманом' этого вида игр.

Самым большим недостатком современных муд-серверов является невозможность динамического наращивания возможностей и исправления 'багов' в программном коде. При каждом таком исправлении приходится перезагружать муд-сервер, что приводит к определенному падению популярности данного муд-сервера среди игроков, так как начинает казаться, что этот муд-сервер - слишком нестабилен. Существуют технологии построения программ, при которых можно динамически заменять отдельные части программного кода - например, ОО-технология SOM. Мой DL-MUD, если я его когда-нибудь сделаю, станет чем-то подобным - у него будет иметься определенный набор вызовов, для динамической загрузки/выгрузки определенных частей кода и перестроения таблиц данных. На 'нижнем' уровне это будет выглядеть, как загрузка/выгрузка процессов с отдельными процедурами и функциями муд-сервера (примерно как производятся подобные операции с программами .DLL в системах типа OS/2 или Windows*). Такая 'оболочка' для кода муд-сервера сильно облегчит работу над улучшением и исправлением виртуального мира муда, построенного на ее основе.


Провайдерство

 

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

Достаточно хорошо познакомившись с технологией TCP/IP, применяемой в сети Internet, с ее организационными принципами, я составил список необходимого оборудования и расходов. В целом, небольшой узел, обслуживающий четыре-пять телефонных линий доступа обошелся бы в сумму от, примерно, $10000 (цена оборудования составляет в этой сумме около 80%). В качестве системного администратора такого узла я выбрал себя :), так как знания и опыт, полученные мной, кажутся мне достаточно большими для такого нелегкого дела. Разумеется, нужны были бы еще один-два сотрудника - для организации рекламной деятельности, коммерческой стороны этого дела, помощи в работе с клиентами и поддержания деятельности узла в случае непредвиденных ситуаций.

Проект вырисовывался на редкость реалистичным, но как и следовало ожидать - дело уперлось в отсутствие финансовых средств. Так как доход от этого занятия был бы не очень большим (при оптимистичных прогнозах он составлял бы до $2000-3000 ежемесячно, а в первые несколько месяцев мог бы быть и вообще отрицательным), то никто не горел желанием вкладывать в него средства. Поэтому пока этот проект лежит на полке, а нишу, которую мог бы занять этот узел, понемногу занимают уже существующие провайдеры сети Internet в Уфе.


CHCP Proxy

 

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

Возврат на начальную страничку.
Если Вы хотите что-нибудь написать мне - нажмите сюда.