ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
20 мая
93000
Evgeny_CD (01.07.2007 17:50, просмотров: 3423)
Правильная оболочка для работы с информацией, или почему я еще не сделал свой сайт. Пиплы, это мой один из последних больших постов, я более не буду отнимать у Вас время. За последние 3 года у меня скопилось немало: * знаний * идей * информации по разработке embedded систем. Этого хватит на сайт, книгу, курс лекций в моем любимом Физтехе, и еще останется. Меня распирает от желания поделиться этим с миром. Все это живет в виде кучи файлов, http://www.treepad.com файлов, иерархической системы директорий умеренной степени разумности, и, главное, индекса ко всему этому богатству в моей башке. Я не спешу все это приводить к единому стилю, потому что не сумел найти удовлетворяющую меня систему управления информацией. Итак, что же я хочу? ** логическое проектироание, а не VIYSYWG (идеи LaTeX, XML мне очень близки). ** быстрый просмотр в графическом режиме (смотреть, но не редактировать!) ** выделение блоков информации, и задание их характеристик ** работа с _любой_ информацией ** работа с _разными представлениями_ информации, в частности:
        PDF
        HTML
        графика с линками (подробности ниже)
** система полуавтоматиеского выстраивания связей между всеми сущностями. Рассмотрим все по порядку. Мне сильно импонирует LaTeX, но: * не unicode - я не хочу иметь грабли с кодировками!!! * не XML * 30 лет технологии - оно хорошо и никуда не денется, но хочется чего-то более продвинутого В LaTeX меня бесит сложность создания контекстной хелповой системы. Т.е.:
что даелаем?
        вводим блок текста
                свойства
                        заголовок
                        уровень 
                        связи с другими блоками
                        стиль
                        т.д.
Я не собираюсь учить 1к ключевых слов латеха и его популяных пакетов расширения! Мне нужна система интеллектуальной подсказки, что _можно_ сделать в этом месте. Листбокс с 1к слов мне тоже нах не нужен. XML мне импонирует потому, что что там есть DTD, а ее средствами такую иерархическую систему можно закодить стандартными способами. Есть еще docbook, XML шняга, вроде хорошая, но не разобрался до конца. http://www.docbook.org RST http://docutils.sourceforge.net/rst.html - мало возможностей. Обязательно должна быть возможность вставлять в текст скрипты. Типа вот в этом месте вызвать прогу, прочитать ее вывод, и всунуть его сюда таким-то стилем. Система должна быть по минимуму зависимы от всего на свете, в частности от: * редакторов * JAVA - долбаная джава, я всегда чувствую, когда у меня на машине стартует VM джавы. Но все XML ее страшно любит * языков программирования. В качестве базовых языков каркаса такой системы меня бы устроили: * python * lua * RUBY Простые c- подобные языки в качестве каркаса не устраивают. Система должна автоматически генерировать разные представления информации со всеми ссылками, индексам и пр. http://www.tug.org/applications/pdftex - вроде как должно помочь, но на тех завязано... http://www.tug.org …/pdftex/gentlesgml.pdf - это жалкое подобие того, что я хочу получить! Мне импонирует логическая структура Texinfo: блок информации - это узел в графе, но оно опять же на латех завязано http://www.gnu.org …exinfo/manual/texinfo/ Особенно мне не хватает автоматизации работы с графикой. Написал текст. Разбил на куски. Названия, связи и пр. Вызвал тулзу для построения графов. Она взяла названия сущностей и их связи, построила граф. Я его могу всунуть в любой редактор. НО!!!! Я хочу следующее. Прежде, чем прочесть главу, чувак видит граф ее логической структуры. Нажал на узел - перешел к пункту. Прочитал. Пошел, например, назад к графу и выбрал другой пункт. Линейное чтение - это парсинг текста могзами!!!! Мозги даны человеку для другого. Структурное программирование, так сказать. ООП по полной программе. Есть пункт. У него:
* список литературы
* индекс
* термины и определения
Есть диссертация :))
книга
        раздел
                глава
                        пункт
