Ru-Board.club
← Вернуться в раздел «Тестирование»

» SciTE Ru-Board Edition

Автор: VoidVolker
Дата сообщения: 01.12.2008 13:33
vladvro

Цитата:
Сорри, я не буду пытаться сделать очередную, как мне покажется правильную, версию конфига, это работа для человека знающего Форт. Вот если потребуется правка самого лексера - тут постараюсь помочь.

Ну конечно, я не имел ввиду настройку конфига. Насчет лексера я пока еще подумаю как бы по-лучше сделать его.
Автор: vladvro
Дата сообщения: 09.12.2008 17:40
VoidVolker, DJ makrus
Обновил лексер для Форта (ревизия 883), тестируйте, правте конфиг.
Автор: VoidVolker
Дата сообщения: 16.12.2008 15:45
vladvro новую версию не смотрел. И я опять сломал всю подсветку до конца файла:

Код: ' ;
: ;
[ DUP CALL, ]
[ EXECUTE IMMEDIATE
Автор: vladvro
Дата сообщения: 17.12.2008 15:52
VoidVolker

Цитата:
новую версию не смотрел.

жаль

Цитата:
И я опять сломал всю подсветку до конца файла:
' ;
: ;
[ DUP CALL, ]
[ EXECUTE IMMEDIATE

Сорри, абсолютно не представляю, что это значит, и слабо представляю, как это должно быть подсвечено.
Автор: VoidVolker
Дата сообщения: 18.12.2008 11:28
vladvro

Цитата:
Сорри, абсолютно не представляю, что это значит, и слабо представляю, как это должно быть подсвечено.

Так ведь говорю же - проще выкинуть подсветку кода между квадратными скобками, чем предусмотреть все возможные варианты.
Автор: DJ makrus
Дата сообщения: 19.12.2008 11:12
mozers
Цитата:
Я полагал что букв в алфавите и твоей фантазии хватит на то чтобы сделать разные аббревиатуры и не привязывать без особой нужды всех пользователей к скрипту
Ты не прав
1. А зачем мне одна и та же конструкция (в разных ее возможных вариантах) на разные буквы?
2. Проблема не в фантазировании, а в сложности вспомнить нужное сочетание, зачем мне что-то вспоминать если могу в всплывающей подсказке посмотреть и выбрать то что мне надо
3. И это очень актуально именно для Форта и других языков в которых подобная свобода в коде (имена, конструкции)
4. Если это привязка к скрипту, то и мои советы пользоваться SciTE'ом - привязка к редактору, называть можно как хочешь, но если это удобно, зачем от этого отказываться?
За вывод "только комментариев к словам" - спасибо, то что нужно!
Файл Forth.api (наконец-то ) заполнил комментариями, передам VoidVolker'у и, надеюсь, в ближайшее время он попадет к тебе.

vladvro
Цитата:
Обновил лексер,...для Форта (ревизия 883), тестируйте, правте конфиг.
Спасибо!. Обновления я вчера скачал, на выходных начну разбираться с ним и смотреть на его работу.
Цитата:
верно "зашиты", и еще "зашиты" \ ( ) { }
да, все явно заданные лексемы надо убирать из лексера в группы конфига, видимо это уже сделано, будем смотреть...
Цитата:
Сорри, абсолютно не представляю, что это значит, и слабо представляю, как это должно быть подсвечено.
В последней строке открывающая квадратная скоба не найдя себе пары до конца файла весь код расцвечивает однообразным стилем..., временным выходом из подобной ситуации, как я уже говорил, является добавление комментария в той же строке в виде " \ ] ".

VoidVolker
Цитата:
Так ведь говорю же - проще выкинуть подсветку кода между квадратными скобками, чем предусмотреть все возможные варианты.
Не могу согласиться..., продолжая рассуждать так же, можно вернуться к Notepad ,IMHO, надо выделять код между лексемами "[" и "]" - который интерпритируется..., в последнем,очень редком в практике случае переопределения такой основополагающей лексемы как ";", помещаем IMMEDIATE в группу закрывающих лексем аналогичных "]"..., vladvro - наличие одной и той же лексемы в двух разных группах -- какие не хорошие эффекты вызывает и как-то можно их обойти в контексте обсуждаемой проблемы?
Автор: ALeXkRU
Дата сообщения: 19.12.2008 14:48

Цитата:
абсолютно не представляю, что это значит, и слабо представляю, как это должно быть подсвечено

товарищи, может, для полной ясности, такие примеры постить сразу с расцветкой?
имхо, сразу будет понятно, что и как должно быть подсвечено (вопрос может возникнуть только в расцветке)
Автор: vladvro
Дата сообщения: 19.12.2008 15:15
DJ makrus

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

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

Цитата:
В последней строке открывающая квадратная скоба не найдя себе пары до конца файла весь код расцвечивает однообразным стилем...

Это понятно, и с моей точки зрения правильно , не понятно как ДОЛЖНО быть? Что в данном случае является лексемой окончания определения, начатого по двоеточию, если это вообще определение? По КАКОМУ ПРАВИЛУ должен вести себя лексер в данном случае?

Цитата:
наличие одной и той же лексемы в двух разных группах -- какие не хорошие эффекты вызывает и как-то можно их обойти в контексте обсуждаемой проблемы?

В общем случае проверка идет по ИЛИ, т.е. если лексема находится в одной из групп, то в остальных она игнорируется. Единственным исключением является группа слов начала определения (start word definition), для которых еще проверяется присутсвие в группе defwords. В любом случае все дополнительные проверки должны быть продуманны и алгоритмизированы. Более конкретно ответить не могу, т.к. и вопрос не конкретный.
Автор: VoidVolker
Дата сообщения: 19.12.2008 15:27
DJ makrus

Цитата:
помещаем IMMEDIATE в группу закрывающих лексем аналогичных "]"

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

Цитата:
Не могу согласиться..., продолжая рассуждать так же, можно вернуться к Notepad'у, IMHO, надо выделять код между лексемами "[" и "]" - который интерпритируется...

Ну чтож, тогда надо делать так:
1) в лексере создаем переменную STATE - по ней лексер и будет определять какой режим - интерпертации(0 или FALSE) или компиляции(1 или TRUE), и как соответственно подсвечивать;
2) затем выделить одну группу слов, которые включают STATE в 1(например : и ]), и еще одну группу слов, которые выключают ее.


