FlyNet akи FidoNet II

1 view
Skip to first unread message

Gena Makhomed

unread,
Sep 28, 1998, 3:00:00 AM9/28/98
to
Здpавствуй, All!

вот. приветствуется любая критика и любые предложения/дополнения/уточнения.

Удачи! // Gena

=================================================================
* Area : SU.FIDOTECH
* From : Gena Makhomed 2:4631/20 (Mon 28 Sep 98 15:38)
* To : Alexander Kramarenko
* Subj : FlyNet akи FidoNet II
=================================================================
Здpавствуй, Alexander!

Sat 12 Sep 98 at 21:08 Alexander Kramarenko 2:5019/10.99 wrote to All:

AK> я уже говоpил, что пишу новый pедактоp + тоссеp.
отлично. freeware ?

AK> Фоpмат Packetv4 я уже и здесь и в SU.FIDOTECH публиковал,
AK> но изменение всего фидо - дело слишком pеволюционное
AK> и из этого вpядли что-то выйдет.
имхо выйдет...

AK> В тоссеpе NextGen toss можно тоссить пакеты веpсий 2,2+ и 4
AK> в базу нового поколения (не побоюсь этого слова - никто pанее
AK> почему-то нестандаpтных pешений по фидошным базам не пpедлагал)
AK> NextGen base. Ее пpедваpительные набpоски пpедставлены ниже.
AK> Может быть кто-нить что-нить пpедложит, так как не очень хочется
AK> ошибаться в самом начале.

угу. MsgAPI от сквиша ты видел ? (кстати, формат сквишовой базы описан
где-либо ? пока что попадались одни исходнгики егойной MsgAPI)

это я к тому, что не нужно всем знать формат базы и жестко на него
завязываться, а вполне достаточно будет только стандартизировать API,
а все остальное - кто как хочет так и реализовывает. или msg, или sqd или hmb.
лишь бы API было стандартным. (аналог - файловые операции в OS)

AK> 1. Данный документ включает в себя всю необходимую информацию для
AK> написания приложения, использующего базу сообщений NextGen

сложно. лучше просто DLL + .h с подробным описанием функций. и все.

AK> FTN_Addr - 4D адрес
AK> struct {
AK> word Zone;
AK> word Net;
AK> word Node;
AK> word Point;
AK> };

лучше адрес в виде строки символов. потому что например, в FlyNet (FidoNet II)
планируются символьные имена, а не цифроваые.

AK> DT - Время/Дата без учета часового пояса.
AK> struct {
AK> byte year; // year = [год]-1900
AK> byte month;
AK> byte day;
AK> byte hour;
AK> byte min;
AK> byte sec;
AK> };

unixtime лучше будет. причем 8-байтовое unixtime и начиная с 1 года н.э.,
и с включением тысячных долей секунды. все время пишется только в UTC.

это потому что кроме юлианского календаря есть и много других.
и переводить из вот такого формата в другой тип календаря будет накладно.

я уже не говорю о том, что твой формат времени только на 255 лет вперед,
а дальше у тебя будет Y2K проблем.

AK> BHdr - заголовок блока данных
AK> struct {
AK> byte type; /* тип */
AK> dword size; /* размер */
AK> };

имхо очень быстро упрешься в границу из 255 типов, и как тогда будешь ?

AK> 3. Структура базы NextGen
AK> Для хранения каждой эхоконференции необхдимо 2 файла :
AK> [имя эхоконференции].index
AK> [имя эхоконференции].data
AK> В первом файле храниться информация для быстрого поиска сообщений в
AK> базе, во втором - сами сообщения.

AK> 3.1 Структура индексного файла
AK> индексный файл соостоит из блока заголовка и блока данных, количество
AK> блоков данных совпадает с количеством сообщений хранящихся в базе.

AK> Формат .index-файла таков :
AK> struct {
AK> dword Signature; // 'NGfI' сигнатура индесного файла
AK> TInd Index[MsgCount]; // Индекс на все письма в области
AK> }

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

AK> Примечание : MsgCount находится по следующей формуле :
AK> MsgCount = (FileSize("AREATAG.INDEX")-SizeOf(DWord))/SizeOf(TInd);

а что произойдет если этот файлик навернется ? в сквише например -
индекс всегда отстраивается при наличии одного только .sqd файла

AK> 3.2 Структура файла-данных
AK> Файл данных имеет следующий формат :

AK> TMSGData
AK> struct {
AK> dword Signature; // 'NGfD' сигнатура фалйа данных
AK> word md_blocknum; // количество блоков
AK> BHdr BHeaders[md_blocknum] // заголовки блоков
AK> BData blks[md_blocknum]; // сами блоки
AK> TRecord Messages[MsgCount]; // сообщения
AK> };

опять же, добавление мессаги в базу будет довольно таки дорогостоящим,
если более чем msgcount их понадобится добавить...

AK> где
AK> TRecord
AK> struct {
AK> word signature; // 'NM' сигнатура письма
AK> FTN_Addr from; // от кого
AK> DateTime date; // время создания
AK> dword attr; // аттрибуты письма
AK> word ft_blocknum; // количество первичных блоков (блоки
AK> тоссера)
AK> word sd_blocknum; // количество вторичных блоков
AK> (пользоват. блоки)
AK> BHdr BHeaders[ft_blocknum+sd_blocknum] // заголовки блоков
AK> BData blks[ft_blocknum+sd_blocknum]; // сами блоки
AK> };


зачем сигнатуры 'NM' хранить в массиве Messages,
ведь структура TRecord имеет фиксированный размер,
и находится по фиксированному адресу от начала файла ?

Sat 12 Sep 98 at 21:08 Alexander Kramarenko 2:5019/10.99 wrote to All:
Area: SU.FIDOTECH Subj: NextGen base format [2/2]

AK> UH_TEXT |05h|STRING | текст письма (может отсутствовать, но если
AK> | | | встречается более одного блока UH_TEXT, то
AK> | | | сообщение состоит из нескольких страниц и
AK> | | | должно показываться по частям.)

плохо потом будет базу реконструировать при крахах...
вот в сквише имхо лучше всего сделано - вся мессага лежит в баже как одно
целое, и поэтому сквишовая база максимально защищена от любых крахов,
например, прописывание случайных байт в случа`ные места файла - все что потом
можно восстаносить - будет восстановлено. (или более реалистичный пример -
падения сектора/кластера, или нескольких из-за физического сбоя винта)
после такой аварии сквишь ремонтируем (в принципе), а вот JAM - уже нет
(если полетит .jhr) аналогично и hmb - нередко бывает что заголовок от одной
мессаги, а тело - от другой.

AK>
AK> ------------|---|---------|-------------------------------------------+-
AK> UH_SEEALSO |06h|STRING | Строка информации о квотах в тексте письма.
AK> | | | Последовательность этих тэгов менять
AK> | | | нельзя !
AK>
AK> =========================================================================


AK> 3.2.2.1 Тэг UH_SEEALSO
AK> Тэг UH_SEEALSO содержит информацию о авторах цитат. Формат тэга таков:
AK> UH_SEEALSO[MSGID,FTNADDR,USERNAME]. омера авторов писем, используемые
AK> в <Q>, начинаются с 1. Если какое-либо из полей отсутствует, то оно
AK> просто пропускается (запятые сохраняются) : UH_SEEALSO=",,AK"
это да, но не выростет ли безбожно размер мессаги в результате ?
имхо лучше так сделать:

у каждого писателя заводится свой отдельный ICQ (что-то вроде него)
и уже по нему ориентируются в квотах. а база соответствия этих кодов
и реальных имен/адресов - это отдельно распостраняется, как и ноделист,
например. (я не про FidoNet, а про FlyNet технологию говорю)
в результате обьем перекачиваемых данных будет меньше.
4-х байт имхо вполне будет достаточно (4 млрд фидошников)
за метод трансляции этих 40х байт вполне можно взять тот,
что сейчас применяется в IP. впрочем, можно и не 4 байта,
а 6 или 8, но это имхо будет уже слегка перебор...

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

т.е. имеется ария, а в ней вместо мессаг соединенных в цепочки
содержится некая графовая структура с гиперлинками между собой
и на внешние ресурсы FidoNet/InterNet.

так например, может быть доска обьявлений о разработке фидошного софта
и новых фидошных стандартов. и не так как сейчас, что ~половина базы
забита спамом с сабжами "TPkt rev.0.9.x" а вот там в уголке лежит
страничка проекта TPkt2000 и обновляется себе время от времени...

аналогично и самая новая информация по всем версиям стандарта и софта.
причем, это можно делать вот так:

у каждой арии есть своя месность в киберпространстве.
например на страничке эхи SU.OS2 размещено то, что сейчас летает по su.os2.faq,
на "страничке" guitar.songs - размещаются тексты всех песен, какие только есть,
а в самой арии - уже проходит только обсуждение/общение.

аналогично и ru.linux и т.п. - траффик тогда _резко_ упадет,
а также практически к нулю будет сведена потребность в факсерверах.

все содержимое странички конференции и обновления (diff`ы)
рассылаются по каналу конференции в виде технических сообщений,
скрытых от редактора.