У каждого свой собственный набор указанных выше сущностей. Читатель может работать как с отдельной главой, и у него все необходимое под рукой (просто чтобы не охренел от 1000 стр. фолианта - психология при восприятии информации стоит на первом месте!!!), так разделом и т.д. Все это как-то автоматически кучкуется, сортируется и пр. Упрощенная система перевода на другие языки. Все, что написано на каком-то человеческом языке, (непереводимые термины помечаются отдельно!) имеет теги типа <rus>, например. Тогда берется переводчик - силиконовый или углеродный :)) - машина или чел - и он тупо переводит эти блоки, не задумываясь про форматирование и прочий стафф. Смарт-линки. Если я ввел термин, то везде в тексте на него стит линк особого класса (например, невидимый - лишние выделения страшно раздражают!!!) Если чувак не понимает, что за слово - он тыкается в него, и, быть может, ему повезет :)) При генерации линков учитываются словоформы. Все должно быть многоплатформенным. Если честно, у меня в последнее время, после продумывания идеологии синтетических портов, поселилась навязчивая идея - сеть на какой-нибудь виртуализатор ОСи. Пусть выни, линухи, фряхи и маки живут своей половой жизнью. Я не против. Но!!! Для своих разработок я хочу иметь обобщенную модель ОСи. Пусть она будет ограниченной по сравнению с нативными приложениями для ОСи. Но она должна давать мне гарантированный сервис на все платформах!!! И я хочу зучать только эту прослойку. Во всем остальном я хочу быть юзером в Осях. т.е. пользоваться их мышкасто-понтярными приблудами, и там должна быть кнопочка запуска профессиональной среды. Нажал ее - и я в своем мире. Все остальное пусть идет нах. В этом плане я поклонник DOT _идеологии_, но не реализации. Ресурсоемкость меня волнует слабо (если у Вас нет 1Г памяти и 2Г проца на машине - Вы чем-то не тем в жизни заняты), но! хочу, чтобы ресурсы тратились разумно - у меня есть для них применение... Самое разумное - это использование технологий типа http://www.gnu.org/software/lightning/. Естественно, такая кросс-платформенная тулза должна быть полностью открыта!!!! Я отвлекся. Я не собираюсь делать все сразу. На самом деле, я уже почти придумал, как решить все проблемы, кроме генерации картинок с ссылками. Если кто-то еще не забыл, с чего я начал, то продолжу. Все это я придумывал три года. Дохрена. Но придумал. Как может заметить внимательный читатель, я привел ссылки на технологии, которые позволяют сделать все задуманное мною (и гораздо больше!!!) уже сейчас. Без гениальных изобретений. Но! Я хочу не просто сделать, а делать это максимально быстро и эффективно! Да, я могу родить PDF c любыми ссылками, но 50% времени проекта я потрачу на построение этих ссылок. Потом они отъедут, и я повешусь. Я переименую название пункта. И буду руками переименовывать его в скрипте для генерации графа. Или забуду переименовать, и читать справедливо скажет, что мое творение - гавно. Он будет прав на 100%! Я ленив. Лень - двигатель прогресса. Я хочу построить такую систему раз и навсегда. И не переделывать ее _каркас_, хотя реализации будут переделываться постоянно!!!! Пока я понял следующее: * без тегов в текстовом описании не обойтись. Точка! * нужен внешний "информатизатор", в котором живет информация о структуре информационного массива, всех тегах и связях, но сам он не является редактором, компилятором и т.д. * для работы с разными видами контента надо использовать уже разработанные тулзы и не городить огород. Не нужно переписывать редактор на своем любмом языке программирования - их (редакторов) и так уже больше, чем надо!!! Я пока склоняюсь к мысле о следующей технологии: * пишем изначально в XML. Например, в docbook, чтобы не изобретать все изначально с нуля - это типа С level. * конвертируем в LateX тулзами типа http://dblatex.sourceforge.net, http://db2latex.sourceforge.net - это типа asm level * картинки с графами и прочий аналогичнй стафф делаем пакетами для для латеха, "отскриптованным" при помощи питона, или в нативных командах этих пакетов - это типа "асмовые вставки" * получившуюся кучку "асма" копилим в PDF http://www.tug.org/applications/pdftex/ Хотя... честно говоря, думаю насчет и чистого латеха. Точнее, некоторой надстройки над ним. Чтобы не чистый XML, но своя система тегов была. Я буду изучать Leo http://webpages.ch …t/edreamleo/front.html и Literate Programming http://www.literateprogramming.com (Хотя в CWEB, например, я начал уже сомневаться - накой мне такая документация? Без единого линка - мрак! Я уж лучше по исходничку погуляю... http://www.literat …ogramming.com/math.pdf http://www.literat …ming.com/adventure.pdf) Но - может, еще что есть?