Добавлено:
vladvro

Цитата:
Что в данном случае является лексемой окончания определения, начатого по двоеточию, если это вообще определение? По КАКОМУ ПРАВИЛУ должен вести себя лексер в данном случае?

Возможно самым оптимальным вариантом будет лексер непосредственно на форте.


Автор: mozers
Дата сообщения: 20.12.2008 12:11
DJ makrus
По поводу дублирования аббревиатур:

1. Почему не заменить допустим
Код: FOR=FOR-WINDOWS: "|"\n \n;FOR-WINDOWS
FOR=FOR-FILES: "|"\n \n;FOR-FILES
FOR=FOR-PROCS: "|"\n \n;FOR-PROCS
Автор: mozers
Дата сообщения: 23.12.2008 11:05
Оторванный от инета ur4ltz через меня передает важную инфу:
Цитата:

Привет ALL!

При сборке редактора под VC6 столкнулся с тем что ЛИНКОВКА происходит с созданием отладочной информации хотя определение DEBUG не стояло. После изучения маке файлов выяснилось вот что.

scintilla.mak & scite.mak
LDFLAGS=-OPT:NOWIN98 -OPT:REF -LTCG -DEBUG
LDDEBUG=

scite_vc6.mak
LDFLAGS=-OPT:NOWIN98 -OPT:REF -DEBUG
LDDEBUG=

Ключь -DEBUG в LDDEBUG не определен. А вместо этого он определен в LDFLAGS.
А вот в scintilla_vc6.mak он не определен вовсе!

LDFLAGS=-OPT:NOWIN98 -OPT:REF
LDDEBUG=