причем, странички могут быть не только в текстовом виде,
но и оформлены с помощью векторной графики.

и например, Pvt.Exch.* будет большой такой доской обьявлений...

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

но это все будет не в теперешнем FidoNet, а в FidoNet II akи FlyNet.

и естественно что, кроме вот такой вот распределенной сетевой модели,
web-сайт конференции 1:1 отображается на фактический web-сайт,
размещенный в IP-сети. и доступный все тем же FlyNet web броузером. (не HTML)

софт - изначально freeware в сорцах/GPL и доступный
подо все мыслимые платформы.

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

доступ к внутренностям этой базы тоже _только_ через стандартное API.

AK> 3.2.4 О SEEN+BY
AK> Строка SEEN+BY представляет из себя компактную запись информации о
AK> прохождении сообщения. Как и в формате Packet 2+ информация хранится в
AK> виде "Net/Node Node Net/Node" и т.д... о с той разницей, что в NextGen
AK> эта инфорамция хранится в бинарном виде. Размер строки TH_SEENBY
AK> совпадает с размером блока, а сама строка представляет из себя
AK> последовательность структур CompactAddr, описанных ниже :

AK> CompactAddr = struct // структура для хранения 3D-адреса
AK> {
AK> Byte AddrFormat; // информация об адресе.
AK> Byte AddrData[max 6]; // адрес, максимальная длина 6 байт.
AK> }

AK> Формат байта информации о адресе таков :

AK> -----+-------------------------+----------------
AK> бит | value = 0 | value = 1
AK> =====+=========================+================
AK> 0-2 | Метод хранения адреса
AK> -----+-------------------------+----------------
AK> 0 | - | Zone:Net/Node
AK> 1 | - | Net/Node
AK> 2 | - | Node
AK> -----+-------------------------+----------------
AK> 3-5 | Размер полей адреса
AK> -----+-------------------------+----------------
AK> 3 | Zone = BYTE | Zone = WORD
AK> 4 | Net = BYTE | Net = WORD
AK> 5 | Node = BYTE | Node = WORD
AK> -----+-------------------------+----------------
AK> 6-7 | еиспользуемые поля
AK> -----+------------------------------------------

AK> Таким образом для сохранения адреса 5019/13 потребуется 5 байт,
AK> а на сохранение адреса /1243 - 3. Чтобы сохранить последовательность
AK> "5020/101 113 601 5034/156 245" потребуется всего 16 байт :
AK> [5 bytes][2b][3b][ 4b ][2b] = 16

это все класно, но SeenBy лично я считаю анахронизмом,
и в FlyNet хочу обойтись без них,

вместо этого сохраняя полное дерево конференции вместе с базой
(так что даже и путей хранить не надо будет)

хммм... а что если MSGID сделать 8-байтовым целым ?
или 12-16 байтовым ? так что в нем кодируется и цифровой ID писателя,
и счетчик будет... а впрочем... все даже лучше,
никаких msgid не нужно, а только userid (8 байт) + unixtime (8 байт) мессаги.
вот. следовательно и клажди MSGID/REPLY - это тоже анахронизъм и MD! :)

причем, свой уникальный ID будет иметь в таком случае _каждая_ мессага.
даже та, которую сгенерил робот и которая является технической инфой
для обновления diff`а например, или апдейта сегмента пути.

AK> 3.2.6 Текст письма (UH_TEXT)
AK> В этом блоке находится только текст письма и tagи для его
AK> форматирования/оформления. Если тоссер работает с пакетами версии
AK> отличной от v4, то преобразованием текста сообщения должен заниматься
AK> сам тоссер. В тексте письма разрешено использование всех доступных
AK> символов из ASCII-codeTable. Символы 0Ah, 0Dh, 00h должны
AK> игнорироваться. Символы 1Ah, 1Bh, 14h зарезервированы
AK> для служебных целей.

имхо лучше сделать так, чтобы в тексте мессаги были разрешены любые символы
и в любых комбинациях, это позволит директом отсылать аттачи
без base64 кодирования. а кроме того, тогда можно будет легко и просто
реализовать MFME (это что-то вроде MIME, но только намного лучше будет)

AK> Строки текста имеют произвольную длинну
AK> и заканчиваются символом 14h (конец абзаца).

в каком виде написан текст - это имхо только его личное дело. его и редактора.

AK> Обозначение цитируемого участка текста
AK> производится с помощью текстового тага <Q>,
AK> описание которого можно прочитать ниже.

имхо лучше не пересылать еще раз то же самое,
а просто поставить ссылку на оригинальную мессагу,
мол цитируется мессага от userid такой-то, ее unixtime такой-то. (по 8 байт)
а дальше - просто ссылки - quote_start / quote_end. (четырехбайтовые)
в результате, каждая цитата (любого размера) будет занимать ровно 8 байт,
плюс еще 16-байтовый блок, если происходит изменение контекста цитирования.
(например, в одной мессаге цитировать сразу на несколько мессаг)

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

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

AK> 3.2.6.1 Оформление письма
AK> Текст письма может содержать оформительные элементы,
AK> это может быть выделение шрифтов цветом,
AK> вставление небольших изображений и т.п.
векторных очень желательно.

AK> Для оформления текста используется набор tagов, описанный ниже.
AK> 3.2.6.1.1 Текстовые тэги.
AK> Формат тэга таков : "[mode][TagName]", где : [mode] может принимать
AK> следующие значения : "\1Ah" - открывающий, и "\1Bh" - закрывающий
AK> тэг, а [TagName] - это байт идентификатора тэга.
AK> 3.2.6.1.1.1 Доступные тэги.
AK> Hабор тэгов, используемый для хранения оформительных элементов в
AK> NextGen- базе представлен ниже :
AK> ID | Описание
AK> ===========================================================
AK> B | жирный шрифт
AK> -+-|-------------------------------------------------------
AK> U | подчеркнутый шрифт
AK> -+-|-------------------------------------------------------
AK> I | наклонный шрифт
AK> -+-|-------------------------------------------------------
AK> C | цвет шрифта.
AK> | C[color:TColor]
AK> -+-|-------------------------------------------------------
AK> S | Размер шрифта
AK> | S[size:Byte]
AK> -+-|-------------------------------------------------------
AK> L | горизонтальная разделяющая линия
AK> -+-|-------------------------------------------------------
AK> A | выравнивание текста
AK> | A[align:TAllign]
AK> -+-|-------------------------------------------------------
AK> Q | указание автора строк :
AK> | Q[ID:Word]
AK> | ID - порядковый номер квоты в списке UH_SEEALSO
AK> -+-|-------------------------------------------------------
AK> F | блок с указанимем FTN-адреса
AK> | F[Do:TDo]
AK> -+-|-------------------------------------------------------
AK> E | блок с указанимем E-mail адреса
AK> | E[Do:TDo]
AK> -+-|-------------------------------------------------------
AK> G | перейти на страницу с номером Num
AK> | G[Num:Word]
AK> -+-|-------------------------------------------------------
AK> Z | перейти на абзац с номером Num
AK> | Z[Num:Word]
AK> -+-|-------------------------------------------------------
AK> P | запретить редактору показывать страницу. Этот таг
AK> | указывается один раз в начале страницы и не требует
AK> | завершения.
AK> ===========================================================
AK> Примечание : тэги не входящие в этот список должны игнорироваться.

AK> 3.2.6.1.1.2 Типы параметров тэгов.

AK> Тип | Описание
AK> =====================================================================
AK> TColor | Число от 0 до 15, указывающее цвет шрифта :
AK> | [00] - Черный [08] - Cветло-серый
AK> | [01] - Малиновый [09] - Красный
AK> | [02] - Зеленый [10] - Салатовый
AK> | [03] - Оливковый [11] - Желтый
AK> | [04] - Темно-синий [12] - Синий
AK> | [05] - Сиреневый [13] - Розовый
AK> | [06] - Бирюзовый [14] - голубой
AK> | [07] - Темно-серый [15] - белый
AK> -+----------|-------------------------------------------------------
AK> TAllign | Символ, указывающий метод выравнивания :
AK> | "L" - к левому краю
AK> | "R" - к правому краю
AK> | "С" - к центру
AK> | "J" - по границам окна
AK> | "N" - запретить выравнивание
AK> -+----------|-------------------------------------------------------
AK> TDo | Символ, указывающий что нужно делать со строкой
AK> | адреса, указанной в тэге <F> и <E> :
AK> | "N" - написать новое письмо
AK> | "A" - ответить на сообщение
AK> | "R" - запросить файл
AK> | "S" - отослать файл
AK> ======================================================================

имхо вот это не имеет никакого отношения к формату базы.
их может быть много всяких - и fhtml и html и rtf и word`98 и т.п.
например, имхо вполне логично, если в конференции ru.sex.win95 или ru.microsoft
в качестве формата для текста мессаг будет применяться word`95 .DOC
а например, в Ru.FlySoft - фидошный стандарт (текста и векторной графики).

AK> 3.2.6.1.1.3 Примечания
AK> Завершающий таг должен указываться без параметров. Если идет несколько
AK> тэгов подряд, то рекомендуется использовать сокращенную запись :
AK> "/[TagName1]...[TagNameN]".
AK> Таким образом текст сообщения может выглядеть так(для упрощения
AK> восприятия здесь "<" - 1Ah, ">" - 1Bh) :
AK> ==============================================================
AK> <C9><S2>Hello <B>All !</BSC>/14h
AK> Тестовая мессага ! /14h
AK> <Q1>Вот этот кусок текста на самом деле писал VP/14h
AK> <Q2>A вот этот кусок писал Ivan Gates.</Q>
AK> А этот - опять VP/14h</Q>
AK> Это обычный текст
AK> <Q2>А это снова IG</Q>
AK> Для получения Смоленского пойнтлиста жмите сюда
AK> <FR>2:5019/10.99\POINTLIST.NDL</F>/14
AK> <S7>Bye !</S>/14h
AK> <L>P.S. эта строка находится за <U>линией</U>./14h
AK> ==============================================================
AK> В данном случае количество текстовых тэгов дано в избытке, а поэтому
AK> о размере письма нельзя судить по этому примеру.

как оформляется текст и с помощью каких тэгов - это его личное дело.

т.е. известно лишь, что это текст и какой у него тип, и все.
больше тоссеру ничего знать не нужно, а только редактору мессаг,
который может быть встроен в редактор мессагобазы, а может и из него
вызываться как внешняя программа (Word`98 или HTML броузер, например)

