---------------------------------------------------------------
 Конспект для выступления 17 сентября 1999 на конференции
 "IREX". "Интернет-технологии для образования" (?)
---------------------------------------------------------------



Проект "Библиотека Максима Мошкова" [email protected] http://lib.ru/ Аналогичные технологии: Gazeta.Nu (архив Gazeta.Ru) Lenta.Ru

Книгу - в массы. Читатели сами знают, чего им нужно Интернет, как об'единитель читательского клуба Писатели - "за" Читатели - "за" Издатели - "сомневаются" Принцип Тома Сойера Принцип Насреддина Невозможно деньгами - возьмем личным трудом Минимальные затраты на подготовку текста: Скорость сканера 2 страницы / 40 секунд 3-6 часов на книгу. Форматирование, оформление - 0.5-5 часов Spellcheck 3-6 часов Вычитка 6-12 часов Итого 1 книга - 0.5-3 рабочих дня Себестоимость подготовки 10000 томов: до 500,000$ (при удовлетворительном уровне качества) Обход: Предоставление текста в электронной форме. Машинно-сканировочные фабрики. 1. Интерфейс пользователя. Гипертекст - лучше ничего не придумано. Поэтому - интернет/интранет технология: Netscape, Explorer, веб-сервер. 2. Предварительная разметка документов. HTML нефункционален! Необходим внутренний формат хранения (SGML) Конверторы SGML --> HTML Например - cgi - с прямым "под'емом дерева файлов в html" Или по базе данных. Максимальная простота хранения. Документ должен лежать в файле. Максимум, для чего можно держать базу - оглавления и учетные карточки документов - чтоб стрить по ним альтернативные рубрикаторы 3. Поиск. Поиск по оглавлению и рубрикатору - можно делать тупым сканом. размер индексируемого оглавления 1-10 Мб. База - НЕ НУЖНА! Полнотекстовый поиск. Glimpse <= 500 Мб HtDig ??? Yandex Site 1Мб бесплатно. 1000Мб - порядка 5000$ 1. Процессор - некритичен, все упирается в толщину IP-канала и число посетителей. Вычислительная не требуется. IBM PC - лучший выбор. 1. Большая память 2. Очень большая память 3. Диск SCSI 2. Операционная система: Windows NT - требует наличия квалифицированного администратора, ненадежна при долговременной работе и в standalone-режиме. Общая оценка: удовлетворительно Linux - желательно наличие программиста. Не очень принципиальные проблемы с производительностью (около 25% в "-"). Наибольшее количество поддерживаемого софта. Общая оценка: хорошо FreeBSD - как Linux, без проблем с производительностью Общая оценка: отлично Прочие Unix - тот же Линукс, вид сбоку. Общая оценка: "хорошо с минусом" 3. Софт: Russ-Apache (55% рынка), PHP, Perl, C, MySQL, Postgress. Из расчета 20,000 человек в день, по 5-20 page-запросов на визит 200,000 page-запросов, 1-4Млн file-запросов (графика) 20Gb исходящего трафика Время обслуживания одного запроса: (P5-330) html-request 1/30-1/100 сек C-cgi 1/15-1/50 сек perl-cgi 200Кб perl-кода в секунду Образование очереди (завал) perl-cgi - после 5 запросов в секунду (200,000 запросов в день) html - после 100 запросов в секунду. Узкие места: Число httpd-клиентов 256 -- 150,000 в день Число процессов RAM 1Мб на единовременный запрос. Мораль: 512Мб желательно. Область оптимизации - избавление от cgi, mod-perl Word-* masdie RTF - может жить, но нежелателен. Неформализуем полнотекстовый поиск ВИРУСЫ! Приемлемые форматы HTML txt Предварительно форматированный SGML или его аналоги Типичный каталог библиотеки В тексте могут быть выделены заголовки глав ^TЗаголовок выделяется символами Ctrl-T Ctrl-U^U ^Tи Заголовок должен иметь отступ 8 символов^U ^T * ЗАГОЛОВОК СТАРШЕГО УРОВНЯ выделяется "Ctrl-T *" и "* Ctrl-U" * ^U ^Tи тоже должен иметь отступ 8 символов^U Заголовок в первой строке считается названием всего документа. Итак примерная структура текстового файла: --------------------------------------------------------------- ^TФамилия Автора. Название документа^U Произвольный текст В тексте могут присутствовать html-таги. Они воспринимаются "as is" ^TЗаглавие главы^U Произвольный текст Произвольный текст... ^TЗаглавие главы^U Произвольный текст Произвольный текст... .... --------------------------------------------------------------- В каждом каталоге лежит файл .dir с оглавлением, все файлы подписаны примерно так: --------------------------------------------------------------- В первой строке название каталога ^TС 8-й позиции выделяется заголовок подраздела^U Произвольный текст В тексте могут присутствовать html-таги. Они воспринимаются "as is" Название текста лежащего в файле ()| filename.txt Название нежележащей директории ()| dirname/ Указатель на ftp-линк | ftp://host/location Указатель на www-линк | http://host/location.html . . . И так далее. Чтоб добавить в библиотеку новый документ достаточно положить в подходящий каталог файл, и в писать в .dir-оглавление строчку вида Название нового текста ()| newfilename.txt --------------------------------------------------------------- Любой документ в библиотеке запрашивается сквозь cgi-скрипт "html-KOI" Он перекодирует файл в соответствующую кодировку русских букв и переводит чисто-текстовые файлы в html-ные - на лету. http://www.lib-server.ru/cgi-bin/html-KOI/otnositelnoe/imya/documenta.txt Все остальные преобразования документа, весь дополнительный сервис и html-изация выполняется скриптом При выдаче текстового файла заголовки глав автоматически раскручиваются в html-таги h3 - /h3 При запросе имени директории скрипт берет лежащий в ней .dir-файл и генерирует из него оглавление в формате index.html В начале помещается стандартный заголовок со служебными линками "Encoding", "What-s-new", "Mirrors" В конце - стандартный хвостовик "Home", "Mail", "Hosted-by" Строчки, в которых встречается символ "|" (ASCII 201) (Вида: Название нового текста | newfilename.txt) разворачиваются в "A HREF" линки. В зависимости от расширения имени файла подставляется иконка. Если в оглавлении имя файла указано символами "()|" (Вида: название текста ()| newfilename.txt ) то справа проставляется еще размер и разноцветное время модификации файла. Для текстового файла иконка перед именем указывает на служебный линк "Contents" - оглавление автоматически собирается из имеющихся в тексте заголовков "________^T ... ^U"

Популярность: 1, Last-modified: Tue, 21 Sep 1999 05:52:18 GmT