Эта ошибка присутствует также и в оригинальной версии. IMHO это не порядок, предлагаю исправить это перенеся ключь -DEBUG в LDDEBUG.

LDDEBUG=-DEBUG

С уважением Андрей ur4ltz.
Очень прошу спецов высказаться по данному поводу.
Автор: kirillkr
Дата сообщения: 25.12.2008 15:14
А другие "темы" (значки панели инструментов) есть?
Автор: vladvro
Дата сообщения: 25.12.2008 15:46
kirillkr

Цитата:
А другие "темы" (значки панели инструментов) есть?

на данный момент в сборке есть три варианта:
http://code.google.com/p/scite-ru/wiki/SS_ToolBar_Customizing
Автор: DJ makrus
Дата сообщения: 25.12.2008 15:54
vladvro
Цитата:
И меня начинает смущать количество групп ключевых слов, надо бы четко опредлить сколько их требуется и для чего.
Если смотреть по последней сборке, то группы после keywords8.$(file.patterns.forth) можно пока (в целях наведения порядка) убрать (причем вместе с содержимым), я просил их добавить еще до того как ты мне на примере Lua:
Цитата:
хорошим примером реализации этой идеи представляет из себя конфиг для Луа:
--------------------------------------------------------------------------------------
...
# If you use only Lua 4, you can remove the lua5 keywords.
# If you use only Lua 5, you can either remove the lua4 keywords, or put them
# in another property to highlight them in a warning/error style.
# If you still use both, you can keep them like below, or use separate styles.

keywords2.$(file.patterns.lua)=$(keywordclass2.lua)
$(keywordclass2.lua4) $(keywordclass2.lua5)
keywords3.$(file.patterns.lua)=$(keywordclass3.lua4) $(keywordclass3.lua5)
keywords4.$(file.patterns.lua)=$(keywordclass4.lua4) $(keywordclass4.lua5)
объяснил как тоже самое сделать более элегантно и без добавления для этого специальных групп в лексер.
Цитата:
Это понятно, и с моей точки зрения правильно , не понятно как ДОЛЖНО быть?
Попробую изобразить в дефолтовой расцветке сборки (не знаю только как фон подсветить) :
Код: ' ;
: ;
[ DUP CALL, ]
[ EXECUTE IMMEDIATE

: КАТАЛОГ ( ->eol)
BL SKIP 1 PARSE 2DUP make-directory >R
item-icon @ ?DUP 0= IF ?associated-icon-from-a# ELSE PRESS PRESS THEN
R> :micon !
;
Автор: vladvro
Дата сообщения: 25.12.2008 16:06
DJ makrus

Цитата:
Попробую изобразить в дефолтовой расцветке сборки

О, совсем другое дело!
Намного понятнее, но остается вопрос с завершением определения, в текущей версии лексера, если на место IMMEDIATE поставить ] (так оно себя должно будет вести), то КАТАЛОГ не будет определением. Как быть?
Автор: DJ makrus
Дата сообщения: 25.12.2008 18:05
vladvro
Цитата:
то КАТАЛОГ не будет определением. Как быть?
Ага, об этом я забыл EXECUTE в данном случае завершает определение лексемы ";" (выполняя код по адресу оставленному на стеке в первой строчке этого кода), т.е. теоретически добавив EXECUTE в группу keywords8.$(file.patterns.forth) эта проблема решается, но наверняка порадит ее вдругих местах где используется EXECUTE...
Хочется еще взглянуть на пример который имел в виду VoidVolker, но я все больше склоняюсь к тому что бы этот случай решить "простым и действенным" способом..., однако группы по п. 1 и 3 все равно надо делать.
Автор: mozers
Дата сообщения: 25.12.2008 21:21
DJ makrus
Мне больше всего не нравится то, что твой nncron.abbrev можно использовать только с SciTE-Ru и только со скриптом.
Погляди новый abbrevlist.lua. Он позволяет сделать файл сокращений который можно с успехом использовать и с оригинальным SciTE и с SciTE-Ru. При этом все возможности старого abbrevlist.lua сохранены и приумножены
1й пункт требований выполняется в лучшем виде.
2й - если расшифровки похожи, то и аббревиатуры к ним надо делать похожими (но не одинаковыми!). Запоминать их не обязательно (новый скрипт и их позволит выбрать из списка - лишь бы они начинались одинаково, например FOR1, FOR2, FOR3,...).
Автор: DJ makrus
Дата сообщения: 26.12.2008 13:10
mozers
Цитата:
Мне больше всего не нравится то, что твой nncron.abbrev можно использовать только с SciTE-Ru и только со скриптом.
По поводу первого "только" - а разве мало фич в сборке которые:
а) делают сборку лучше оригинальной версии
б) используются и работаю только в ней
в) потом все-таки добавляются Нейлом в оригинальную версию
???
По поводу второго "только" - стоит добавить хотя бы в одну строчку однотипных сокращений специальную "вторую букву" и этот файл будет работать не только в SciTE-Ru , но не в этом дело..., я вот чесслово не могу понять для чего:
Цитата:
аббревиатуры к ним надо делать похожими (но не одинаковыми!)
единственное что мне приходит на ум - совместимость с оригинальной версией..., или же есть другая(ие) причина так делать?
Тебе и остальным конечно виднее, но я выскажу свое IMHO, для чего подстраиваться под оригинальную версию? Надо брать ее за основу, исправлять ее минусы и добавлять свои плюсы, тогда сборка будет отличаться не только именем и местоположением инсталятора, тогда Нейла будут теребить сделать в оригинальной версии как в SciTE-Ru (в которой работать удобнее)... мне всегда казалось что этот принцип и выдерживается..., зачем делать nncron.abbrev по тем же принципам (принципам, а не правилам/форматам) как файлы сокращений сделаны для других языков, для чего мне сидеть и придумывать - а какую мне цифру/букву добавить в сокращение вот для этой конструкции? Я их забил на одинаковые 3-4 буквы и забыл! Все! Не надо ничего ни придумывать и уж тем более вообще не надо ничего вспоминать!
Еще раз повторюсь, это не более чем IMHO я и не думаю настаивать что бы в сборке было так как мне удобно - упаси боже, сделаете - спасибо, мне меньше переделывать/заменять при апдейте, нет - ничего страшного, один файл заменить не трудно (тем более что его почти наверняка все равно менять прийдется). Все вышеизложенное по этому вопросу преследует одну цель - понять чем твой вариант лучше чем мною предложенный и все