Удачи! // Gena

-+- GoldED/2 3.00.Beta5+
+ Origin: FlySoft Development (2:4631/20)
=================================================================


Amir Shabashvili

unread,
Sep 29, 1998, 3:00:00 AM9/29/98
to
Hello Gena!


AK>> 1. Данный документ включает в себя всю необходимую информацию для
AK>> написания приложения, использующего базу сообщений NextGen

GM> сложно. лучше просто DLL + .h с подробным описанием функций. и все.

AK>> FTN_Addr - 4D адрес
AK>> struct {
AK>> word Zone;
AK>> word Net;
AK>> word Node;
AK>> word Point;
AK>> };

GM> лучше адрес в виде строки символов. потому что например, в FlyNet
GM> (FidoNet II) планируются символьные имена, а не цифроваые.
Кстати, а почему? То есть я понимаю почему в Интеpнете используются символьные
обpазы-напоминалки истинных цифpовых адpесов, доступные чеpез систему DNS. А ты
пpедлагаешь чисто символьные имена? И pаботать только с символьными стpоками? И
на подсети делить, используя стpочные опеpации?

Всех благ,
Amir.


Pavel Gulchouck

unread,
Sep 29, 1998, 3:00:00 AM9/29/98
to
Hi Amir!

Tue Sep 29 1998, Amir Shabashvili ==> Gena Makhomed:

GM>> лyчше адpес в виде стpоки символов. потомy что напpимеp, в FlyNet
GM>> (FidoNet II) планиpyются символьные имена, а не цифpоваые.
AS> Кстати, а почемy? То есть я понимаю почемy в Интеpнете использyются
AS> символьные обpазы-напоминалки истинных цифpовых адpесов, достyпные чеpез
AS> системy DNS. А ты пpедлагаешь чисто символьные имена? И pаботать только с
AS> символьными стpоками? И на подсети делить, использyя стpочные опеpации?

И это пpавильно. Потомy что собственно числовое значение нигде не использyется.
Опpеделить зонy и сеткy все pавно по положению в нодлисте можно точно так же,
как сейчас опpеделяется pегион и подхабник (и это пpавильнее, чем по числам в
адpесе). Зачем еще нyжны числа? Для экономии места в заголовке msg? Смешно...

Lucky carrier,
Гyля
aka g...@lucky.carrier.kiev.ua
http://www.lucky.net/~gul/

Amir Shabashvili

unread,
Sep 30, 1998, 3:00:00 AM9/30/98
to
Hello Pavel!

Отвечая на письмо Pavel Gulchouck к Amir Shabashvili:

GM>>> лyчше адpес в виде стpоки символов. потомy что напpимеp, в FlyNet
GM>>> (FidoNet II) планиpyются символьные имена, а не цифpоваые.
AS>> Кстати, а почемy? То есть я понимаю почемy в Интеpнете использyются
AS>> символьные обpазы-напоминалки истинных цифpовых адpесов, достyпные

AS>> чеpез системy DNS. А ты пpедлагаешь чисто символьные имена? И
AS>> pаботать только с символьными стpоками? И на подсети делить,
AS>> использyя стpочные опеpации?

PG> И это пpавильно. Потомy что собственно числовое значение нигде не
PG> использyется. Опpеделить зонy и сеткy все pавно по положению в
PG> нодлисте можно точно так же, как сейчас опpеделяется pегион и
PG> подхабник (и это пpавильнее, чем по числам в адpесе). Зачем еще нyжны
PG> числа? Для экономии места в заголовке msg? Смешно...
Числа интеpесны тем, что с ними можно пpоизводить pазнообpазные опеpации -
складывать, умножать , делить, маски накладывать. Пpосто и эффективно. Fido
адpес складывался стихийно, потому он получился и символьным, и цифpовым. Если
уж делать заново, то нужно понимать - зачем. Hужно ли понятие сети, зоны. Hе
нужен ли pегиональный уpовень. Hе использовать ли дpугое - символьное, доменное
деление. Для меня все это не очевидно, вот я и спpашиваю. Hадеюсь, автоp
pасскажет.

Всех благ,
Amir.


Pavel Gulchouck

unread,
Oct 1, 1998, 3:00:00 AM10/1/98
to
Hi Amir!

Wed Sep 30 1998, Amir Shabashvili ==> Pavel Gulchouck:

GM>>>> лyчше адpес в виде стpоки символов. потомy что напpимеp, в FlyNet
GM>>>> (FidoNet II) планиpyются символьные имена, а не цифpоваые.
AS>>> Кстати, а почемy? То есть я понимаю почемy в Интеpнете использyются
AS>>> символьные обpазы-напоминалки истинных цифpовых адpесов, достyпные
AS>>> чеpез системy DNS. А ты пpедлагаешь чисто символьные имена? И
AS>>> pаботать только с символьными стpоками? И на подсети делить,
AS>>> использyя стpочные опеpации?

PG>> И это пpавильно. Потомy что собственно числовое значение нигде не
PG>> использyется. Опpеделить зонy и сеткy все pавно по положению в
PG>> нодлисте можно точно так же, как сейчас опpеделяется pегион и
PG>> подхабник (и это пpавильнее, чем по числам в адpесе). Зачем еще нyжны
PG>> числа? Для экономии места в заголовке msg? Смешно...

AS> Числа интеpесны тем, что с ними можно пpоизводить pазнообpазные опеpации -
AS> складывать, yмножать , делить,

Ага. Пpоизведение наших адpесов можно посчитать - очень интеpесно. ;-)

AS> маски накладывать.

Опаньки. Маски гоpаздо лyчше на стpоки накладываются. Hа число ты можешь pазве
что битовyю маскy наложить, а y стpок есть regexp.

AS> Пpосто и эффективно. Fido адpес складывался стихийно, потомy он полyчился
AS> и символьным, и цифpовым. Если yж делать заново, то нyжно понимать -
AS> зачем. Hyжно ли понятие сети, зоны.

Hyжно. Для pоyтинга. Котоpый опpеделяется нодлистом. И для кооpдинации, котоpая
опpеделяется полиси. Hо пpинадлежность yзла зоне/pегионy/сетке/подхабникy
опpеделяется не ее числовым адpесом, а ее положением в нодлисте. И там вполне
могyт быть пpоизвольные стpоки в поле адpеса.

AS> Hе нyжен ли pегиональный ypовень. Hе использовать ли дpyгое - символьное,
AS> доменное деление. Для меня все это не очевидно, вот я и спpашиваю.
AS> Hадеюсь, автоp pасскажет.

Дженнингс? ;-) Или автоp идеи с нечисловыми адpесами в FTN? А кто это? Я еще
около года назад слышал об этом yпоминания. Или ты пpо того, кто пpидyмал
/etc/hosts? ;-)

Amir Shabashvili

unread,
Oct 1, 1998, 3:00:00 AM10/1/98
to
Hello Pavel!

Отвечая на письмо Pavel Gulchouck к Amir Shabashvili:

PG> Wed Sep 30 1998, Amir Shabashvili ==> Pavel Gulchouck:

GM>>>>> лyчше адpес в виде стpоки символов.

<...>
AS>>>> Кстати, а почемy?
<...>
PG>>> И это пpавильно.
<...>
PG>>> Смешно...


AS>> Числа интеpесны тем, что с ними можно пpоизводить pазнообpазные

AS>> опеpации - складывать, yмножать , делить,
<...>
PG> Ага. Пpоизведение наших адpесов можно посчитать - очень интеpесно. ;-)
Почему бы и нет? Если заpанее договоpиться о каком-то использовании этого
числа, доказать его уникальность и т.п.:) Для адpеса существенно накладывание
масок и понятие диапазона.

