Новая эра личных баз знаний
От: velkin Удмуртия https://kisa.biz
Дата: 14.01.22 11:51
Оценка: 9 (3) +1 :))) :)

Кто не успел, тот опоздал


— Почему вы опоздали на работу?
— Потому что поздно вышел из дома.
— А почему вы не вышли раньше?
— Уже поздно было выходить раньше.


Анекдот как раз про личную базу знаний. Говорят, что учиться никогда не поздно, но чем позже заведена личная база знаний, тем меньше пользы от учёбы.

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

Виды носителей знаний


1) Внутренний (мозг).
2) Внешний (книга, электроника).



Личная база знаний одного человека может стать внешним источником знаний других людей, наглядный пример книги или статьи. Однако подобный внешний источник не меняется или меняется в зависимости от других людей.

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

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

Решение же крайне простое, начать вести личную базу знаний.

Виды внешних носителей


Существует огромное количество внешних носителей, начиная от древних и заканчивая самыми современными. Но так ли они хороши как их малюют.

Бумажный носитель


Использование бумажных листов старый и довольно простой способ записи. До сих пор используется в обучающих учреждениях.



Внешние носители


1) Бумажная тетрадь.
2) Бумажный чертёж.
3) Бумажный блокнот.

Инструменты записи


1) Карандаш.
2) Ручка.
3) Кисть.

Вспомогательные инструменты


1) Линейка.
2) Угольник.
3) Транспортир.

Преимущества


1) Легко начать вести.
2) Нет ограничений по формату.

Недостатки


1) Сложно изменять написанное.
2) Большой физический объём и вес носителя.
3) Нет возможности полнотекстового поиска.

Компьютерный файл


Уже не новый, но постоянно совершенствуемый способ записи знаний. Современный носитель вмещающий огромную библиотеку книг может быть столь мал, что его можно случайно потерять.



Внешние носители


1) Компьютер (десктоп, ноутбук, сервер, смартфон).
2) Диски (флешки, ssd, hdd).

Разделение в данном случае было по носителю с обработчиком информации и без. Это подобно бумаге, даже если она и есть, без инструментов записи ничего не запишешь.

Преимущества


1) Позволяет сохранять огромные объёмы знаний.
2) Вес и объём носителя может быть предельно снижен.
3) Есть возможности полнотекстового поиска

Недостатки


1) Невозможно управлять информацией без обработчика.
2) Есть ограничения по форматам записи.

Форматы записи знаний


Форматы записи и носители знаний это не одно и тоже. Хотя в каждом виде носителя знаний записи происходят по-разному, формат это не только то, что записываешь, но и что потом видишь.

Оформленный текст


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

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



Чертёж


Чертёж в отличие от текста позволяет создать контуры реальных объектов в ином масштабе. Хотя текст так же может на нём присутствовать. В русском языке чертёж характеризуется ключевым словом черта, что обозначает основной используемый элемент, тогда как текст вторичен.

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



Карта разума


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

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



Диаграммы и схемы


Вопрос в том, что понимать под диаграммами. Обычно под этим принято понимать различные графики, круговые диаграммы и прочее. Но в некоторых случаях под этим понимают форматы схем, вроде ER-диаграммы, UML.

Числовые диаграммы


Схематические диаграммы


Неудачные решения


И вот вы наконец решились завести личную базу знаний. Давайте рассмотрим возможные проблемы, с которыми придётся столкнуться

Бумажная тетрадь


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

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



Персональный информационный менеджер


Персональный информационный менеджер или ПИМ (англ. PIM) это подвид персонального органайзера только на компьютере. Это могут быть такие программы как Zim и прочие, список огромен.



Способы записи


На пимах в основном бывают два вида записи знаний.

1) Файлы в особом формате.
2) Записи в базе данных.

Проблемы с базами данных


С одной стороны в базе данных всё может храниться во дном месте. Но с другой стороны у баз данных есть неожиданные сюрпризы.

1) Такие как порча базы данных, а значит потеря всех данных.
2) Или по мере заполнения базы данных замедление работы вплоть до жутких тормозов.

Проблемы с файлами


С файлами тоже возникают проблемы.

1) Конечно же это поиск по файлам даже имея автоматическое индексирование.
2) С файлами часто нужен специализированный редактор, который может оказаться тормознутым.
С базами данных специализированный редактор тоже нужен, но там понятно для чего, то есть для работы с базой данных, а здесь нет.

Генератор документации


Другой случай это различные генераторы документации из других форматов. Как правило генерация происходит в html, хотя могут быть и другие форматы. Гораздо реже встречаются редакторы, которые позволяют просматривать набранное в реальном времени. К тому же скорее всего они тоже сначала генерируют html, а потом уже показывают содержимое.

