История началась с того, что нужна была портативная программа для хранения накопленных знаний (копий статей из интернета, ссылки на статьи, SQL-запросы, программный код, пароли и т.д.), с возможностью быстрого поиска и редактирования документов. За основу интерфейса FAQ.Net был взят интерфейс из CHM-формата (файл справки или руководство о программе).
Так как я специализируюсь на базах данных, то решил все документы хранить в БД, используя встроенную СУБД — SQLite. Создал таблицы и написал интерфейс для работы с БД.
Многие программисты до сих пор создают заметки в текстовых документах, сохраняя их на компьютере и со временем теряют их местонахождение. Теперь, с помощью FAQ.Net все накопившиеся документы, можно хранить в одном месте, не опасаясь за их утрату.
В приложении FAQ.Net имеется возможность резервного копирования БД.
Я уже много лет пользуюсь FAQ.Net и аналогов с таким удобным и быстрым поиском не находил.
Приложение работает под Windows XP (если установлен .NET Framework 2.0) и выше.
Интерфейс приложения FAQ.Net
Приложение FAQ.Net состоит из трех областей:
- панель поиска и навигации по документам
- название раздела или выбранного документа
- список документов или редактируемый документ
Вкладка «Разделы»
На вкладке «Разделы» создается иерархический список разделов, которые можно перемещать, изменять или удалять (в двух вариантах: удаление вместе с содержимым и с переносом содержимого в другой раздел).
Поиск
Поиск работает сразу по всем документам, операцией LIKE встроенной СУБД SQLite. При поиске документа можно учитывать несколько условий поиска, добавив специальные символы (|| — операция ИЛИ, && — операция И). Символ "%" означает искать любые символы.
Я думал, что такой способ поиска будет медленным, но протестировав LIKE на базе размером более 2Гб удивился его быстроте.
Хранение и редактирование документов
Все документы хранятся в RTF-формате в БД, в одном единственном файле с именем «FAQ.sqlite», который находится рядом с exe-файлом приложения (FAQ_Net.exe).
Документы можно распечатать, имеется предварительный просмотр.
Можете вставлять изображения в документы.
Вкладка «Избранное»
На вкладке «Избранное» отображаются документы, которые пользователь помечает в области документа, нажав на пиктограмму с изображением звезды (Добавить в избранное).
При нажатии на «Добавить в избранное» документ появляется наверху в панели «Избранное». При отжатии кнопки «Добавить в избранное» документ удаляется из списка в панели «Избранное».
Вкладка «Журнал»
На вкладке «Журнал» отображаются 50 последних документов, отсортированных по дате создания в порядке убывания (самые свежие вверху списка).
Поиск и замена слов внутри документа
Для поиска внутри документа, необходимо нажать Ctrl+F (для замены слов нажмите Ctrl+H). После этого, внизу появится панель поиска и замены текста.
Что дальше?
- В дальнейшем список форматов буду расширять. Планирую добавить возможность хранения, поиска и редактирования HTML-формата, а также XLSX-формат.
- Для программистов будет удобным добавление функции подсветки синтаксиса для выделенного текста.
- Добавлю функцию автоматического обновления приложения.
- Улучшить дизайн компонентов.
- На вкладке «Разделы» отделить панель списка документов от панели содержимого документа, чтобы список документов не скрывался при открытии документа.
- Внести возможность создавать ссылки на другие документы внутри приложения.
- Написать API чтобы хранить и обрабатывать HTML-документы при парсинге сайтов.
- Сделать приложение FAQ.Net кроссплатформенным.
- Список пожеланий можете дополнять сами в комментариях или в группе ВКонтакте (см.ниже).
Кому будет полезна программа заметок FAQ.Net?
Приложение FAQ.Net можно применять людям различных профессий и статусов. Рекомендую использовать приложение для заметок FAQ.Net: программистам, студентам и преподавателям.
Был рад поделиться своей разработкой. Надеюсь Вам была интересна статья и программой для заметок FAQ.Net будут пользоваться.
Скачать Windows приложение FAQ.Net (бесплатно):
(x64) yadi.sk/d/sq3g4NOD3Zt7ZY
(x86) yadi.sk/d/NKXeyUWH3Zt8PQ
Группа ВКонтакте
Комментарии (60)
kalapanga
07.10.2019 12:581) Не работают обе версии. При запуске — «Необрабатываемое исключение...» По кнопке «Продолжить» приложение запускается, но у версии x86 при этом напрочь «съезжает» интерфейс. Попытка создать раздел так же заканчивается «Необрабатываемым исключением...»
Windows 7 Профессиональная, x64, Версия 6.1 (сборка 7601: Service Pack 1)
2) Заинтересовал поиск «операцией LIKE встроенной СУБД SQLite» по RTF формату. Что и правда что-то найдёт? «FAQ.Net» на скриншоте — пример не интересный, кириллица интересует.alkoro
07.10.2019 13:27По первому пункту подтверждаю — то же самое, x64 версия запускается с единичным исключением, но заметки не сохраняются. x86-версия запускается с кривым интерфейсом. Win7x64sp1
shmelev-1987 Автор
07.10.2019 17:21Проект компилировался под Windows 10. Попробую скомпилировать проект под Windows XP. Надеюсь это поможет. О доработках сообщу дополнительно. Спасибо за замечание о проблеме!
kalapanga
07.10.2019 13:58На основании скриншотов есть такое предложение. Сейчас, судя по всему, разделы сортируются по алфавиту. Я бы добавил опционально ручное упорядочивание разделов (перемещение выше-ниже) или закрепление вверху отдельных разделов. Тогда не пришлось бы вытаскивать важные разделы наверх с помощью знаков восклицания в названии (как на одном из скриншотов во ВКонтакте)
shmelev-1987 Автор
07.10.2019 16:35Поиск с русскими символами работает без проблем. В БД хранится обычный текст и RTF (дублирование информации). Поиск выполняется по обычному тексту.
kalapanga
07.10.2019 17:14А, это другое дело. Такую реализацию я уже встречал, когда кроме rtf хранится plain-text именно для целей поиска.
TiesP
07.10.2019 13:07Ну думали прикрутить веб-интерфейс? К примеру для такого сценария: крутится простенький свой сервер и где-нибудь в дороге обращаешься к своим записям через веб-интерфейс.
shmelev-1987 Автор
07.10.2019 16:23Такая мысль есть, но опыт в разработке Web-приложений небольшой.
DaMaNic
08.10.2019 12:01Для начала посмотрите в сторону Keepass, 50% его полезности в том, что можно хранить базу данных на серверах, доступ по webdav к примеру, и тем самым легко записал на одном компьютере — открыл на другом, или даже смартфоне.
pesp
07.10.2019 13:15+1Под линуксом похожая программка Zim есть. Пользуюсь ей уже 2 года — стабильная, шустрая, ничего не шифрует и ни в какие мудреные базы данные не кладет, складывает записи с картинками прям в директорию. Очень удобная. Даже если все рухнет, свои записи откопаю и реанимирую.
hjornson
07.10.2019 13:29echo off
set now=%TIME:~0,-3%
set now=%now::=%
set now=%now: =0%
set now=%DATE:~-4%%DATE:~3,2%%DATE:~0,2%_%now%
«d:\program\Far2\far.exe» /e «d:\!tempnotes\%now%»
exit
… в батник и вызов батника на горячие клавиши. А искать потом по каталогу с этими заметками можно чем угодно и где угодно.
NeoCode
07.10.2019 13:31Zim и под винду есть. Я частично перешел на zim c evernote, с тех пор как они начали что-то там ограничивать с количеством устройств. Заметки размещены на bitbucket, для синхронизации между компьютерами использую git.
Заметки хранятся в простом текстовом формате — это как раз удобно для синхронизации через git.
eumorozov
07.10.2019 13:57Подобных программ — вагон и маленькая тележка под любую платформу. Многие с открытыми исходниками. Всегда в таких случаях думаю: почему бы автору не приложить усилия для улучшения уже существующей альтернативы?..
Сам пользовался zim, но не нравилось, что используется не markdown для разметки. Уже привык всюду использовать markdown, некомфортно постоянно переключаться на другой язык.
Потому сейчас использую vimwiki.
CJay
07.10.2019 19:37+1я же с zim перешел на QOwnNotes. Тот же markdown, но интерфейс приятнее.
pmcode
08.10.2019 06:34Тоже когда то пользовался QOwnNotes, потом перешел на VNote. Концепция та же, то сама утилита намного более продвинутая, потому что в отличие от QOwnNotes, автор использует QtWebEngine и смог в нормальное форматирование. Мне частенько приходится сохранять скриншоты, так вот VNote — просто единственный (из offine заметочников), кто умеет адекватно работать с картинками (вставка из буфера, ресайзинг, отслеживание удаления и т.д.).
Имхо, вот эти 2 лучшее что есть из заметочников. zim — старый как говно мамонта и не умеет в markdown из коробки, все поделки на электроне — лютое УГ разной степени забагованности. Есть еще корявенький Outwiker с никаким UX и стильный MyTetra с UI для любителей Windows 95. Вообще, с заметочниками самая забавная ситуация — софта навалом, а выбирать не из чего.
Aquahawk
08.10.2019 16:51У меня под виндами zim сломался и начал глючить как только я занёс буквально 30 документов
lair
07.10.2019 13:23Я уже много лет пользуюсь FAQ.Net и аналогов с таким удобным и быстрым поиском не находил.
… ну вот скажем OneNote. Он медленнее?
edogs
07.10.2019 14:09До сих пор используем winorganizer (очень древняя тулза), при чем даже покупную лицензию (в том смысле что сначала он только продавался, потом автор забил на это и вывалил ключ в паблик, так вот мы еще успели купить).
Пробовали всякие evernote, onenote и т.д. — не зашло ни разу, наворочено и непредсказуемо по поведению. Для мелких заметок где надо облако их используем, но не более того.
В winorganizer не хватает нескольких вещей, но то как сделано то что сделано — перевешивает.
Если у автора получится нечто подобное (а вроде по статье на то похоже), то спрос вполне возможен (многих знакомых на winorg подсадили).gotch
07.10.2019 15:09Notepad++ с представлением «Дерево» для чистого текста, и OneNote для графики. Но тоже, так себе решение.
Сейчас для записок вообще GitHub стал популярен, как не удивительно.
pesp
07.10.2019 15:57+1Долгое время пользовался winorganizer. Эта была одна из немногих программ под win, что я купил. Но с переходом на линукс стала неактуальной.
smart_alex
07.10.2019 17:26А есть ли подобные программы для заметок, которые умеют подсвечивать программный код?
Self_Perfection
07.10.2019 21:13Вышеупомянутый zim имеет плагин для вставки текстовых сниппетов с подсветкой синтаксиса
lostmsu
07.10.2019 18:06О. У моего первого проекта на C# был очень похожий интерфейс. Писал как раз когда .NET 2.0 вышел.
ASD2003ru
07.10.2019 20:59Лично пользуюсь Joplin умеет синхронизироваться да и markdown как то привычным стал.
shmelev-1987 Автор
08.10.2019 10:38Нужно было работать в WinXP
LoadRunner
08.10.2019 16:21Так есть же .NET Framework Client Profile 4.0 для Windows XP. Это всё лучше, чем вкорячивать 2.0 на Windows 10.
FloorZ
08.10.2019 12:09Если честно, все эти приложения для заметок — не удобны. Оно все равно теряется, при том сами приложения теряются тоже. При том потери заметок происходит чаще всего при смене устройства или длительного не использования оного. Да и уже как правило, хранить на устройстве что-то — банально не надежно сегодня. Все проекты по гитам разбросаны. Все заметки в трелло написаны. А устройства теряются, ломаются, я юзаю мобильник часто и т.д.
Не удобно оно, да еще на десятке боюсь не заведется сразу.
KReal
08.10.2019 12:24Нет, LIKE в SQL это конечно очень хорошо, но прикрутить хотя бы Lucene.Net заняло бы полдня, а результаты бы вас приятно удивили! :)
shmelev-1987 Автор
08.10.2019 16:36С очень большими базами заметок не приходилось работать, поэтому не было необходимости использовать Lucene.Net.
Bion007
08.10.2019 15:40Есть еще Help & Manual www.helpandmanual.com/order.html Не бесплатный правда, но весьма мощный, кроме всего прочего позволяет генерировать документацию в различных форматах.
s_suhanov
08.10.2019 19:04Многие программисты до сих пор создают заметки в текстовых документах, сохраняя их на компьютере и со временем теряют их местонахождение.
Многие программисты уже научились пользоваться современными сервисами для этого (обычно они уже встроены в телефоны этих программистов).
pprometey
09.10.2019 05:07Вот именно. Тот же OneNote прекрасно для этого подходит.
Я конечно извиняюсь за критику, но мне эта программа кажется жутким атавизмом.
Zenitchik
08.10.2019 19:58Человек, который может потерять местонахождение папочки с файликами — с тем же успехом потеряет местонахождение базы данных.
playermet
10.10.2019 18:21Папочек с файликами как правило много, и файлики там в форматах разных, без общего поиска. А база всего одна, в облаке, и по ней работает глобальный поиск.
А кроме того, можно использовать следующую киллерфичу: легковесность, автозагрузка, сворачивание/разворачивание на хоткей (например ctrl+shift+z). Лично у меня между возникновением необходимости что-то найти в заметках и моментом начала их чтения проходит не более 5-10 секунд. А если нужный узел уже виден в дереве при разворачивании то и того меньше.
1MK-Ultra
09.10.2019 08:39Надо самому такое написать. Но, вот что я хочу сделать. База данных нужна будет только для индекса. Все остальные данные будут хранится где хранились, на винчестере! К примеру, появляется новый документ, (не важно в чём, Txt, rtf, doc, html, cpp, и т.д. Программа, висит в трее и спрашивает, в какой раздел это отнести? Затем он идексируется. Если нужно посмотреть заметку в txt или rtf, открывается во внутреннем редакторе, если в другом формате, открывается в том приложении, в котором этот документ создавался. :)
И не нуждается эта программа в онлайн доступе с сервера. Человек просто хочет упорядочить все документы на своём жестком диске.shmelev-1987 Автор
09.10.2019 16:40Между диском и базой очень часто могут быть расхождения. Нужно будет отслеживать при запуске приложения (или в фоне) все расхождения между данными в базе и файлами на диске
LESHIY_ODESSA
09.10.2019 17:31
DnAp
10.10.2019 16:51Для меня стало откровением что VSCode с плагинами удовлетворяет моим потребностям.
Доставляем плагин для тегов — vscode-nested-tags. И auto-git для синхронизации.
Дальше просто пишем все в markdown файлах
Smiz001
Жаль на гите нет исходников.
shmelev-1987 Автор
Уже работаю над этим. Выложу в github, как все настрою.
Smiz001
Спасибо.