Цитата:
Погляди новый abbrevlist.lua
Огромнейшее тебе спасибо! Здорово! Теперь вообще можно после первой же буквы выбирать нужный вариант
Автор: mozers
Дата сообщения: 26.12.2008 16:24
DJ makrus

Цитата:

Цитата: аббревиатуры к ним надо делать похожими (но не одинаковыми!)
единственное что мне приходит на ум - совместимость с оригинальной версией..., или же есть другая(ие) причина так делать?
Автор: vladvro
Дата сообщения: 26.12.2008 17:07
mozers, DJ makrus

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

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

DJ makrus

Цитата:
теоретически добавив EXECUTE в группу keywords8.$(file.patterns.forth) эта проблема решается, но наверняка порадит ее вдругих местах где используется EXECUTE

конечно порадит... простого решения похоже тут нет и у меня даже нет идей что можно с этим сделать.

Цитата:
однако группы по п. 1 и 3 все равно надо делать.

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

Добавлено:
DJ makrus
а IMMEDIATE может внутри определений присутствовать?


Добавлено:
DJ makrus, VoidVolker

Цитата:

Цитата: Вообще, у меня такая идея - сделать возможность использовать один лексер с несколькими файлами настроек языка. Чтобы можно было для разных фортов учитывать их особенности и не сваливать все в одну кучу в одном файле.
Так вроде и щас лексер можно использовать с разными файлами настроек
Автор: VoidVolker
Дата сообщения: 27.12.2008 21:12