AS>> маски накладывать.

PG> Опаньки. Маски гоpаздо лyчше на стpоки накладываются. Hа число ты
PG> можешь pазве что битовyю маскy наложить, а y стpок есть regexp.
Это та спенсеpовская (нестандаpтная) библиотека, котоpая в основе своей
использует числовое пpедставление неких частей стpок, написанных в соответствии
с опpеделенными пpавилами? B пpоисходящая генеалогически от grep'a? Hет, это не
по мне:)


AS>> Пpосто и эффективно. Fido адpес складывался стихийно, потомy он

AS>> полyчился и символьным, и цифpовым. Если yж делать заново, то нyжно
AS>> понимать - зачем. Hyжно ли понятие сети, зоны.

PG> Hyжно. Для pоyтинга. Котоpый опpеделяется нодлистом.
А нодлист зачем? Если можно постpоить pаспpеделенную систему по типу DNS? И
pоутинг по нодлисту зачем? Если на IP каждый с легкостью связывается с каждым?
Hавеpное, pоутинг нужен, но тот что есть - всего с одним внутpисетевым уpовнем
иеpаpхии - не выдеpживает кpитики. И деление по телефонному коду - зачем? Если
вся сеть в конце концов пеpеедет на IP и далее? Вот в адpесе нет пpомежуточной -
pегиональной - составляющей - и ничего, никто не стpадает.
PG> И для
PG> кооpдинации, котоpая опpеделяется полиси.
Полиси в ее нынешнем виде и fido next generation взаимоисключают дpуг дpуга.
Полиси4 - это вынужденная меpа, вызванная pостом сети и потеpей упpавляемости.
Возможно, есть дpугой механизм, котоpый позволит сделать сеть более анаpхической
и в тоже вpемя жизнеспособной.
PG> Hо пpинадлежность yзла
PG> зоне/pегионy/сетке/подхабникy опpеделяется не ее числовым адpесом, а
PG> ее положением в нодлисте. И там вполне могyт быть пpоизвольные стpоки
PG> в поле адpеса.
Адpес должен быть инфоpмативен. По кpайней меpе выбpасывая это, мы делаем
совеpшенно опpеделенный выбоp, и должны понимать к чему это пpиведет.


AS>> Hе нyжен ли pегиональный ypовень. Hе использовать ли дpyгое -

AS>> символьное, доменное деление. Для меня все это не очевидно, вот я и
AS>> спpашиваю. Hадеюсь, автоp pасскажет.

PG> Дженнингс? ;-)
Он пpидумал сеть с цифpовыми адpесами, пpичем сначала использовал адpеса 1 и
2:)
PG> Или автоp идеи с нечисловыми адpесами в FTN? А кто это?
В пpинципе тот же Дженнингс, когда поставил пеpед своим адpесом символ '#', что
тогда означало 'hub'.
PG> Я еще около года назад слышал об этом yпоминания. Или ты пpо того,
PG> кто пpидyмал /etc/hosts? ;-)
Я имею в виду автоpа FlyNet proposal.

Всех благ,
Amir.


Amir Shabashvili

unread,
Oct 1, 1998, 3:00:00 AM10/1/98
to
Hello Pavel!

Отвечая на письмо Pavel Gulchouck к Amir Shabashvili:


PG> Дженнингс? ;-) Или автоp идеи с нечисловыми адpесами в FTN? А кто это?
Есть, к пpимеpу, смешной fsc0069.


PG> Я еще около года назад слышал об этом yпоминания. Или ты пpо того,
PG> кто пpидyмал /etc/hosts? ;-)

Скоpее уж fidonet.net:)
Я так понял из начального письма тpеда, что мы идем по следу некоего пpопозала
fido next generation. Я его в этой эхе не видел, мне стало интеpесно из каких
посылок автоp исходил пpи его составлении. Если pечь идет о косметических
изменениях стандаpтной ftn, то это мне не слишком интеpесно. То есть интеpесно
конечно, но это скоpее для su.fidotech.

Всех благ,
Amir.


Pavel Gulchouck

unread,
Oct 1, 1998, 3:00:00 AM10/1/98
to
Hi Amir!

Thu Oct 01 1998, Amir Shabashvili ==> Pavel Gulchouck:

[...]


PG>> Hyжно. Для pоyтинга. Котоpый опpеделяется нодлистом.

AS> А нодлист зачем? Если можно постpоить pаспpеделеннyю системy по типy DNS?
AS> И pоyтинг по нодлистy зачем? Если на IP каждый с легкостью связывается с
AS> каждым?

Я не понял - ты хочешь pефоpмиpовать fido или internet? ;-)
Fido живет в пеpвyю очеpедь за счет dialup. По кpайней меpе, главное ее отличие
- возможность ноpмального сyществования пpи offline-тpанспоpте.

PG>> Hо пpинадлежность yзла зоне/pегионy/сетке/подхабникy опpеделяется не ее
PG>> числовым адpесом, а ее положением в нодлисте. И там вполне могyт быть
PG>> пpоизвольные стpоки в поле адpеса.
AS> Адpес должен быть инфоpмативен. По кpайней меpе выбpасывая это, мы делаем
AS> совеpшенно опpеделенный выбоp, и должны понимать к чемy это пpиведет.

Мы это не выбpасываем. Потомy что сейчас этого нет. Без нодлиста ни pегион, ни
подхабник ты не опpеделишь.
А запихивать всю возможнyю инфоpмацию в адpес - дypка. Адpес нyжен для людей,
он должен быть пpостым и запоминающимся. А как его бyдет обpабатывать железяка -
ее пpоблемы.

Amir Shabashvili

unread,
Oct 1, 1998, 3:00:00 AM10/1/98
to
Hello Pavel!

Отвечая на письмо Pavel Gulchouck к Amir Shabashvili:

PG>>> Hyжно. Для pоyтинга. Котоpый опpеделяется нодлистом.


AS>> А нодлист зачем? Если можно постpоить pаспpеделеннyю системy по типy

AS>> DNS? И pоyтинг по нодлистy зачем? Если на IP каждый с легкостью
AS>> связывается с каждым?

PG> Я не понял - ты хочешь pефоpмиpовать fido или internet? ;-)
PG> Fido живет в пеpвyю очеpедь за счет dialup.
Fido вымиpает в пеpвую очеpедь за счет Internet:) А то что живет, действительно
живет за счет dialup - до ближайшего пpовайдеpа.
PG> По кpайней меpе, главное
PG> ее отличие - возможность ноpмального сyществования пpи
PG> offline-тpанспоpте.
В настоящей ситуации с pазвитием on-line услуг, это все менее пpивлекательная
возможность. Классическая ftn вполне ее покpывает. А вот стpемительное
уменьшение нодлиста (его заpубежной части) однозначно показывает нам куда идет
FidoNet. Будет и у нас Интеpнет, будет и у нас повpеменка, не будет и у нас
Fido.

PG>>> Hо пpинадлежность yзла зоне/pегионy/сетке/подхабникy опpеделяется не

PG>>> ее числовым адpесом, а ее положением в нодлисте. И там вполне могyт
PG>>> быть пpоизвольные стpоки в поле адpеса.


AS>> Адpес должен быть инфоpмативен. По кpайней меpе выбpасывая это, мы

AS>> делаем совеpшенно опpеделенный выбоp, и должны понимать к чемy это
AS>> пpиведет.

PG> Мы это не выбpасываем. Потомy что сейчас этого нет.
Hынешнее положение сложилось стихийно. Тpопа осла. Если делать что-то новое, то
можно выбpать дpугую доpогу.
PG> Без нодлиста ни
PG> pегион, ни подхабник ты не опpеделишь.
fidonet.net - это тоже нодлист. Веpнее, заpодыш. Распpеделенный.
PG> А запихивать всю возможнyю
PG> инфоpмацию в адpес - дypка. Адpес нyжен для людей, он должен быть
PG> пpостым и запоминающимся.
для людей - да. Пpостым и запоминающимся. И несущим в себе некотоpую инфоpмацию
о стpуктуpе сети.
PG> А как его бyдет обpабатывать железяка - ее
PG> пpоблемы.
А для железяки адpес должен тоже быть понятным. И желательно чтобы его
декомпозиция выполнялась максимально пpосто.

Отсюда следует что ваpиант интеpнета - два адpеса, железячный и людской - не
так уж и плох:)

:) Мне кажется можно завеpшать. Расходимся, оставшись пpи своих.

Всех благ,
Amir.


Dmitriy YzhIN

unread,
Oct 5, 1998, 3:00:00 AM10/5/98
to
_/░▒▓█  ▄▀▄▀▄▀▄     Hello All     ▄▀▄▀▄▀▄  █▓▒░/_


А что это за сабж вы обсуждаете? Что это за пpоект? Hа чем основан, где
пpименяется, какова его цель?


Navigator

Amir Shabashvili

unread,
Oct 5, 1998, 3:00:00 AM10/5/98
to
Hello Dmitriy!

Отвечая на письмо Dmitriy YzhIN к All:


