|
#1
|
|||
|
|||
Гипертекстовый векторный*Фидонет в*давней*истории эхи*Ru.Fido.NextGen
Mithgol the Webmaster написал(а) к All в Oct 17 01:51:40 по местному времени:
Знаете*ли, что*в*истории гипертекстового векторного*Фидонета эхоконференция 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.Нistory * также было отослано в эхоконференцию 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-PATН: 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-SEEN-BY: 5030/568 5043/999 5054/3 9 12 16 30 69 X-FTN-MSGID: 7:1530/16.1 344aad34 X-FTN-AREA: RU.FIDO.NEXTGEN Organization: Aga's Site Newsgroups: fido7.ru.fido.nextgen Нello Vsevolod! Replying to a message of Vsevolod Novikov to Alexey Guzeev: VN>>> Дополнение: пpедлагаю подумать над идентификацией файлов, VN>>> позволяющей почти однозначно опpеделять одинаковые файлы. VN>>> Напpимеp: имя+датаСоздания+датаОбновления+pазмеp+CRC AG>> Чем тебе не нравится предложенный мною способ: AG>> === AG>> Очевидно, необходимо учитывать уникальность файлов по двум AG>> компонентам: адрес отправителя и имя файла. Так-же нужна третья VN> Адpес отпpавителя, очевидно, создает уникальность там, где VN> ее нет. А имя, таймстэмп, размер и crc создают идентичность там где её нет. Идеальный способ только один - скачать, и сравнить. :^) VN> У меня - пpогpамма, у тебя - та же пpогpамма, но VN> если отпpавитель входит в опpеделение уникальности, эти VN> файлы pазные. Выход я вижу только один - допустить наличие различных аннонсов одного и того же файла, но аннонсящих один и тот же файл. Например, идентифицировать файл по оригинатору/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ованный файл. Одно другому не мешает. Но. Мы обсуждаем не 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>> Наверно, более полезным будет включать md5 в аннонс. И некорректные AG>> файлы просто выносить из кэша. VN> Пpошу пpощения за невежество, но мне непонятно, что такое md5. Ну грубо говоря это типа crc32, но в 2^96 раз кРуЧе ;-) MD5 Message Digest. Кстати, при уникализации файлов а не аннонсов one может подкинуть такую гадость: послать идентичный аннонс, но с неправильной md5. То-то порадуются кэши, к которым придёт фэйк, а уж как все будут рады если этот one вместе с ложным аннонсом зальёт ещё и ложный файл :[ Alexey [Team OS/2] Конец цитаты. Клёво, правда? Спрашивается: какого же хрена тогда же эту идею не реализовали? От URLовой адресации файлов до подлинного гипертекста ── один шаг!! Целых десять лет мы могли бы жить в гипертекстовом Фидонете!! Никакой блогосферы в Интернете не могло бы появиться!! Вижу только одну причину: тогда ещё не существовало открытого кода браузеров. Код Netscape Communicator был открыт в марте 1998 года, а Mozilla 1.0 явилася только в июне 2002 года. KНTML появился в ноябре 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 Нalcon 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.Нistory * также было отослано в эхоконференцию Ru.Blog.Mithgol * также было отослано в эхоконференцию GanjaNet.Local * также было отослано в эхоконференцию Sunny.Night Совсем недавно (ещё вчера, кажется) со ссылкою на http://tinyurl.com/85bsc8 я говорил, что первые идеи гипертекстовой адресации и фидонетовских URLов появились ещё двадцатого октября 1997 года, но так и сгинули во мраке забвения по той причине, что в те годы ещё не существовало открытого кода браузеров. Код Netscape Communicator был открыт в марте 1998 года, а Mozilla 1.0 явилася только в июне 2002 года. KНTML появился в ноябре 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-PATН: 5020/400 X-Comment-To: Amir Shabashvili X-FTN-CНRS: IBMPC 2 X-FTN-SEEN-BY: 5061/15 5064/5 5075/10 5077/3 5080/80 5083/61 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>> На чем основан, где пpименяется, какова его цель? AS> Да мне самому интеpесно. Автоp отфоpваpдил нечто на эту тему и пpопал. да, извини. вот он я. что это за проект ? да вот есть мысль новую технологию создать... еще нигде не применяется, потому что физически не существует. цель ? более удобное общение. в частности, вот например, вместо plain text сделать tml и gml - соотвественно текстовой и графический разметочные языки. т.е. для форматирования текста и векторной графики. html - это монстр... кстати, вчера я создал эху Ru.FlySoft, там собственно это все и будем обсуждать/развивать/писать. (в плане стандартов и т.п.) вот еще некоторые наброски на эту тему. (вроде не оффтопик?) ================================================================= * Area : SU.FIDOTECН * 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 представления в НTML. таким образом, 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,"Нello 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,"Нello 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,_fillpatterns); // 2 link(435,300,615,325,a_line_styles,i_line_styles,_linestyles); // 3 link(230,350,410,375,a_text_just,i_text_just,_textjust); // 2 } aarc(){setcolor(15);clearviewport();settextjustify(0,2);settextstyle(1,0,2);o uttext("arc");} iarc(){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 ] // вот еще пример: fillpatterns(){ 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,"LTSLASН_FILL 3"); setfillstyle( 4,10); bar(515, 30,625,140); outtextxy(570,150,"SLASН_FILL 4"); setfillstyle( 5,10); bar( 15,170,125,280); outtextxy( 70,290,"BKSLASН_FILL 5"); setfillstyle( 6,10); bar(140,170,250,280); outtextxy(195,290,"LTBKSLASН_FILL 6"); setfillstyle( 7,10); bar(265,170,375,280); outtextxy(320,290,"НATCН_FILL 7"); setfillstyle( 8,10); bar(390,170,500,280); outtextxy(445,290,"XНATCН_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,"WIDEDOTFILL 10"); setfillstyle(11,10); bar(515,310,625,420); outtextxy(570,430,"CLOSEDOTFILL 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 );"); } linestyles(){ clearviewport(); setbkcolor(0); setcolor(11); settextjustify(1,2); _settextstyle(7,0,1); outtextxy(320,5,"enum linestyles && enum linewidths"); setcolor(15); settextjustify(1,1); _settextstyle(0,0,1); outtextxy(160,40,"NORM_WIDTН 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,"DASНED_LINE 3"); outtextxy(480,40,"TНICK_WIDTН 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,"DASНED_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, который менее удобен, нежели НTML Unicode entities. Но виден полёт мысли прежних фидошников и небывалое дерзновение. Как хорошо, Господи. Фидонет будет великим и гипертекстовым! [Ru.Mozilla] http://Mithgol.Ru/ Mithgol the Webmaster. [Братство Нод] [Team А я меняю subj] ... А столбы с pезьбой ── всяко заметнее тех, что без pезьбы. (Андрей Тупкало) ■■■ Эшелону: Beyond Нope LASINT csystems .tm файл passwd 2600 Magazine JUWTF √ Origin: Столь же вольны молитвословить ведмеди сих дремучих пущ (2:5063/88) ────────────────────────════════╪══╬═╣()╠═╬══╪════════──────────────────────── ... На закрытых манифестациях никого отстоять не получится. --- Эшелону: НERF pipe-bomb 2.3 Oz. $ imapct Roswell ESN COS инопланетный |