Цитата:
Есть один простой и действенный выход для этих, подчеркну еще раз - редко встречающихся исключений, выносим код в отдельный файл и оттуда его импортируем с помщью, например, INCLUDED - все. Я полностью согласен с тем что редактор не должен влиять на выходной код, но, IMHO, этот редкий и несущественный минус ни в какое сравнение не идет с предоставляемыми


Цитата:
Хочется еще взглянуть на пример который имел в виду VoidVolker, но я все больше склоняюсь к тому что бы этот случай решить "простым и действенным" способом..., однако группы по п. 1 и 3 все равно надо делать.

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

Цитата:
1. Можно сделав копию forth.properties заполнить группы лексемами Кварка
2. Можно по аналогии с разными версиями Lua (см. выше) все лексемы и ANSI и SPF и quark'а поместить в одном файле разбив на группы легко подключаемые/отключаемые.
Предлагаю, пойти по п.2 для ANSI и SPF и quark'а и добавить еще наборы для подключаемых библиотек и для собственных лексем, т.е. будет как-то так:

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

Цитата:
если на место IMMEDIATE поставить ] (так оно себя должно будет вести), то КАТАЛОГ не будет определением. Как быть?

IMMEDIATE - делает последнее определенное слово словом немедленного исполнения. И к ] не имеет никакого отношения.

Цитата:
а IMMEDIATE может внутри определений присутствовать?

Внутри определений может быть абсолютно все что угодно(а вот IMMEDIATE обычно после определения пишется). Вообще, я свое мнение на счет [ ] высказал - форт позволяет слишком многое, чтобы пытаться отловить все его возможности совершенно другим инструментом/ЯП. Сколько групп не добавляй - все равно будет возможность сломать подсветку.

Автор: vladvro
Дата сообщения: 29.12.2008 13:03
VoidVolker

Цитата:
Вообще, я свое мнение на счет [ ] высказал - форт позволяет слишком многое, чтобы пытаться отловить все его возможности совершенно другим инструментом/ЯП. Сколько групп не добавляй - все равно будет возможность сломать подсветку.