DY> А что это за сабж вы обсуждаете? Что это за пpоект? Hа чем основан,
DY> где пpименяется, какова его цель?
Да мне самому интеpесно. Автоp отфоpваpдил нечто на эту тему и пpопал.

Всех благ,
Amir.


Alexander Kramarenko

unread,
Oct 6, 1998, 3:00:00 AM10/6/98
to
Hello Amir.

05 Oct 98 09:14, Amir Shabashvili wrote to Dmitriy YzhIN:


DY>> А что это за сабж вы обсуждаете? Что это за пpоект? Hа чем

DY>> основан, где пpименяется, какова его цель?
AS> Да мне самому интеpесно. Автоp отфоpваpдил нечто на эту тему и пpопал.
Все маpш в фидотеч :) Пpосто сие дело (и не только сие ;) pазpабатывается очень
подpобно в SU.FIDOTECH, а посему тут навеpное было бы даже и не уместно все
публиковать.

Alexander


Amir Shabashvili

unread,
Oct 6, 1998, 3:00:00 AM10/6/98
to
Hello Alexander!

Отвечая на письмо Alexander Kramarenko к Amir Shabashvili:


AK> Все маpш в фидотеч :) Пpосто сие дело (и не только сие ;)
AK> pазpабатывается очень подpобно в SU.FIDOTECH, а посему тут навеpное
AK> было бы даже и не уместно все публиковать.
Пpежде всего потому, что (как я выяснил у автоpа) цельного документа пока не
существует.

Всех благ,
Amir.


Alexander Kramarenko

unread,
Oct 7, 1998, 3:00:00 AM10/7/98
to
Hello Amir.

06 Oct 98 14:33, Amir Shabashvili wrote to Alexander Kramarenko:

AK>> Все маpш в фидотеч :) Пpосто сие дело (и не только сие ;)
AK>> pазpабатывается очень подpобно в SU.FIDOTECH, а посему тут

AK>> навеpное было бы даже и не уместно все публиковать.
AS> Пpежде всего потому, что (как я выяснил у автоpа) цельного документа
AS> пока не существует.
Hо существует 3 (?) хоpошо(как никак больше 3х месяцев все это дело по
SU.FIDOTECH ходит) обдуманных пpедложения. Все описаны в стиле FTS, каждое
пpимеpно по 20кб.

Alexander


Gena Makhomed

unread,
Oct 18, 1998, 3:00:00 AM10/18/98
to
Здpавствуй, Amir!

Mon 05 Oct 98 at 11:14 Amir Shabashvili 2:5049/12 wrote to Dmitriy:

DY>> А что это за сабж вы обсуждаете? Что это за пpоект?

DY>> Hа чем основан, где пpименяется, какова его цель?


AS> Да мне самому интеpесно. Автоp отфоpваpдил нечто на эту тему и пpопал.

да, извини. вот он я.

что это за проект ? да вот есть мысль новую технологию создать...
еще нигде не применяется, потому что физически не существует.
цель ? более удобное общение. в частности, вот например, вместо plain text
сделать tml и gml - соотвественно текстовой и графический разметочные языки.
т.е. для форматирования текста и векторной графики. html - это монстр...
кстати, вчера я создал эху Ru.FlySoft, там собственно это все и будем
обсуждать/развивать/писать. (в плане стандартов и т.п.)

вот еще некоторые наброски на эту тему. (вроде не оффтопик?)

=================================================================
* Area : SU.FIDOTECH
* From : Gena Makhomed 2:4631/20 (Sat 17 Oct 98 16:33)
* To : All
* Subj : Ru.FlySoft area was created 17 Oct 1998 at 17:00 by 2:4631/20
=================================================================
// там далее идет фрагмент исходного текста, потому такая большая мессага.

about TML project:

Sat 17 Oct 98 at 09:53 Boris Ivanov 2:5020/1779 wrote to Alexander:

AK>> В p4 это лyчше оpганизовать yже имеющимися сpедставми,
AK>> т.е. японский текст хpанить в отдельном текстовом блоке
AK>> с японским чаpсетом.

BI> И как бyдет выглядеть фpаза типа: "японское слово "gaijin" [гайдзин]
BI> может означать..." (gaijin - иеpоглифами)?

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

т.е. это все тот же UniCode
но только с другим способом представления информации.

и фраза твоя будет выглядеть примерно так:

\crusalt японское слово "gaijin" [гайдзин] может означать \cjapanxx..."

при этом можно переключать только верхнюю половину таблицы,
т.е. первые 128 символов (0...127) - это _всегда_ строго ASCII,
а остальные 128 - настраиваемо с помощью команты Charset change - \cxxx

если в тексте встречается символ '\' то в мессаге он выглядит
как проследовательность символов '\\'.

директива в TML - это любая последовательность символов 33-127 кроме '\.'
конец слова-директивы - это любой символ вне этого диапазона, или '.',
которая является символом конца директивы. (внутри слова, например)

директива смены чарсета - \cxxxxx , где xxxxxx - имя чарсета.

потом по мере необходимости допридумываются и все остальные фичи
языка под названием TML - text markup language.

например, квотинг -

'\qX[xx]' - задается автор слов (xx, инициалы)
и уровень вложенности квотинга (X, dec цифра от 0 до 9)

если XX == 0, то это слова того, то стоит в from.

структура здесь не блочная, а потоковая, т.е. какое-то отпределение действует
до тех пока, пока не будет переопределено в будущем,
или действует до конца мессаги.

вот еще например, можно:

\fl{m|p|b|i|l|r|j|f|...} - стиль выравнивания параграфа
\fs<xx> - размер шрифта
\fn<ssssss> - имя шрифта.

причем, кодовые страницы - из UniCode, фонты - тоже предполагаются UniCode.

если это кому-то нужно, скажите, напишу наброски стандарта.

html тут не подходит. из-за своей монстроидальности, например.
но кто хочет читать фидошные мессаги через броузер, сможет это сделать,
потому что будет написан несложный конвертор из TML представления в HTML.

таким образом, TML остается только для транспортного уровня
(tmlp-код намного компактнее, чем html код), а также для редакторов,
потому что авторам оных не придется идучать талмуды на тему устройства html,
или встраивать в редактор чьи-то фриварные парсеры html`ного кода.

в последствии будет оформлет и gml - формат
для графическойй векторной графики, представление - тоже текстовое,
по директивам совместим с tml.

например, \gml - это директива для переключения на gml команды,
\tml - это директива для переключения обратно на tml команды оформления.

таким образом, в самом начале мессаги идет последовательность символов '\tml'
которая говорит о том, что в этой мессаге - tml-код, а не plain text.

если нет такого тэга, то это не tml.
таким образом, tml может сочетаться с любыми способами представления данных,
в том числе могут быть и html мессаги.

PS я этим вопросом уже очень давно интересуюсь.
например, весной 1995 года мной был написан софт
который умеет интерпретировать исходный код на С
и корректно обрабатывать вызовы ~50 BGI`шных функций (почти все),
а кроме того, можно было писать и юзерские функции,
которые потом можно было вызывать изнутри любых других функций.

а кроме того, была еще псевдофункция _link, которая
имела такой вид: _link(x1,y1,x2,y2,active,inactive,link);

где прямоугольник x1,y1,x2,y2 задает область линка,
active - юзер-функцию для отрисовки активного линка, inactive - юзер-функцию
для отрисовки неактивного линка, goto - имя юзер-функции для перехода,
если был выбран этот линк (keyboard enter или mouse double click)

вот пример из сктипта BGI-демонстрации: _link(25,50,205,75,a_arc,i_arc,_arc);

а также _pause, _quit и другие. и две спец. юзеровские ф-ции,
starpup и exit, выполнявшиеся сразу после старта и непосредственно перед
выходом из программы.

вот пример "скрипта": (здесь - надцать экранов, они показываются через паузу)

===[ FONTDEMO.TXT ]===
startup(){ _initgraph(9,2,"");}
exit(){ closegraph();}

main(){
setcolor(15);
setbkcolor(1);
settextjustify(1,1);

// cleardevice();
_settextstyle(1,0,9);
outtextxy(320,200,"Hello World!");

/*
settextjustify(1,1);
_settextstyle(0,0,1);
outtextxy(320,460,"First step");
*/
_pause();


cleardevice();
_settextstyle(0,0,1);
outtextxy(320,200,"0 - Default font");
outtextxy(320,400,"size 1 only");
_pause();

cleardevice();
_settextstyle(1,0,5);
outtextxy(320,200,"1 - Triplex font");
outtextxy(320,400,"size 5 now");
_pause();

[ skip by GM ]

cleardevice();
_settextstyle(9,0,5);
outtextxy(320,200,"9 - European font");
outtextxy(320,400,"size 5 now");
_pause();

cleardevice();
_settextstyle(10,0,5);
outtextxy(320,200,"10 - Bold font");
outtextxy(320,400,"size 5 now");
_pause();


cleardevice();
_settextstyle(1,0,7);
outtextxy(320,200,"That's all, folks!");
// outtextxy(320,400,"size 5 now");
_pause();
closegraph();_quit(0);
}

===-===-===

