Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.FIDO.NEXTGEN
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.FIDO.NEXTGEN с датами от 21 May 17 10:18:04 до 09 Oct 24 07:49:52, всего сообщений: 1098
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 649 из 1098 =================================== RU.FIDO.NEXTGEN =
От   : Mithgol the Webmaster            2:50/88            24 Oct 17 01:51:40
Кому : All                                                 24 Oct 17 01:51:40
Тема : Гипертекстовый векторный Фидонет в давней истории эхи Ru.Fido.NextGen
FGHI : area://RU.FIDO.NEXTGEN?msgid=2:50/88+59ee72ae
= Кодировка сообщения определена как: CP866 ==================================
==============================================================================

Знаете ли, что в истории гипертекстового векторного Фидонета эхоконференция Ru.Fido.NextGen занимает совершенно особое место, и что на прошлой неделе исполнилося ровно двадцать лет тому?

Именно в этой эхоконференции впервые в Фидо была высказана (20 октября 1997 года) идея URLовой адресации фидонетовских файлов, и именно в этой эхоконференции в Фидо была высказана (18 октября 1998 года; правда, не впервые высказана, а форвардом из SU.FidoTech) идея векторной графики в Фидонете:

╔═════════════════════════════════════════════════════────────────────────────
║ Цитата из эхи:  Ru.Blog.Mithgol (Фидонетовский блог Мицгола-вебмастера)
║ URL сообщения:  area://Ru.Blog.Mithgol?msgid=2:5063/88+4971bda8
║ Автор и время:  Mithgol the Webmaster, 2:5063/88 (17 Jan 09 13:52)
║ Кому написано:  All
║ Заглавие темы:  Как появилась идея гипертекстового Фидонета
╚════════════════════════════════════════════════════════════════════─────────

* изначально написано в эхоконференцию Fidonet.History
* также было отослано в эхоконференцию Ru.FTN.Develop
* также было отослано в эхоконференцию Ru.Blog.Mithgol
* также было отослано в эхоконференцию GanjaNet.Local
* также было отослано в эхоконференцию Sunny.Night


С большим интересом прочёл, что ещё двадцатого октября 1997 года в Фидонете
появилась идея использовать URL (URI) (вида ufrp://...) для адресации файлов:

http://tinyurl.com/85bsc8


Цитирую:


From: Alexey Guzeev <Alexey.Guz...@p1.f16.n1530.z7.fidonet.org>
Subject: new fileecho & fileattach paradigm
Date: 1997/10/20
Message-ID: <877309236@p1.f16.n1530.z7.ftn>#1/1
X-Deja-AN: 281915459
X-FTN-Origin: Aga's Site (7:1530/16.1)
References: <877189607@p15.f35.n5015.z2.ftn>
X-FTN-PATH: 1130/400
X-Comment-To: Vsevolod Novikov
X-FTN-Tearline: FleetStreet 1.20.2+
Distribution: fido7
X-FTN-REPLY: 2:5015/35.15 3448d9e7
X-FTN-X-FTN-MSGID: 7:1530/16.1 344aad34
X-FTN-AREA: RU.FIDO.NEXTGEN
Organization: Aga's Site
Newsgroups: fido7.ru.fido.nextgen


Hello Vsevolod!

Replying to a message of Vsevolod Novikov to Alexey Guzeev:

VN>>> Дополнение: пpедлагаю подумать над идентификацией файлов,
VN>>> позволяющей почти однозначно опpеделять _одинаковые_ файлы.
VN>>> Hапpимеp: имя+датаСоздания+датаОбновления+pазмеp+CRC
AG>> Чем тебе не нравится предложенный мною способ:
AG>> ===
AG>> Очевидно, необходимо учитывать уникальность файлов по двум
AG>> компонентам: адрес отправителя и имя файла. Так-же нужна третья

VN> Адpес отпpавителя, очевидно, создает уникальность там, где
VN> ее нет.
А имя, таймстэмп, размер и crc создают идентичность там где её нет. Идеальный
способ только один - скачать, и сравнить. :^)

VN> У меня - пpогpамма, у тебя - та же пpогpамма, но
VN> если отпpавитель входит в опpеделение уникальности, эти
VN> файлы pазные.
Выход я вижу только один - допустить наличие различных аннонсов одного и того
же файла, но аннонсящих один и тот же файл. Hапример, идентифицировать файл по
оригинатору/fileid, где оригинатор файла не обязательно совпадает с оригинатором
аннонса, fileid не обязательно совпадает msgid аннонса.
Кстати, так как не стоИт цели сделать так, чтобы не походило ни на что - то в
данном случае вероятно будет удобно использовать URI, типа:

ufrp://3.112/my/super/%7Epuper.file.ver.20

где:
  "ufrp"                          - протокол (U-net File Request Protocol)
  "3"                             - номер зоны
  "112"                           - линейный адрес
  "my/super/%7Epuper.file.ver.20" - fileid

А может, и так:

ufrp://3.prd/112/my/super/%7Epuper.file.ver.20

где:
  "prd" (Public Russian Distrubution ;-)) ) - id эхокоординации.
  "112/my/super/%7Epuper.file.ver.20"       - fileid

Впрочем, определение правил постороения уникального fileid при последнем
подходе становятся задачей эхокоординации, а не технических стандартов. "И это
правильно, товарищи".

VN>>> Это полезно для 2-х вещей:
VN>>> - исключение лишних пеpесылок
VN>>> - возможность для пpиемника pешить, нужен ли ему
VN>>> анонсиpованный файл
AG>> Аннонс подразумевает включение в себя текстовой информации для
AG>> человека, а пуще того - юзера.

VN> А еще - технической инфоpмации для ПО, котоpое будет
VN> pешать, где бpать анонсиpованный файл.
Одно другому не мешает. Hо. Мы обсуждаем не http, а ufrp. Путь тут несколько
другой - файл надо брать у линков на соответствующую фэху, либо в случае чего -
там, где разрешено сфрекать (по тому же протоколу ufrp).
VN> Это существенно,
VN> когда напpимеp, в БД анонсов лежит несколько анонсов - с
VN> pазными отпpавителями - на один и тот же файл. Пpичем
VN> один из этих анонсов вполне может быть на собственное
VN> хpанилище.
Просто своё хранилище должно бысть проиндексировано по URI urfp.

VN>>> Штатный pежим должен включать в себя автоматическое
VN>>> исключение дупов пpи запpосах, нештатный pежим - пеpесылка
VN>>> файла по запpосу с отключением пpовеpки на дуп (если есть
VN>>> подозpение, что все одинаковое, а файлы pазные).
AG>> Hаверно, более полезным будет включать md5 в аннонс. И некорректные
AG>> файлы просто выносить из кэша.
VN> Пpошу пpощения за невежество, но мне непонятно, что такое md5.
Hу грубо говоря это типа crc32, но в 2^96 раз кРуЧе ;-) MD5 Message Digest.

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

Alexey                                           [Team OS/2]


Конец цитаты.

Клёво, правда?

Спрашивается: какого же хрена тогда же эту идею не реализовали?

От URLовой адресации файлов до подлинного гипертекста ── один шаг!!

Целых десять лет мы могли бы жить в гипертекстовом Фидонете!!

Никакой блогосферы в Интернете не могло бы появиться!!

Вижу только одну причину: тогда ещё не существовало открытого кода браузеров.
Код Netscape Communicator был открыт в марте 1998 года, а Mozilla 1.0 явилася
только в июне 2002 года. KHTML появился в ноябре 1998 года. Написать же свой
собственный браузер Фидонета с нуля фидошникам было бы не под силу.

Революционная идея гипертекстового Фидонета опередила своё время и умерла,
не успев родиться ── словно цыплёнок из ритуальной фразы студенческого комитета
Академии Отори в аниме Shoujo Kakumei Utena.

В октябре 2005 года я ничего не знал об этой идее, и мне пришлось изобрести её
заново с нуля.

Только в прошлом году по мере поступательного развития идеи своего изобретения
я пришёл к мысли о необходимости адресации файла по его содержимому, то есть
не только по имени. На эту мысль меня натолкнули ed2k://-гиперссылки из сети
файлообмена ed2k/Kad, которая появилась только в сентябре 2000 года.

И вот оказывается, что ещё в октябре 1997 года ── задолго до моего появления
в Фидонете ── идея гипертекстовой адресации файла по его содержимому уже была
сформулирована в Ru.Fido.NextGen.

Я потрясён. Чувствую необходимость отложить на некоторое время все дела, надо
прочесть все сообщения Ru.Fido.NextGen как можно скорее.


Фидонет будет великим и гипертекстовым!    [Ru.Mozilla]     http://Mithgol.Ru/
Mithgol the Webmaster.                    [Братство Нод] [Team А я меняю subj]

... Открылась девам песня чёрных струн, драконы стали юношам собратья...
■■■ Эшелону: спецназ  Recce 707  CIO NOCS  Halcon NSS  Duress RAID  Uziel wojo
 √ Origin: Песня, спетая словно обо мне: Linkin Park ── In The End (2:5063/88)

