Комментарии 50
А что с защитой? Тема крутая, топите дальше!
Похоже, тут переизобретают The Brain
Основная проблема с тегами — что после некоторого порога ты перестаешь помнить весь список и у одного документа получается тег 'лекция' а у другого 'учебные материалы'. Плюс сами по себе теги — должны быть иерархическими 'учебные материалы/лекция' и 'учебные материалы/задачник'
итд итп. Интерес представляет не красиво нарисованный граф (пользы от него довольно мало), а как решается проблема генерации и расстановки тегов.
Фишка нашей системы в том, что иерархию строит алгоритм и не нужно с ней запариваться.
А красивый граф (у нас он еще не допилен) позволяет найти «забытые» теги. Это возможно, т.к. после вычисления меры сходства «понятийно» связанные теги находятся ближе друг к другу. Т.е. рядом с тегом программирование на графе будут располагаться «С++», «php» и «java». А «UX» будет чуть вдалеке и тяготеть еще и к тегу «Дизайн».
Если залить много документов (как у меня), прослеживается четкая кластеризация графа по областям интереса и навигацию можно производить уже по нему.
Похоже, тут переизобретают The Brain
Не думал, что они еще живы. Когда-то пробовал этим пользоваться, но вау-эффект связей и анимации был сильнее, чем реальная польза и удобство. Чем-то похоже на интерфейсы компьютерах в околофанатстических фильмах.
И мне чёт не удалось найти сведения о лицензии на клиентское ПО…
А идея замечательная, и неплохо, что довели до какого-то релиза.
Вот только совершенно не понимаю решение о переходе от десктопного приложения к веб-расширению. Лично я не раз думал о том, чтобы наворотить себе подобную систему под собственные хотелки, и, думая о фичах и сложностях реализации, представлял её с нативной программой в основе.
![image](https://habrastorage.org/getpro/habr/comment_images/7c3/af6/32c/7c3af632c0d18db1ae6f0cfc24df4c69.jpg)
Если продолжать идею нативных приложений с возможностью работы offline — то тогда еще и серверную компоненту, которую можно поставить к себе, и соответственно возможность везде указать свой адрес синхронизации. А для монетизации — вечную лицензию на серверную компоненту, или подписку на услугу синхронизации через родной сервис.
Сервисов синхронизации файлов — уже целая пачка. Разумным предположением будет, что папку с данными пользователь как-нибудь при помощи их синхронизирует. И писать приложение, которое этот процесс понимает и не ломатется при использовании такой внешней синхронизации.
Ближайший схожий пример — сервис-заметочник Leanote. Тоже куча нативных приложений, включая расширения, а сервис синхронизации можно как встроенный использовать, так и свой установить.
Сейчас на сайте представлены расширения для браузера. Не проверял где они хранят данные физически, но полагаю в где то каталоге пользователя в браузере. Синхронизировать сторонними решениями его целиком, особенно для разных браузеров — вряд ли возможно.
Вот это расширение и должно хранить данные не где-то, а использовать популярные API для файлов. Смотри, например, draw.io. При необходимости открывает файл прямо с Google Drive. One Drive, локальный файл.
Сейчас обкатываем саму концепцию и технические решения на web-закладках, т.к. с ними проще. Вопрос надежности частично решается наличием у нас импорта/экспорта. Даже, если не взлетит, разошлем письма и пользователи смогут перетащить свои закладки в другие приложения.
Так, ну хорошо, вы переизбрели semantic web. Отлично.
И даже хватило терпения протолкнуть среди живых людей. Вообще красота (это правда).
То, что только через веб — это тоже понятно, виндовс эксплорер не умеет в многомерные критерии отбора (проект Microsoft WinFS так и не взлетел).
Внимание — вопрос: как из (например) GrandSmeta открыть файл сметы прямо из этого мегахранилища?
Так, чтобы потом нажал ^S (или дискетку) — и ушел домой спокойный.
Берем такие: Файл — Открыть (или, в большинстве случаев, "Открыть недавние") — и?..
И да — повторить эксперимент с Linux и macOS.
В графическом и текстовом режиме (командную строку для тотальной обработки файлов никто не отменял).
В общем, если брать пример с книгами, то наверное базовая иерархия все-же нужна, но и теги нужны тоже. Например, «Программирование» и «Qt» это не равноправные теги: «программирование» однозначно тег верхнего уровня, «Qt» — вложенный тег (причем между ними еще должен быть тег «C++»). Однако часто бывают ситуации когда теги действительно равноправны. Наиболее очевидный пример — статьи со сравнением двух технологий. Также — некая взаимосвязь технологий (когда одна используется для другой). Книги по программированию микроконтроллеров относятся одинаково и к программированию на конкретном языке (скажем Си), и к микроконтроллерам конкретного типа. Книги по программированию под некую ОС (Windows, Linux) — одинаково к программированию на языке (скажем С++) и программированию под ОС.
Проблема еще в современных файловых системах. Они совсем не базы данных. Хотя где-то там, внутри, у них есть какие-то дополнительные возможности типа хардлинков, симлинков и файловых потоков, этого все равно недостаточно. Но некоторые задачи можно решить с их помощью. От иерархической файловой системы все равно никуда не деться, и поддерживать на диске порядок в виде документов, сгруппированных в иерархической системе папок — это правильно. В Либгене например имена книг — это просто md5 хеши, все файлы лежат в куче, и найти что-то без софта просто невозможно. ИМХО, это не есть хорошо, это просто снижает надежность системы — если софт или база сломается, то найти что-либо не удастся в принципе (и вот кстати отличный пример применения файловых потоков или расширенных атрибутов — все хеши должны храниться именно там, а не в имени файла; также как и вся метаинформация типа автора, года издания и языка).
Ну и есть еще множество аспектов, тут надо целую статью писать, в комментарий не влезет. Сейчас, вспоминая свои заметки по этому вопросу, я отмечу лишь мысль о необходимости объединения подходов с иерархией и с тегами.
Базовая иерархия нужна — у каждого документа есть базовое место в ФС («главный тег»);
Если у документа два равноправных места в ФС, то применяется хардлинк;
Также у документа есть теги, позволяющие более точно описать документ, построить граф связей, определить место документа в поисковой выдаче и т.д.
Иерархический список документов, быстрый поиск, создание таблиц и картинок, функция резервного копирования, всплывающие подсказки трех типов (это уникальная функция приложения, чтобы переходить по документам внутри приложения, без создания ссылок). Имеется журнал (последние 50 измененных документов).
Выложил проект на github.
Документы хранятся в одном файле (база SQLite)
Пользуюсь несколько лет. Тестировал на больших базах (около 2Гб), поиск работает шустро.
![](https://habrastorage.org/webt/ax/ph/wh/axphwh5_cj7sc8dinne1bl_zrj0.png)
Было пожелание добавить офлайн браузер, чтобы пользователь указал ссылку и в документе сохранялся скриншот.
А как в вашем случае работает поиск: только по тэгам, по словам или по части слова по всем документам?
Есть тестовый аккаунт?
Вы можете без проблем зарегистрироваться. Это займет не более 20 секунд (подтверждение e-mail не требуется).
Будем признательны за дельную критику и советы.
Ребят, если не секрет, а зачем вам OpenStack для ТРЁХ серверов и одного "проекта"?
Это для инвесторов вкусные слова или действительно есть технологический профит?
Самое сложное оказалось не сделать, а:
1 Первоначально разложить все что накоплено по полочкам.
2 Правильно все декомпозировать
3 Создать набор тегов
Но из всего задуманного реально используется 10% так как пользователи просто не могут все делать правильно и либо должна быть отдельная команада которая за этим будет следить или использвать только важный минимум.
Какую проблему решает сервис? Документ и закладка это разные слова и смыслы.
Есть дерево, оффлайн, тэги. Нет синхронизации, файлов, android.
Посматриваю на MyTetra и Joplin.
Единственное — индексации приложенных файлов нету вроде, и непонятно как оно с большим количество данных работает
— иерархические записные книжки:
— Mars Notebook (https://mars-soft.net/mars-notebook/)
— MyNotesKeeper (http://www.mynoteskeeper.com), аналогично предыдущему, + в базе может быть несколько деревьев документов
— база книг:
— Calibre (https://calibre-ebook.com), ну его уж все наверно знают, аналогов просто нет
Сначала пытался пользоваться тэгами, но быстро пришел к выводу, что это неудобно. Во первых, тэг от книги Достоевского и тэг от техдокументации суть разные вещи. Бесполезно связывать их в одном облаке или графе.
Зато возможность создания коллекций, когда один документ может входить в несколько папок и полноценный текстовый поиск, почти полностью перекрывают необходимый функционал.
Ну и, для файлов типа даташитов, совершенно нет необходимости какого либо тегирования — достаточно раскидывать их по папкам производителей, с последующим натравливанием чего-то типа Архивариуса или Recoll.
Что касается облачных сервисов, то без локального кэширующего клиента не обойтись, т.к. должна работать функция «открыть последний документ», «открыть в другом окне» и прочее. Кроме того, некоторые документы связаны между собой и должны храниться в одном каталоге, а с этим у облачных сервисов совсем плохо.
Хорошие технологии, где накопали? На главной в разделе «что это»
p.s. по ссылке из расширения которая сверху стрелочка переходит на версию "/en/profile" хотя мой язык русский.
p.p.s. Поиск по документам в Расширении — где? Или оно только для «создать документ»?
Я открыл чистую вкладку в браузере, хочу найти документ(ссылку) по тэгам, куда его вписывать? Нужно поле Поиск, мне кажется.
p.p.p.s. Нашел ограничение отображаемых документов в списке в «default/storage», там где тэги не выбраны. Сортировка справа «по имени обратная» с буквы Я до буквы С только вижу. «по имени прямая» с буквы A до буквы C. Непорядочек, как искать?
Так же при импорте закладок из Хрома не прописались тэги по имени сайта, есть множество закладок с сайта E1.ru допустим, почему бы не сделать такой тэг?
1.
Еще сделал запрос на восстановление пароля, пока не пришло. Вручную отправляете?Посмотрите, может, в спам попало? Должно прийти.
2.
по ссылке из расширения которая сверху стрелочка переходит на версию "/en/profile" хотя мой язык русский.
Спасибо, за bagreport. Добавили задачу. Исправим.
3.
Поиск по документам в Расширении — где?
В текущем плагине строка с тегами, используется и для сохранения и для поиска. Да, возможно, не самое изящное решение. Нашли нормальных UХ-дизайнеров будем переделывать.
4.
Нашел ограничение отображаемых документов в списке в «default/storage», там где тэги не выбраныИдея была в том, что почти никто не крутит в самый низ. Как пример, сделайте в гугле поиск по слову C++. Он выдаст, что нашел несколько миллионов страниц. Попробуйте, найти последнюю. Мне это тоже не нравится.
У нас сделаем ленивую загрузку, но задача не высокоприоритетная.
5.
Так же при импорте закладок из Хрома не прописались тэги по имени сайта, есть множество закладок с сайта E1.ru допустим, почему бы не сделать такой тэг?
Спасибо. Добавили задачу. Исправим.
Хорошие технологии, где накопали? На главной в разделе «что это»
Изначально сайт делался для offline приложения, потом сосредоточились на web версии. В процессе забыли выпилить этот текст. Спасибо.
В поисках идеального хранилища документов