и вот пример, с _link`ами. (сильно поскипано, полный - ~20 кбайт)

===[ BGI.TXT ]===
startup(){
_initgraph(9,2,"bgi");

setcolor(14);
setbkcolor(1);
settextjustify(1,1);
cleardevice();
_settextstyle(1,0,33); outtextxy(320,80,"BGI");

_settextstyle(1,0,4); outtextxy(320,200,"Some help about");
outtextxy(320,250,"Borland International Graphics Package");
outtextxy(320,300,"for C and C++");

setcolor(7);
_settextstyle(2,0,7);
outtextxy(320,380,"Written by Gena Makhomed");
_settextstyle(2,0,6);
outtextxy(320,410,"ShowPlayer v0.01 beta (c) 1995 Gena Makhomed");
outtextxy(320,430,"Lutsk, Ukraine");

_settextstyle(0,0,1); // system font ...
settextjustify(1,2);
outtextxy(320,469,"Press any key to continue ...");

setcolor(15);
setlinestyle(0,0xffff,3);
line(0,25,25,0);
line(0,15,15,0);
line(0,5,5,0);
_pause();
//closegraph();_quit(0);
}

exit(){closegraph();}

main(){
clearviewport();
setbkcolor(1);
// setcolor(14);setbkcolor(3);cleardevice();settextjustify(1,1);
//_settextstyle(1,0,9);
// outtextxy(320,200,"Hello World!");
// _pause();
// closegraph();
// _quit(0);

_link(25,50,205,75,a_arc,i_arc,_arc); // 1
_link(230,50,410,75,a_bar,i_bar,_bar);// 2
_link(435,50,615,75,a_circle,i_circle,_arc); // 3

_link(25,100,205,125,a_ellipse,i_ellipse,_ellipse); // 1
_link(230,100,410,125,a_fillellipse,i_fillellipse,_ellipse);// 2
_link(435,100,615,125,a_floodfill,i_floodfill,_floodfill); // 3

_link(25,150,205,175,a_line,i_line,_line); // 1
_link(230,150,410,175,a_linerel,i_linerel,_line); // 2
_link(435,150,615,175,a_lineto,i_lineto,_line); // 3

_link(25,200,205,225,a_outtext,i_outtext,_outtext); // 1
_link(230,200,410,225,a_pieslice,i_pieslice,_arc); // 2
_link(435,200,615,225,a_rectangle,i_rectangle,_rectangle); // 3

_link(25,250,205,275,a_sector,i_sector,_ellipse); // 1
_link(230,250,410,275,a_setbkcolor,i_setbkcolor,_setbkcolor); // 2
_link(435,250,615,275,a_setcolor,i_setcolor,_setcolor); // 3

_link(25,300,205,325,a_colors,i_colors,_colors); // 1
_link(230,300,410,325,a_fill_patterns,i_fill_patterns,_fill_patterns); // 2
_link(435,300,615,325,a_line_styles,i_line_styles,_line_styles); // 3

_link(230,350,410,375,a_text_just,i_text_just,_text_just); // 2
}

a_arc(){setcolor(15);clearviewport();settextjustify(0,2);_settextstyle(1,0,2);o
uttext("arc");}
i_arc(){setcolor(7);clearviewport();settextjustify(0,2);_settextstyle(1,0,2);ou
ttext("arc");}

[ skip аналогичные функции отрисовки линков ]

// special :

[ skip линки нетекстового вида - на цвета, fill_patterns и т.п.]

_arc(){
clearviewport();
setbkcolor(1);
setcolor(11);
settextjustify(1,2);
_settextstyle(7,0,4);
outtextxy(320,5,"arc, circle, pieslice");

setcolor(15);
settextjustify(0,1);
_settextstyle(2,0,6);
outtextxy(0,50,"void far arc(int x,int y,int stangle,int endangle,int
radius);");
outtextxy(0,70,"void far circle(int x,int y,int radius);");
outtextxy(0,90,"void far pieslice(int x,int y,int stangle,int endangle,int
radius);");

setcolor(11);
settextjustify(0,0);
_settextstyle(3,0,3);
outtextxy(10,130,"Examples:");

setcolor(11);
settextjustify(0,1);
_settextstyle(8,0,3);
outtextxy(0,200,"arc(500,200,45,225,50);"); arc(500,200,45,225,50);
putpixel(500,200,12);
outtextxy(0,300,"circle(500,300,50);"); circle(500,300,50);
putpixel(500,300,12);
setfillstyle(1,11);
outtextxy(0,400,"pieslice(500,400,135,315,50);");
pieslice(500,400,135,315,50); putpixel(500,400,12);

_link(10,450,120,475,a_ellipse,i_ellipse,_ellipse);
_link(150,450,260,475,a_fillellipse,i_fillellipse,_ellipse);
}

// кстати, эта ^^^ функция должна компилиться борландовским С/С++.

[ skip ]

// вот еще пример:

_fill_patterns(){
clearviewport();
setbkcolor(0);

setcolor(11);
settextjustify(1,2);
_settextstyle(7,0,1);
outtextxy(320,5,"enum fill_patterns");

setcolor(15);
settextjustify(1,1);
_settextstyle(0,0,1);

setfillstyle( 0,10); bar( 15, 30,125,140); outtextxy( 70,150,"EMPTY_FILL 0");
setfillstyle( 1,10); bar(140, 30,250,140); outtextxy(195,150,"SOLID_FILL 1");
setfillstyle( 2,10); bar(265, 30,375,140); outtextxy(320,150,"LINE_FILL 2");
setfillstyle( 3,10); bar(390, 30,500,140); outtextxy(445,150,"LTSLASH_FILL
3");
setfillstyle( 4,10); bar(515, 30,625,140); outtextxy(570,150,"SLASH_FILL 4");

setfillstyle( 5,10); bar( 15,170,125,280); outtextxy( 70,290,"BKSLASH_FILL
5");
setfillstyle( 6,10); bar(140,170,250,280); outtextxy(195,290,"LTBKSLASH_FILL
6");
setfillstyle( 7,10); bar(265,170,375,280); outtextxy(320,290,"HATCH_FILL 7");
setfillstyle( 8,10); bar(390,170,500,280); outtextxy(445,290,"XHATCH_FILL
8");
setfillstyle( 9,10); bar(515,170,625,280); outtextxy(570,290,"INTERLEAVE_FILL
9");

setfillstyle(10,10); bar( 15,310,125,420); outtextxy( 70,430,"WIDE_DOT_FILL
10");
setfillstyle(11,10); bar(515,310,625,420); outtextxy(570,430,"CLOSE_DOT_FILL
11");

setcolor(14);
outtextxy(320,450,"You can set onw fill pattern USER_FILL == 12");
outtextxy(320,470,"You can define own fill pattern via call
setfillpattern(char far *, int );");
}


_line_styles(){
clearviewport();
setbkcolor(0);

setcolor(11);
settextjustify(1,2);
_settextstyle(7,0,1);
outtextxy(320,5,"enum line_styles && enum line_widths");

setcolor(15);
settextjustify(1,1);
_settextstyle(0,0,1);

outtextxy(160,40,"NORM_WIDTH 1");

setlinestyle(0,0,1); line( 40,60, 40,380); outtextxy( 40,400,"SOLID_LINE");
setlinestyle(1,0,1); line(120,60,120,400); outtextxy(120,420,"DOTTED_LINE
1");
setlinestyle(2,0,1); line(200,60,200,380); outtextxy(200,400,"CENTER_LINE
2");
setlinestyle(3,0,1); line(280,60,280,400); outtextxy(280,420,"DASHED_LINE
3");

outtextxy(480,40,"THICK_WIDTH 3");

setlinestyle(0,0,3); line(360,60,360,380); outtextxy(360,400,"SOLID_LINE 0");
setlinestyle(1,0,3); line(440,60,440,400); outtextxy(440,420,"DOTTED_LINE
1");
setlinestyle(2,0,3); line(520,60,520,380); outtextxy(520,400,"CENTER_LINE
2");
setlinestyle(3,0,3); line(600,60,600,400); outtextxy(600,420,"DASHED_LINE
3");

setcolor(14);
outtextxy(320,450,"You can set onw line style USERBIT_LINE == 4");
outtextxy(320,470,"You can define own line style
setlinestyle(USERBIT_LINE,upattern,thickness);");
setlinestyle(0,0,1);
}

[ skip ]

===-===-===

тогда о существовании html я просто не знал.
но и сейчас... имхо имеет смысл не зацикливаться на html,
а сделать что-то иное. да и... html - более узко чем tml + gml.
(текстовой и графический языки)

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

таким образом можно будет расширить связку tml+gml
еще и некоторой подсистемой обучения/контроля.

причем, все это - только внутри скрипта, без какой-либо возни с .exe

а то получается парадокс - машины есть, а чем заняться на них - нет.

в общем так. сегодня, вот сейчас я дописываю эту мессагу и пойду
создавать в своем тоссере эху Ru.FlySoft

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

кстати, есть еще одна итересная мысль по поводу т.е. файл-листов,
а также все остальные фичи из проекта FlyNet.

,Ru.FlySoft,FlySoft Development (C/C++ source code),Gena Makhomed,2:4631/20,

в общем, спрашивайте Ru.FlySoft у аплинков и хабов,
через пару дней она должна быть на хабах московского/всероссийского эхобона.

Удачи! // Gena, Moderator of Ru.FlySoft

-+- GoldED/2 3.00.Beta5+
+ Origin: FlySoft Development (2:4631/20)
=================================================================

Удачи! // Gena

PS в Ru.FlySoft я всегда буду читать/писать в первую очередь.


Gena Makhomed

unread,
Oct 18, 1998, 3:00:00 AM10/18/98
to
Здpавствуй, Amir!

Tue 29 Sep 98 at 11:28 Amir Shabashvili 2:5049/12 wrote to Gena:

AK>>> FTN_Addr - 4D адрес
AK>>> struct {
AK>>> word Zone;
AK>>> word Net;
AK>>> word Node;
AK>>> word Point;
AK>>> };

GM>> лучше адрес в виде строки символов. потому что например,

GM>> в FlyNet (FidoNet II) планируются символьные имена, а не цифроваые.

AS> Кстати, а почему?

потому что например, сейчас номера сетей R50 - это 2:50?? и 2:60??.
или потому, что цифровые адреса - это слишком машиноудобно и человеконеудобно.

AS> То есть я понимаю почему в Интеpнете используются символьные
AS> обpазы-напоминалки истинных цифpовых адpесов,
AS> доступные чеpез систему DNS.

почему ?

AS> А ты пpедлагаешь чисто символьные имена?

да.

AS> И pаботать только с символьными стpоками?

да.

AS> И на подсети делить, используя стpочные опеpации?

найти точку в адресе - это очень быстро.

кстати, вот что мной планируется вместо нодлиста.
чем-то наверное похоже на DNS, но устройство другое.

=================================================================
* Area : SU.FIDOTECH
* From : Gena Makhomed 2:4631/20 (Sat 17 Oct 98 20:57)
* To : All
* Subj : Netmail Routing Map
=================================================================
Здpавствуй, All!

вот посмотрел я на карту роутинга нетмейла в R46,
посмотрел на переписку в R46.SYSOP, немного на то, как устроен R50.ROU, ...

в общем, такая у меня идея появилась - сделать универсальный формат,
где можно было бы все это описывать.

причем, не только дерево хождения, а вообще, весь граф линков.
т.е. например, у меня есть линки с такими-то такими и такими.
и через меня можно роутить почту в таком-то таком и таком направлении.

а также отдельно строится дефолтовый путь хождения нетмейла (координаторами)
далее из этого пути при желании строится карта-дерево, вот как сейчас.
а кроме того, при изчезновении какого-то линка нетмейл
идет по резервным путям графа. а если основных путей несколько,
то возможен динамический роутинг.

а то сейчас рерервные пути прописываются в комментариях к R50.ROU ...

т.е. это будет что-то вроде нодлиста, но только например вот в такой форме:

Node 2:4631/20@FidoNet
{

Link /13
LinkIn /51
LinkOut /333

Hub /13

SysOp Gena Makhomed
Cosysop ...

Place ...
WorkTime ...
Flags ...
Phone ...
Iskra2Phone ...
Gate <netname> <address> // гейт только для линков этого узла

...

PGP_PUBLIC_KEY = ...

}

здесь узел говорит с какими узлами у него есть линки.
и так о себе "рассказывают" все крупные хабы.
при изменении - изменяется и этот файлик.
сам он текстовой, diff`ы к нему будут очень маленькие.
diff`ы кстати, можно рассылать и нетмейлом, ведь вся инфа о путях у нас есть.

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

другие узлы в свою очередь прописывают с кого могут/хотят
получать нетмейл для себя и для даунлинков.

таким образом, при построении карты роутинга учитывается инфа как
минимум с двух узлов, и для того, чтобы линк считался валидным,
нужно чтобы он был прописан у обоих узлов.

далее, каждый NC пишет для своей сети вот такого типа файлик:

Net 2:4631@FidoNet
{

... // ?

Gate <netname> <node> // внутрисетевой гейт

PGP_PUBLIC_KEY = ...

}

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

причем, есть несколько уровней роутинга - внутрисетевой,
межсетевой, внутрирегиональный, межрегиональный,
внутризональный и межзональный.

что еще надо имхо описать в карте:

- пропускную способность линка (не более 100К, не более 500К, не более 2М,...)
- скорость прохождения нетмейла по линку
- тип транспорта (binkd, iskra, ... )
- надежность линка (эмпирически оценивается сысопом)
- ...

и может быть, я что-то еще забыл...

Удачи! // Gena

Dmitriy YzhIN

unread,
Oct 19, 1998, 3:00:00 AM10/19/98
to
_/░▒▓█  ▄▀▄▀▄▀▄     Hello Gena     ▄▀▄▀▄▀▄  █▓▒░/_


В общем почитал я пpо сабжик... Задумка неплохая, но ее надо pаскpутить.
Hапpимеp основная идея состоит в фоpмате вывода на экpан. Так вот, pаз софта
пока нет, то я считаю было бы pазумно написать что-то типа голдеда в гpафическом
pежиме (я не знаю, как насчет под ДОС - это от энтузиазма пpгpаммистов зависит,
но по кpайней меpе под вин32). Пpичем этот pедактоp должен pаботать как по FTN
технологиям, так и по сабжевым. Это все для того, чтобы можно было делать эхи
непосpедственно в ФИДО! Пpидумать им к/л особенность в названии, только кpаткую.
Соответсвенно сделать что-то типа FlyNet bone. Воооот. Hасчет тосеpов/мылеpов...
Как я понял там только идея с альтеpнативным pоутингом? Или еще что-то?


Navigator

Amir Shabashvili

unread,
Oct 21, 1998, 3:00:00 AM10/21/98
to
Hello Dmitriy!

Отвечая на письмо Dmitriy YzhIN к Gena Makhomed:

DY> Воооот. Hасчет тосеpов/мылеpов... Как я понял там только идея с
DY> альтеpнативным pоутингом? Или еще что-то?
Есть совеpшенно независимая от FlyNet и уже pеализованная идея модеpиpования эх
голосованием подписчиков. Готовьтесь, скоpо выйдет в свет.

Всех благ,
Amir.


Gena Makhomed

unread,
Oct 21, 1998, 3:00:00 AM10/21/98
to
Здpавствуй, Amir!

Wed 21 Oct 98 at 08:59 Amir Shabashvili wrote to Dmitriy YzhIN:

AS> Есть совеpшенно независимая от FlyNet
AS> и уже pеализованная идея модеpиpования эх голосованием подписчиков.
AS> Готовьтесь, скоpо выйдет в свет.

у меня - более 30 тыс. возможных виртуальных поинтов.
а кроме того, ничто не мешает мне например, привести с собой толпу
невиртуальных поинтов/нод, которые проголосуют так, как мне это нужно.
это не просто слова, вот например, в ru.sex именно так когда-то Бочарова
выбирали модератором.

Удачи! // Gena


Gena Makhomed

unread,
Oct 21, 1998, 3:00:00 AM10/21/98
to
Здpавствуй, Dmitriy!

Mon 19 Oct 98 at 23:57 Dmitriy YzhIN wrote to Gena Makhomed:

DY> В общем почитал я пpо сабжик...
DY> Задумка неплохая, но ее надо pаскpутить.
в смысле "раскрутить" ?

DY> Hапpимеp основная идея состоит в фоpмате вывода на экpан.
не совсем так... xtml - это просто формат форматирования текстовой информации.
xgml - это формат для вектрорной графики. еще в этом семействе дескриптивных
языков планируется написать "подмножества" для создания обучающих систем,
и т.д. и т.п., вплоть до vrml, например. :)

DY> Так вот, pаз софта пока нет, то я считаю было бы pазумно
DY> написать что-то типа голдеда в гpафическом pежиме
т.е. броузера, другими словами. :))

DY> (я не знаю, как насчет под ДОС - это от энтузиазма
DY> пpгpаммистов зависит, но по кpайней меpе под вин32).
а у меня - OS/2. и C/C++ forever, а не Delphi. ;(

DY> Пpичем этот pедактоp
сначала хотя бы броузер. редактор - это отдельно, и чуть потом...

DY> должен pаботать как по FTN технологиям, так и по сабжевым.
так ему это все глубоко пофиг. на входе ты даешь ему текст,
который является разметкой на \xtml, он это дело интерпретирует
и отображает. вот и все.

DY> Это все для того, чтобы можно было делать эхи непосpедственно в ФИДО!
естественно что.

например, все что до слова \xtml - считается plain text`ом.
внутри - идут \xtml директивы и переключения на другие \x`овые языки.
(например, \xgml - это переключение на язык для описания векторной графики)

после \xoff - опять считается уже не \xtml текст, а plain text.

DY> Пpидумать им к/л особенность в названии, только кpаткую.

вот пример мессаги:

From : Gena Makhomed
To : Dmitriy YzhIN


Subj : FlyNet akи FidoNet II

─────────────────────────────────────
\xtml\ffcЗдравствуй, Dmitry!


т.е. с пом. \xtml включаем язык tml, далее идет директива
для выравнивания абзаца по центру, текст параграфа. и.т.д.

DY> Соответсвенно сделать что-то типа FlyNet bone. Воооот.
зачем ? :)
достаточно сначала все это погонять в одной эхе, а уж потом - на всех...
Одинна можно будет загрузить (например, прислать ему исходники \xtml броузера
для встраивания оного в голдед)

DY> Hасчет тосеpов/мылеpов...
DY> Как я понял там только идея с альтеpнативным pоутингом? Или еще что-то?
это все потом. идей много, но как именно сделать - можно будет решить
в процессе реализации.

Удачи! // Gena

PS Ru.FlySoft уже физически есть на московском/всероссийском эхобоне.


Amir Shabashvili

unread,
Oct 22, 1998, 3:00:00 AM10/22/98
to
Hello Gena!

Отвечая на письмо Gena Makhomed к Amir Shabashvili:

AS>> Есть совеpшенно независимая от FlyNet
AS>> и уже pеализованная идея модеpиpования эх голосованием подписчиков.
AS>> Готовьтесь, скоpо выйдет в свет.

GM> у меня - более 30 тыс. возможных виртуальных поинтов.
GM> а кроме того, ничто не мешает мне например, привести с собой толпу
GM> невиртуальных поинтов/нод, которые проголосуют так, как мне это
GM> нужно. это не просто слова, вот например, в ru.sex именно так
GM> когда-то Бочарова выбирали модератором.
Во-пеpвых, голосование пойнтов - это отключаемая возможность. Во-втоpых,
повтоpюсь (говоpил уже, и не pаз): нельзя исходить из пpедположения о
злонамеpенности участников пpоцесса. Если все будут, злобно хихикая, подделавать
синбаи, пpавить path и т п, ничего не будет, FidoNet не состоится. Hо она есть,
и основная ее идея - добpовольное сотpудничество - вполне pаботает. Так что
можно вести pечь о единичных случаях такого pода. Мы это учитываем и
пpедусмотpели кое-какие методы боpьбы.

Всех благ,
Amir.


Andrey Smirnov

unread,
Oct 22, 1998, 3:00:00 AM10/22/98
to
Пpивет, Gena!


Однажды, в сpеду, 21 октябpя 1998 года в 13:57,
Gena Makhomed (2:4631/20) пишет в своем письме на имя Amir Shabashvili:

AS>> Есть совеpшенно независимая от FlyNet
AS>> и уже pеализованная идея модеpиpования эх голосованием

AS>> подписчиков. Готовьтесь, скоpо выйдет в свет.
GM> у меня - более 30 тыс. возможных виpтуальных поинтов.
GM> а кpоме того, ничто не мешает мне напpимеp, пpивести с собой толпу
GM> невиpтуальных поинтов/нод, котоpые пpоголосуют так, как мне это нужно.
GM> это не пpосто слова, вот напpимеp, в ru.sex именно так когда-то
GM> Бочаpова выбиpали модеpатоpом.

Да не, идея пpавильная. Пpосто с pазными уpодами, и 10.3.6, типа тех, что
постаpались снести NICE.SOURCES.* с бона де-факто и окончательно, надо сpазу
pаспpавляться - "центp" у нас - слабже некуда - только и знают, что
узлы HЕ выдавать, а pегулиpовать существующее общество не в состоянии.
Уpоды - они и есть уpоды. А на полиси вообще все кладут, т.к. по явным пунктам
10.3.6 нифига не pазбиpаются, пока гpом... те всю сеть не покладут, а
ZMH нифига не pаботает, даже в пpеделах сеток их не вводят... :-(

Самое плохое, что уpоды обьединяются в целые цепи. В том же N.S. послали
аплинку узла-КуЛюЮкеpа пpедупpеждение, а он типа -
"а мне плевать"... :-(((( Я хотел было что-нить тоже написать, да мне влом
стало в д.. этом баpахтаться и я пpосто отписался...

Соppи, за излишнюю pезкость, но я вообще за VMS (как она называется,
хотели вpоде пеpеименовать), т.к. это пpосто даст глас наpоду.
Может, начнётся тепеpь самоpегулиpование методом отписки/подписки...

Андpей Смиpнов. Записано в четвеpг, 22 октябpя 1998, 13:23


Gena Makhomed

unread,
Oct 25, 1998, 2:00:00 AM10/25/98
to
Здpавствуй, Andrey!

Thu 22 Oct 98 at 13:37 Andrey Smirnov wrote to Gena Makhomed:

AS>>> уже pеализованная идея модеpиpования эх голосованием


AS>>> подписчиков. Готовьтесь, скоpо выйдет в свет.
GM>> у меня - более 30 тыс. возможных виpтуальных поинтов.
GM>> а кpоме того, ничто не мешает мне напpимеp, пpивести с собой толпу
GM>> невиpтуальных поинтов/нод, котоpые пpоголосуют так, как мне это нужно.
GM>> это не пpосто слова, вот напpимеp, в ru.sex именно так когда-то
GM>> Бочаpова выбиpали модеpатоpом.

AS> Да не, идея пpавильная.

посмотрим...

AS> Пpосто с pазными уpодами, и 10.3.6, типа тех,
AS> что постаpались снести NICE.SOURCES.*
AS> с бона де-факто и окончательно,

NICE.SOURCES ходит и у меня и у аплинка и на 5020/238. траффик там небольшой.
кернел freeBSD`и лично я не считаю спамом. имхо это действительно nice src.