╔═════════════════════════════════════════════════════────────────────────────
║ Письмо из эхи:  Ru.Blog.Mithgol (Фидонетовский блог Мицгола-вебмастера)
║ URL сообщения:  area://Ru.Blog.Mithgol?msgid=2:5063/88+49733af2
║ Автор и время:  Mithgol the Webmaster, 2:5063/88 (18 Jan 09 17:19)
║ Кому написано:  All
║ Заглавие темы:  Гипертекстовый векторный Фидонет более десяти лет назад
╚════════════════════════════════════════════════════════════════════─────────

* изначально написано в эхоконференцию Ru.FTN.Develop
* также было отослано в эхоконференцию Fidonet.History
* также было отослано в эхоконференцию Ru.Blog.Mithgol
* также было отослано в эхоконференцию GanjaNet.Local
* также было отослано в эхоконференцию Sunny.Night


Совсем недавно (ещё вчера, кажется) со ссылкою на http://tinyurl.com/85bsc8
я говорил, что первые идеи гипертекстовой адресации и фидонетовских URLов
появились ещё двадцатого октября 1997 года, но так и сгинули во мраке забвения
по той причине, что в те годы ещё не существовало открытого кода браузеров.
Код Netscape Communicator был открыт в марте 1998 года, а Mozilla 1.0 явилася
только в июне 2002 года. KHTML появился в ноябре 1998 года. Написать же свой
собственный браузер Фидонета с нуля фидошникам было бы не под силу.

Революционная идея гипертекстового Фидонета опередила своё время и умерла,
не успев родиться ── словно цыплёнок из ритуальной фразы студенческого комитета
Академии Отори в аниме Shoujo Kakumei Utena.

Сегодня, продолжая поступательное чтение эхоконференции Ru.Fido.NextGen, мне
удалось установить, что не только гипертекстовым, но и векторным Фидонет мог
стать ещё десять лет назад, когда бы воля фидонетовских разработчиков могла
привести их к созданию сперва стандартов, а затем и программного обеспечения.

Вот недвусмысленное тому свидетельство:


From: Gena Makhomed <Gena.Makho...@f20.n4631.z2.fidonet.org>
Subject: FlyNet akи FidoNet II
Date: 1998/10/18
Message-ID: <908732006@f20.n4631.z2.ftn>
X-Deja-AN: 402599741
Distribution: fido7
Approved: gate...@fido7.ru
X-FTN-Origin: FlySoft Development (2:4631/20)
References: <907586120@f12.n5049.z2.ftn>
X-FTN-REPLY: 2:5049/12 3618aa48
X-FTN-PATH: 5020/400
X-Comment-To: Amir Shabashvili
X-FTN-CHRS: IBMPC 2
X-FTN-X-FTN-Tearline: (none)
X-FTN-MSGID: 2:4631/20 362a2666
X-FTN-AREA: RU.FIDO.NEXTGEN
Organization: FlySoft Development
Newsgroups: fido7.ru.fido.nextgen

Зд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 я всегда буду читать/писать в первую очередь.


Конец цитаты.

Источник цитаты:  http://tinyurl.com/89xdjn


Сейчас этот проект имеет более историческое, нежели какое-либо другое значение,
поскольку на следующий код (в 1999 году) W3C приступил к развитию стандарта SVG
(более приятного взору, нежели вышеописанные RTF-подобные первые блины комом),
который поддерживается как стандарт векторной графики нынешними браузерами
(в Firefox, в Opera, в Chrome, в Safari... даже и в IE, но там только плагином)
и будет, если Бог даст, поддерживаться и в Фидонете.

То же самое и с TML, который менее удобен, нежели HTML Unicode entities.

Но виден полёт мысли прежних фидошников и небывалое дерзновение.

Как хорошо, Господи.


Фидонет будет великим и гипертекстовым!    [Ru.Mozilla]     http://Mithgol.Ru/
Mithgol the Webmaster.                    [Братство Нод] [Team А я меняю subj]

... А столбы с pезьбой ── всяко заметнее тех, что без pезьбы. (Андрей Тупкало)
■■■ Эшелону: Beyond Hope LASINT csystems .tm файл passwd  2600 Magazine  JUWTF
 √ Origin: Столь же вольны молитвословить ведмеди сих дремучих пущ (2:5063/88)
────────────────────────════════╪══╬═╣()╠═╬══╪════════────────────────────────

... Hа закрытых манифестациях никого отстоять не получится.
--- Эшелону: HERF pipe-bomb  2.3 Oz.  $  imapct  Roswell  ESN COS инопланетный
* Origin: Hо злая мука богооставленности не может длиться вечно!! (2:50/88)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.041409 секунды