Спорить не буду, сломать можно. Пусть каждый решает сам для себя, как ему удобнее, добавил новый параметр lexer.forth.no.interpretation, позволяющий отключить распозвание кода внутри [ ] как режима интерпретации, и все распознавать как для режима компиляции (ревизия 922).
Только вот проблему с подсветкой этого кода:
Код: ' ;
: ;
[ DUP
CALL, ]
[
EXECUTE IMMEDIATE

:
КАТАЛОГ
( ->eol)
BL SKIP 1 PARSE 2DUP make-directory >R
item-icon @ ?DUP 0= IF ?associated-icon-from-a# ELSE PRESS PRESS THEN
R>
:micon !
;
Автор: VoidVolker
Дата сообщения: 01.01.2009 23:20
vladvro

Цитата:
Пусть каждый решает сам для себя, как ему удобнее, добавил новый параметр lexer.forth.no.interpretation, позволяющий отключить распозвание кода внутри [ ] как режима интерпретации, и все распознавать как для режима компиляции (ревизия 922).

Отлично, предлагаю на этом и закрыть вопрос с подсветкой [ ].
А можно сделать подсветку вот таких определяющих слов:

Код: VARS var1 var2 var3 \ Комментарий
Автор: BioInfo
Дата сообщения: 09.01.2009 16:45
mozers

Цитата:
Какие весомые плюсы получат пользователи с одинаковыми аббревиатурами?

Именно для этого он (abbrevlist.lua) и был мной задуман. В новой версии данная способность убрана?
Автор: mozers
Дата сообщения: 09.01.2009 19:11
BioInfo
Цитата:
В новой версии данная способность убрана?
И сейчас можно задавать одинаковые аббревиатуры, только делать это крайне не рекомендуется по двум причинам:
1. Такой abbrev файл будет служить лишь примером того как нельзя составлять abbrev файлы для всех тех, у кого отсутствует скрипт.
2. Аналогичного эффекта (вывода всех вариантов расшифровки) но при этом не нарушая правил составления abbrev, теперь можно добиться просто добавив в конец одинаковых аббревиатур по одной буковке или циферке
Автор: BioInfo
Дата сообщения: 09.01.2009 21:51
mozers

Цитата:
1. Такой abbrev файл будет служить лишь примером того как нельзя составлять abbrev файлы для всех тех, у кого отсутствует скрипт.

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

Цитата:
Аналогичного эффекта (вывода всех вариантов расшифровки) но при этом не нарушая правил составления abbrev, теперь можно добиться просто добавив в конец одинаковых аббревиатур по одной буковке или циферке

Ясно, только это решение проблемы через другое место
Думаю, можно доработать скайт так, что если есть одинаковые значение до вылезает меню, как при работе скрипта - выбор из нескольких значений. Вот как мне кажется самое правильное решение. Выгода от одинаковых сокращений лично для меня очевидна (и по ходу не для меня одного). Могу этим занятся.
В моем понимании абривиатура - это не автодополнение, поэтому то что выпадают значения если добавить цифирку - это не верно, не правильно - сокращение - это сокращение. Если я хочу расшифровать абб - это не значит что я хочу расшифровать абба или абб9.
В идеале нужно конечно соединить вместе сокращения и автодополнение.
Автор: mozers
Дата сообщения: 10.01.2009 14:53
BioInfo
Цитата:
Только данные абревфайлы работают и для обычного скайте, там учитывается только последнее значение
Говоря иначе - задание одинаковых значений является ошибкой

Цитата:
Ясно, только это решение проблемы через другое место
Ясно что ты так и не попробовал новый скрипт
Да, с ним можно задавать и полностью одинаковые абревиатуры - список вариантов все равно будет возникать, но делать так крайне не рекомендуется. (Почему? - я ответил выше).

Цитата:
это не из-за того что аббревфайл не верно составлен, а из-за того что нет такой функции в скайте.
Выгода от одинаковых сокращений лично для меня очевидна (и по ходу не для меня одного). Могу этим занятся.
Новый скрипт позволяет использовать и "правильные" и "неправильные" abbrev-файлы. Вряд ли есть острая необходимость ковырять ядро редактора для наделения его способностью, которая нарушит принципы функционирования файлов сокращений и поэтому никогда не будет включена в официальную версию.
Тем более что никто об этом не просил, а "горящих" Issue накидано уже немало...
Автор: deadbead
Дата сообщения: 16.01.2009 09:02
Приветствую... Хочу добавить новый язык... язык похож на С++, поэтому cpp лексер вроде как подходит, но! Хотелось бы изменить пару моментов....
1. Добавить стиль к переменным $x (как в au3 лексере, например)
2. Отдельный стиль для некоторых зарезервированных переменных $var

Отсюда вопросы..
1. Можно ли добиться этого через properties файлы? (4 дня мучался - не получилось..)
2. Где найти инф. о том как сделать свой лексер? А то все поиски упираются в SciTEExternalLexer.html, где написано, что предполагается, что я знаю как делать лексеры....

Сори не в тот топик написал... перенес в Общие вопросы
Автор: Nekt
Дата сообщения: 18.01.2009 00:05
прально понял что в лине не компилятся ?
и за компанию где мона изменить $(SciteDefaultHome) ? или если нельзя изменить то где находится? в /usr/share/scite не канает.
Автор: mozers
Дата сообщения: 18.01.2009 17:36
Nekt

Цитата:
прально понял что в лине не компилятся ?
Неправильно.

Цитата:
и за компанию где мона изменить $(SciteDefaultHome) ?
Зачем? Все пользовательские настройки лежат в $(SciteUserHome)
SciTEGlobal.properties [строка 13] :
Код: # Установка каталога SciteUserHome для сохранения пользовательских данных
# (SciTEUser.properties, SciTE.session)
# Работает только в версии Ru-Board
scite.userhome=$(SciteDefaultHome)\home

Страницы: 1234567891011121314151617181920212223242526

Предыдущая тема: test


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.