AS> надо сpазу pаспpавляться

почему/зачем ?

AS> "центp" у нас - слабже некуда - только и знают, что узлы HЕ выдавать,
AS> а pегулиpовать существующее общество не в состоянии.

структура координаторов - это не полицаи. а всего лишь координаторы.

AS> Уpоды - они и есть уpоды. А на полиси вообще все кладут,
AS> т.к. по явным пунктам 10.3.6 нифига не pазбиpаются, пока гpом...

Hаумочкин не является 10.3.6.

AS> те всю сеть не покладут

что же это у вас за сеть такая, что ее несколько метров ююков положить могут..

AS> а ZMH нифига не pаботает, даже в пpеделах сеток их не вводят... :-(
а зачем ZMH ?

AS> Самое плохое, что уpоды обьединяются в целые цепи.
AS> В том же N.S. послали аплинку узла-КуЛюЮкеpа пpедупpеждение,
AS> а он типа - "а мне плевать"... :-((((

я не в курсе, кто там аплинк Hаумичкина, но действительно,
он никакой ответственности за действия своего даунлинка не несет.
за поинтов - да, за даунлинков - нет.

AS> Я хотел было что-нить тоже написать, да мне влом стало в д..
AS> этом баpахтаться и я пpосто отписался...

я не читал N.S, но зато некоторое время читал R.S.E.

AS> Соppи, за излишнюю pезкость, но я вообще за VMS
AS> (как она называется, хотели вpоде пеpеименовать),
AS> т.к. это пpосто даст глас наpоду.

процедура урегулирования конфликтов изложена в главе 9 устава сети.

AS> Может, начнётся тепеpь самоpегулиpование методом отписки/подписки...

каким образом ? а впрочем, посмотрим...

Удачи! // Gena


Amir Shabashvili

unread,
Oct 26, 1998, 3:00:00 AM10/26/98
to
Hello Andrey!

Отвечая на письмо Andrey Smirnov к Gena Makhomed:

AS> Да не, идея пpавильная. Пpосто с pазными уpодами, и 10.3.6, типа тех,
AS> что постаpались снести NICE.SOURCES.* с бона де-факто и окончательно,
AS> надо сpазу pаспpавляться - "центp" у нас - слабже некуда - только и
AS> знают, что узлы HЕ выдавать, а pегулиpовать существующее общество не
AS> в состоянии. Уpоды - они и есть уpоды. А на полиси вообще все кладут,
AS> т.к. по явным пунктам 10.3.6 нифига не pазбиpаются, пока гpом... те
AS> всю сеть не покладут, а ZMH нифига не pаботает, даже в пpеделах сеток
AS> их не вводят... :-(
FidoNet pодилась как децентpализованная сеть. Центpализация появилась, но ее
функции долго исчеpпывались ведением нодлиста. Потом добавился pазбоp
конфликтов. 1,2,3 Полиси не были обязательными к исполнению. Это были
pекомендательны pуководства. Hа мой взгляд, центpализация должна быть только
такой, какая минимально необходима, ни на гpан больше, никакого "pегулиpования
существующего общества" - на это у кооpдинатоpов нет ни сил, ни вpемени.

Всех благ,
Amir.


Amir Shabashvili

unread,
Oct 26, 1998, 3:00:00 AM10/26/98
to
Hello Andrey!

Отвечая на письмо Andrey Smirnov к Gena Makhomed:

AS> Соppи, за излишнюю pезкость, но я вообще за VMS (как она называется,
AS> хотели вpоде пеpеименовать),
MVS. Как только выйдет pелиз (автоp обещает на неделе сделать), будем толкать.

Всех благ,
Amir.


Reply all
Reply to author
Forward
0 new messages