К ним относятся языки разметки Markdown, AsciiDoc, тот же Doxygen и многие другие. Пользователи того же GitHub очень радуются "Markdown" не подозревая, что на русский это переводится как "Разметка дауна".



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

Лучшие практики


И вот мы подходим к лучшим практиками известным мне на данный момент. По сути чуть ли не вся документация в GNU/Linux сделана по этому методу, но у меня есть несколько важных отличий. Более того, я пришёл к этой форме записи сначала перепробовав иные варианты и потом уже понял, что лишь повторил то, что и так давно существовало.

Предварительная подготовка


1) Создайте папку с личной базой знаний, можете назвать как угодно. Но давайте чисто для примера будем её звать "doc".

2) Внутри папки создайте файл.
index.html

3) В этой же папке создайте тематические файлы того, что вас интересует.
cpp.html
git.html
lua.html
qt5.html

4) Можно ещё создать файл стилей.
style.css

5) А так же файл иконки.
favicon.ico

А теперь вопросы.


Сколько занимает обычная книга в html формате?


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

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

Сколько книг вы сможете написать за всю жизнь?


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

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

Быстро ли браузер отображает книгу в html формате?


Да, очень быстро. А на вопрос, почему тогда на сайтах одна книга поделена на маленькие странички ответ довольно прост. Сервер вынужден обслуживать множество клиентов. Клиент запросив информацию даже не факт, что будет её использовать, а вот обновлять страницу может сколько угодно.

Таким образом с локального диска наиболее приемлемый вариант чтение всей книги, потому что это попросту удобно, в том числе и поиск по тексту. А при обслуживании множества клиентов это не выгодно так как тратит лишние ресурсы сервера.

Основная идея


Главная идея состоит в том, чтобы разделить огромные пласты информации на темы в виде html страниц размером с книгу, а для перемещения по ним использовать индексную страницу index.html. Внутри страниц можно ориентироваться пользуясь обычным текстовым поиском.

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

А ещё нужно понимать, что браузеры вылизывают для сверх быстрой обработки html и css. Для какого ещё формата языка разметки будут такое делать. Обычно и не делают, плюс html можно открывать везде, на ноутбуке или смартфоне, и с любого места, с локального диска или того же личного сервера.

Отброшенные идеи


Складывать html страницы в разные папки


1) По ним слишком сложно перемещаться в файловой системе.
2) Пути ссылок получаются слишком сложными ("../../../").

Разбивать книжные html страницы на множество мелких статей


1) Нужно усложнять хранение в файловой системе или вместо 10 страниц написать 1000.
2) Нельзя просто взять и использовать текстовый поиск в редакторе по теме.

Детали реализации


index.html


1) В качестве отступов используется табуляция. Редактор kate мне её показывает, потому это удобно.
2) Заголовок может быть любым. В данном примере буду использовать слово "Документация".
3) Используется порезанный реальный пример оглавления. Хотя всё может измениться много раз.

<!DOCTYPE html>
<html lang="ru">
    <head>
        <meta charset="utf-8">
        <title>Документация</title>
        <link rel="stylesheet" type="text/css" href="style.css">
        <link rel="shortcut icon" type="image/ico" href="favicon.ico">
    </head>
    <body>

<h1>Документация</h1>

<h2>Программирование</h2>
<ul>
    <li>
        <h3>Языки</h3>
        <ol>
            <li>
                Компилируемые
                <ol>
                    <li><a id="toc-cpp" href="cpp.html">C++</a></li>
                </ol>
        </ol>
    </li>
</ul>

    </body>
</html>


cpp.html


1) По сути тоже самое, что и в предыдущем примере, только с заменой "Документация" на "Язык программирования C++".
2) Плюс обратная ссылка на ссылку на эту страницу в index.html.

<!DOCTYPE html>
<html lang="ru">
    <head>
        <meta charset="utf-8">
        <title>Язык программирования C++</title>
        <link rel="stylesheet" type="text/css" href="style.css">
        <link rel="shortcut icon" type="image/ico" href="favicon.ico">
    </head>
    <body>

<h1><a href="index.html#toc-cpp">Язык программирования C++</a></h1>

    </body>
</html>


Что дальше


А дальше идут хитро сделанные оглавления, которые позволяют в пару кликов перемещаться по темам. Особое оформление изображений и прочее, прочее, прочее. Поскольку документации написано мало, и она ещё меняется, не буду приводить это в пример. Здесь главное заложенная мысль про то, что личную базу знаний можно создавать в виде сайта набранного вручную.

Эпилог


На этом пожалуй и закончим введение в личные базы знаний. И закончить я хочу с того же, с чего и начал. Кто не успел, тот опоздал. Лично я опоздал. Вопрос теперь в том нужно ли выходить на работу с опозданием или вообще не приходить. Ведь сотрудник, который опоздал ещё не так плох, как полный прогульщик.
Отредактировано 14.01.2022 12:04 velkin . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.