Comments 303
Почему была сделана библиотека, а не использована существующая? Потому что менеджер позиционируется как Qt-only. Он должен легко собираться командами qmake & make на любой платформе, где есть только Qt, и никаких дополнительных библиотек не требовать.
В исходниках Qt есть каталог 3rdparty, в которой помещены сторонние приложение, а для интеграции в сборку были сделаны соответствующие *.pri файлы. Поэтому вместо велосипеда можно было взять Crypto++.
Я пока из доки не понял, Crypto++ — это чистая плюсовая библиотека, которую можно просто положить рядом с проектом и заинклюдить? Или для ее компиляции ее надо «подготавливать» под каждую платформу исходники через make, закомпилить, и только потом использовать?
В некоторых местах используются ассемблерные вставки. Отключить что-то можно через дефайны CRYPTOPP_DISABLE_ASM, CRYPTOPP_DISABLE_SSSE3, CRYPTOPP_DISABLE_AESNI.
положить рядом с проектом и заинклюдить?
Нужно исходники прописать в .pro/.pri файле в переменные SOURCES и HEADERS. Тогда библиотека будет собираться во время компиляции основного приложения.
We did not find any relevant results (is your spelling correct?).
Consider checking our full list of concepts to see if you can find what you're looking for.
Try using a: Google search for «linux» on Metacademy.
При всем признании вашей работы — объемной — советую все же обратить внимание на «хипстерские» нынче технологии — node.js, meteor, electrify. С ними рендеренг хтмл из коробочки, кодобаза смешная будет по объему, а функционал и интефейс приятно привычные, хоть bootstrap, хоть материальный. И в вебе, и на десктопе (после двух команд — пакет arboleya:electrify — пробовал сам, знаю-верю).
Честное слово, правда рассмотрите. Удивитесь как ваше дело превратится в перспективный стартап почище евернота, который ниочемщина в сравнению с накопленной вами базой (знаний и пользователей). Вот так…
Я не наезжаю, просто для меня он очень сложен и неудобен. Я плохо запоминаю несвязанные вещи (именно из-за плохой памяти и сделал MyTetra кстати), а команды Vim я отношу как раз к таким вещам.
Более того, я за то, чтобы интерфейс всегда и везде был единообразен. Если в GUI-шных DE принято для удаления строки выделить ее и нажать DEL, то так должно быть и в редакторе. Если принято копировать в буфер обмена по Ctrl+C, то так должно быть везде, даже в консоли Linux. И я себе именно так и настраиваю, и статью по этому поводу давненько написал:
Как «освободить» клавиши Ctrl+C, Ctrl+V, Ctrl+X в терминале
Я понятия не имею, можно ли настроить Vi и Emasc на такое стандартное поведение. Но мне больше по душе появившийся недавно Micro, в нем основные действия стандартные, хотя тоже закидонов хватает.
Мой коммент про «смотрите метеор» :) Что вам этот vim :) понятно дело, будь он доступен хотя 72% пользователей, на нём бы уже все сидели (ну и видать это далеко не так).
Рано или поздно придется решить проблему: правка данных через веб-интерфейс. Я все не могу придумать, как это организовать, учитывая что данные хранятся просто как файлы, и синхронизируются через cvs или cloud.
Если я даже создам онлайн — сервис, то пользователь должен будет как-то получать изменения, вносимые в веб-интерфейсе, на свои локальные инстансы. Вот как это можно организовать? Так, чтобы пользователю было прощще. И чтоб для пользователя было безопасно.
Вот те самые технологии, которые важны, meteor упомянутый, десктопного клиента электрифицирует по умолчанию с собственной монгодб, то есть интернет как бы и не нужен. А по-хорошему, это задача синхронизации двух баз данных, локальной и удаленной, и да — без клиента с логикой, пусть даже опосредованной только облачными хранилищами — никак.
Хотелось бы какую-то другую схему, не поверженную таким проблемам.
Это да. Смех сквозь слёзы и цирк с конями.
Картинки есть, файлы прикладываются, никаких проблем с синхронизацией чем угодно, вплоть до гита, поскольку хранится плейнтекстом, древовидная структура со сворачиванием, теги, поиск, запуск кода на любом языке прямо in-place, табличный процессор, экспорт в html/tex/odt. Ну и, соответственно, открытый, кроссплатформенный, GPL, всё, как положено.
Правда не уверен насчёт объёмов, по три тысячи записей с картинками и аттачментами в одном файле хранить не пробовал, но поиск по директории org с помощью какого-нибудь ag работает очень быстро.
> Но там же только текст, картинок нет. Прикрепляемые файлы — под вопросом.
Картинки есть. См. http://orgmode.org/manual/External-links.html. Вместо прикрепления блобов применяются гиперссылки.
> зачем сейчас так мучиться — мне лично не ясно
Это в разы быстрее GUI в большинстве случаев.
— Код в Атоме с vim-mode-plus
— Управление задачами в emacs с org-mode. На тему настройки есть такие монументальные труды, как http://doc.norang.ca/org-mode.html
— Конфиги по ssh и локально и мелкие файлы локально — neovim
Берите лучшее из всех миров. Если переезжать с вима на емакс ещё и для активной правки текста или кода, то можно посмотреть на evil-mode.
Есть ещё evil-mode, чтобы чувствовать себя на емакс как дома.
Думаю, начну ей пользоваться, а то веду свои заметки совсем примитивно: текстовые файлики и синхронизация с помощью git.
Кстати действительно, его xml файл можно положить под гит и получится вообще удобно)
Вы меня прямо порадовали, я вот подумывал об изучении C++, как раз для того, чтобы иметь возможность дорабатывать Mozilla Thunderbird, и попробовать сделать быструю базу знаний.
Но потом пришёл к выводам:
- что надо делать веб-приложение (например, на основе vibe.d), которое можно открыть локально (через http://localhost/wiki);
- Язык С++ сложноват, проще освоить D(dlang.org)
- Надо реализовать (или взять готовую библиотеку) именно графовую БД,
- В качестве источника вдохновения надо взять Fossil там есть wiki и контроль версий.
ЭЭЭ… А если есть готовая вики с контролем версий, то зачем мне писать свой велосипед с треугольными колёсами? Взял Fossil и ни о чём не думаю.
Правда, Вашим требованиям оно не соответствует: требует браузера, и в трее не висит.
Или, ещё лучше: библиотека СУБД Sophia, хранит данные в формате ключ->значение, работает быстро.
Может автору стоит рассмотреть возможность добавлять рекламу в записи
Т.е. есть записи пельмени, блины, соленое сало,
и рядом добавлять от гугла/яндекса рекламу, где их купить
И быстро понял, что дерево свою функцию «базиса» хорошо выполняет, особенно, если ты сам вырастил это дерево.
Вторая часть этого предложения и есть ИМХО главная проблема. Получившаяся база сугубо индивидуальна. Вот у вас на скрине, например, есть категория «Ноутбуки», а есть категория Asus EEEPC 701, которая не является её подкатегорией. Рискну предположить, что первая категория заполнялась при выборе ноутбука перед покупкой, а вторая — уже про особенности конкретного компьютера, который вы в итоге купили, или ещё по каким причинам так лежит. Ваши данные, вам и решать, как их раскладывать. Но в идеальном-то мире, ежели это не ваша собственная свалка заметок, а что-то масштабов википедии, должно бы быть компьютеры/модели/ноутбуки/асусы/ASUS EEEPC701 или ещё как-нибудь вроде того. Есть немаленький риск погрязнуть в бесконечных спорах остроконечников о том, должны ли нетбуки выделяться в отдельную категорию, и должна ли эта категория быть подкатегорией ноутбуков.
Вы в качестве примера приводите биологическую таксономию, и там наблюдается именно эта картина. Даже с современными требованиями молекулярно подтверждённой монофилии таксонов есть группы, положение которых на древе жизни описывается десятком способов, более или менее принятых в разных кругах, и переносы групп из одних надгрупп в другие происходят постоянно. И это при наличии пусть не безупречных, но всё же методов определить вложенность групп и ранг конкретной группы (и кучи людей, готовых потратить всю жизнь на уточнение третьестепенных деталей классификации). А знания не делятся каким-нибудь очевидным образом на набальзамированные, принадлежащие Императору, нарисованные тонкой кистью и способные лучше меня цитировать Борхеса по памяти.
Достаточно посмотреть, насколько сложнее стало пользователям windows 8 — 10. Раньше у них было древовидне меню, а теперь им надо искат по имени или в каких-то нереально длинных списках. Люди не могут даже запустить нужную программу.
Но в любом случае, как я сказал, дерево — это опора. Я все свои записи хорошо тегирую и активно пользуюсь поиском. Теги — это горизонтальные связи, поэтому в MyTetra имеется на самом деле граф, а не дерево. Дерево слева выполняет вспомогательную функцию: психологическая опора и возможность потыкаться по веткам при поиске «по логике вещей». Ну и еще спользуется при организации списков дел.
В общем, повторюсь, что дерево — это компромисс а не панацея. В MyTetra оно больше подходит для старта, дальше стиль работы меняется, и используется поиск. Наличие связей по тегам и возможность прописывать в текстах ссылки на другие записи превращает дерево в граф.
И почему не теги? По моему они отлично вписываются в вашу концепцию «места» куда складываются записи.
Единственное, чего пока нет, это подсказок по тегам, но необходимости такой у меня еще не возникало.
Остальные, редко используемые, как раз и удобно искать через древовидную структуру — т.е. я помню что у меня есть какая-то утилита по спецэффектам я иду в «Мультимедиа/Графика/» и там смотрю что у меня есть.
А не ищу в несортированной куче.
Ну и пользователю надо дать организовывать кастомные категории по вкусу, если это десктоп-приложение и данные хранятся локально.
Полностью согласен с тем, что нужно отойти от древовидной структуры. Сколько я перепробовал подобных программ, но в итоге пришёл к Google Keep. Вот тебе листок, пиши что хочешь и потом поставь тег. Всё.
Это именно тот идеал подобных программ, который устроил меня и который я бы рекомендовал всем. Он есть у меня на телефоне и есть у меня в браузере. Единственное, я бы хотел своё приватное облако гугл кип на собственном сервере с открытыми исходниками.
Второй вопрос — почему github и нарушение своей собственной приватности? Всё же личные заметки не для посторонних.
Насчёт необходимости такой идеи как таковой — её невозможно переоценить. До подобного вида заметок (у меня они относятся к древовидным тегам вместо категорий, хотя это по смыслу одно и то же) чувствовал себя слепым щенком. К этой идее тоже шёл несколько лет. Приводить свои заметки в порядок и систематизировать их — это невероятно удобно и практично.
Веб-подход был бы гораздо удобнее.
И требовал бы интернета.
Как пользоваться заметками на планшете или телефоне?
Для этого есть версии для планшетов и телефонов, судя по описанию.
А на другом компьютере?
Для этого есть синхронизация.
нарушение своей собственной приватности
Насколько я понял, вы сами выбираете, чем делиться, а чем нет. И личные заметки зашифрованы.
Как бы 2016 год на дворе, светлое будущее наступило и интернет в основном и быстрый и доступный. К тому же self-hosted сервисы можно и у себя на машине держать.
Вот тогда ты понимаешь, что наличие всех своих записулек локально на ноуте — это просто спасение, и ты радуешься, что пару лет назад работал с чем-то подобным, и не поленился сделать записи. В такие минуты ты сам себя готов в жопу расцеловать за предусмотрительность.
На своей машине (стационарный пк/ноут не принципиально) запущен сервис с web ui. Даже проблем с обслуживанием nginx, php-fpm нет. Достаточно uwsgi + db (опционально) и браузера. Получается весьма компактное самодостаточное решение (чтоб совсем красиво было надо ещё в docker затолкать, но там свои заморочки).
Если озадачиться можно без особых проблем:
* расшарить сервис в локалку (использовать с планшета/смартфона или дать домашним доступ)
* настроить доступ по клиентскому сертификату
* настроить tor hidden service и иметь доступ к системе отовсюду
У меня так rss, wiki и прочие локальные сервисы живут. Довольно удобно.
— localhost
— запущен сервис с web ui
— обслуживание nginx, php-fpm
— достаточно uwsgi + db (опционально)
— в docker затолкать
Как все это барахло пользователь будет у себя устанавливать? Я вообще расстраиваюсь, что до сих пор не сделал сборку под Win с инсталлятором, чтоб иконка сама на рабочем столе появилась. А ты тут такой ужосо рассказываешь.
Можно, вместо скриптов, написать и статически скомпилировать исполняемый файл (на C++ том же), но трудоёмкость мелкой настройки выше.
* Локальное применение
Вы запускаете систему примерно так:
knowlege-base --port=8080 --bind=127.0.0.1 --datadir=/var/db/knowlegebase
а затем открываете Ваш браузер, и вводите «http://127.0.0.1:8080/» и видите заглавную страничку Вашей вики/базы знаний;
* Применение в сети предприятия:
knowlege-base --port=8080 --bind=192.168.1.5 --datadir=/var/db/knowlegebase
И ваши пользователи лезут в «http://192.168.1.5:8080» и точно так же пользуются этой базой знаний.
Вот в этом и есть преимущество баз знаний с веб-интерфейсом: вы можете начать локально, а когда понадобится — запустить для окружающих.
Вы запускаете систему примерно так:
knowlege-base --port=8080 --bind=127.0.0.1 --datadir=/var/db/knowlegebase
По-моему, комментарий был как раз по поводу действий запуска и/или настройки, которые выглядят страшно для конечного пользователя. Для людей, далёких от мира продвинутого пользования компьютеров и программирования (а таких среди весомое количество) даже адресная строка браузера — это «программирование». Серьёзно, сталкивался с подобными ситуациями. А приведённая в цитате строчка из команд (!), которую нужно ввести в консоль (!!) отпугнёт просто 100%. Чтобы было хорошо — всё должно ставиться в самом сложном случае через «дальше-дальше-готово», а запускаться «через иконочку» и без каких-либо других шаманств.
Эту «страшную» команду он, весьма вероятно, даже не увидит, потому что при установке скрипты всё сделают за него.
Целая ветка удивительных открытий: сайты можно хостить на локальной машине (wow), при установке приложение интегрируется в систему само (wow). Дурдом.
Приложений с web ui хватает: deluge, transmission, ngrok, syncthing, btsync, portainer (docker ui), jenkins и прочие. Пока никто не помер.
По работе же я занимаюсь промышленной автоматизацией (машинное зрение, неразрушающий контроль) и на работе сижу са семью файрволлами с авторизацией и капчами, а в командировках-пусконаладках интернета нет на рабочем месте по определению, и даже точку доступа не поднять, ибо чтобы появилась мобильная связь, надо порой выйти из цеха на улицу.
Эти инструменты чуть разные, но хорошо дополняют друг друга. В Natara — в основном оперативное планирование, GTD, и списки всякие типа возьми в командировку то-то и то-то. В ToDoList — работа над проектами — я сейчас работаю как QA, и мне приходится много чего тестить на отдельно стоящих компах без интернета. Эти продукты объединяет древовидная структура.
Кстати, вот ещё пример очень похожего на myterra решения «для себя» — pdb. Cценарий использования у автора: Кросс-платформенная разовидность TreePad.
По PDB попытался искать хотя бы скриншоты в Яше и Гоголе. Вообще ничего не находится. Как-то боязно связываться с таким проектом. Плюс на официальной странице программы несуществующая ссылка на исходники.
pdb — тот продукт, когда автор сделал раз для себя. Он не обновляется, тут тот случай, когда делается форк, и дальше начинается допиливание.
На своей машине (стационарный пк/ноут не принципиально) запущен сервис с web ui. Даже проблем с обслуживанием nginx, php-fpm нет. Достаточно uwsgi + db (опционально) и браузера. Получается весьма компактное самодостаточное решение (чтоб совсем красиво было надо ещё в docker затолкать, но там свои заморочки).
Если озадачиться можно без особых проблем:
* расшарить сервис в локалку (использовать с планшета/смартфона или дать домашним доступ)
* настроить доступ по клиентскому сертификату
* настроить tor hidden service и иметь доступ к системе отовсюду
У меня так rss, wiki и прочие локальные сервисы живут. Довольно удобно.
Веб-подход в данном случае действительно гораздо удобнее, даже для десктопа.
У меня соответственно вопрос — почему standalone?Если честно, я просто не представляю, как люди пользуются любыми веб-приложениями. Либо я вырос на десктопных, не тормозящих приложениях, и такой требовательный, либо что-то не так с моим софтом, либо люди не знают, каким вообще приложение должно быть.
Вот, скажем, открываете вы документ в Google Docs. Открываете страницу, начинаете набирать, и понимаете, что полностью страница еще не загрузилась, и джаваскрипт не успел перевести фокус на поле ввода. Первые три набранные буквы пропали.
Это просто первая мелочь, пришедшая мне в голову, но она для меня столько значит, что сразу ставит крест на Google Docs.
Или, например, нажимаете во многих веб-приложениях правую кнопку мыши на каком-нибудь объекте, ожидая, что вы получите меню объекта, и видите там «назад», «вперед», «сохранить страницу», и так далее. Понимаю, что нажатие правой кнопки мыши можно перехватывать, как это делает тот же Google Docs, но когда ты такое видишь в, казалось бы, десктопном приложении (написанном на node.js, который тащит с собой chrome.exe и ffmpeg.dll, и простейшее приложение занимает больше 50 мегабайт в архиве), то это просто неприемлемо.
«Десктопные» приложения Slack, Mattermost, текстовый редактор Atom, который раньше не умел открывать файлы с размером более 2 МБ, а сейчас открывает мегабайтный файл несколько секунд — просто какой-то мусор, непонятно, кто в здравом уме будет пользоваться такими программами, пока есть альтернативы в виде нормальных десктопных приложений.
Все пользуются и хвалят, а у меня ощущение тормозов даже на современных ПК с SSD и 100мбит каналом.
Последние пол года активно пользуюсь клиентом Slack под windows, проблем не обнаружил. Интересно стало что Вас в нем раздражает?
По kwrite я писал цикл из трех статей:
Как я искал текстовый редактор под Linux.
Внизу справа ссылка на следующую часть.
https://atom.io/packages/activate-power-mode
Для всего остального gedit и vim
Есть такая вещь, правда windows only, но вроде с открытым исходным кодом, называется Docfetcher, использует Java. Там просто вы имеете каталоги с нужной вам структурой и файлами традиционных форматов. Докфетчер натравливается на каталог и индексирует его. Потом можно искать файлы по имени, содержанию, другим критериям.
У него даже есть служба фоновой индексации, но что-то у меня она толком не работала.
А идеальный PIM — это приложение которое бы умело быстро строить индекс по различным форматам файлов (text, docx, odt, pdf, mht и т.д.). Натравливаешь его на каталог, и оставляешь висеть в трее, чтобы всегда иметь быстрый доступ. Все что от него нужно э- то быстро найти файл(ы) и перейти в каталог или запустить их. Вот такого ПО удовлетворительного качества пока нет, к сожалению.
Из коробки может быть решения и нет, но по отдельности все давно решено. Можно прикрутить, например, yad-морду к sphinx.
Натравливаешь его на каталог, и оставляешь висеть в трее, чтобы всегда иметь быстрый доступ.
Винда Copernic Desktop Search Corporate. linux — recol. Я под винду использовал — очень удобно!
ps
В итоге переборов вариантов софта из топика решил вернуться на ms expresion web 4. Да минусы есть, но плюсов вагон. В прошлый раз я от него отказался, так как не логична работа с изображениями.
А если синхронизировать через Dropbox, то выясняется, что Dropbox не хранит файлы на мобильном устройстве: только кеширует последние используемые, и подкачивает из интернета открываемые ручками пользователем.
И та же проблема безопасности: в Андроид программа не может работать в каталоге другой программы. Нужно рутовать, или как-то очень хитро настраивать, в чем я не разобрался.
В MyTetra очень простой поиск с настройками все слова/одно слово, полное слово/подстрока, вся база/выбранная ветка. Плюс можно пользоваться кавычками.
В первой части видеообзора на 29-й минуте рассказывается про поиск:
https://m.youtube.com/watch?v=Bmp_dk2LA6I#t=29m47s
Я новичок в программировании, изучаю Java, Python. Давно искал подобную программку, перепробовал разные, но эта о которой я думал. Огромное количество информации из книг я пытался систематизировать сначала в обычном ворде, потом в эверноте и т.д. В голове летала идея такой программы, но реализовать её не хватало знаний. Если бы изучал С++ то по любому участвовал бы бы в проекте. Хотя теперь может и возьмусь за него.
Браво! Мне сразу вспомнился незавершенный, увы, Xanadu Project и HyperCard, позволявший создавать связанные базы знаний на Macintosh годах в 80-90-х. Про последний можно глянуть на Internet Archive. Все они тоже черпали вдохновение из идей Буша
Попробуйте дать MyTetra каким-нибудь знакомыми, которые совсем-совсем не программисты. Пусть они с минимальными подсказками попробуют использовать его. Если им всё будет просто и ясно — значит продукт удался. Если нет — стоит послушать их комментарии и подумать над правками в UI.
P.S.: Если будет время — расскажите, как работает ваш механизм поиска и выборок? Как я понял, можно выполнять какие-то запросы, которые будут перестраивать дерево… Как это реализовано в рамках UI?
При этом MVP — это не универсальный продукт, а софт для конкретной предметной области, инструмент для сценаристов и режиссёров, который сможет помочь в организации медиаархивов. С другой же стороны, архитектура проекта строится с прицелом на модульность и расширяемость функционала плагинами. В качестве backend написана универсальная библиотека для хранения информации, насыщенной метаданными.
Автору статьи я уже написал в личку предложение обменяться опытом. Если кому-нибудь ещё интересны детали проекта — обращайтесь. Очень нужны люди со знанием Qt, а также спецы в UI/UX, готовые проектировать новаторские интерфейсы.
P.S.: Предваряю вопросы по поводу саморекламы… В своё время спрашивал администрацию хабры и мне ответили, что ограниченная самореклама без ссылок на сайт проекта допустима. Я же тут даже название не указываю… Если-таки что не так будет — всецело принимаю любое решение НЛО.
Вопрос номер один: зачем вам тогда вообще разделы, если у вас одна куча всего?
Причем такой функционал реализован много где касательно сайтов, RSS рассылок и др. Например, в feedly.com можно настроить показ RSS рассылки в виде Title only, а можно в виде Full Articles. А вот в различных менеджерах заметок такого нет. Частично в Evernote реализовано в старом интерфейсе, но не полностью.
На работе блокируется все что только можно (вкл evernote), эта работает без проблем.
Особенно неприятно будет смотреть на свою базу будучи перенесенной с linux на windows, или будучи записанной на флешку с ФАТ или на CD: длиные имена порежутся.
Вот я когда-то хранил пароли в текстовом файле, когда браузеры не умели это делать нормально, возможно несколько команд и заметок, которые не актуальны уже лет 10, потом понял что все это не нужно, готовые решения по деплою заскриптованы и являются частью проекта, пароли хранятся в браузере, туториалы и книги по ЯП — да господи, любой сайт и форму пестрит подборками, всей жизни не хватит перечитать, а по конкретному вопросу — гугл в помощь. А специфические вещи, которые делаютсч часто и их нет в гугле (как подмонтировать айфон в фрибсд например UPD: уже есть) и так помнишь.
Не обижайтесь, но вы этакий «цифровой Плюшкин» 21-го века.
Почему-то вспомнилось два случая:
1. Знакомый качал и хранил терабайты каких-то док. фильмов конспирологического содержания, забив жесткими дисками всю комнату. На вопрос «зачем если все есть на торрентах» отвечал что-то невнятное, типа так надежнее.
2. Сосед по гаражу, который тащил туда всякий хлам из близлежайших окрестней. Какие-то ножки от кроватей, любой найденный гвоздь на улице и т.п. Гараж был забит сверху донизу всем этим, при этом машина ржавела на улице…
Но должен вам сказать, что скорость поиска и нахождение именно того, чего записывал — гораздо выше, в разы выше чем в интернете через поисковики. Поисковик мне никогда не даст такую релевантность, как в моей собственной базе. Вы просто такими вещами не пользовались и не знаете всех удобств и достоинств.
И кроме того, я бы не был столь категоричен в рассказах о том, что интернет есть везде и всегда и никуда не денется. Вот вам ссылочка для расширения кругозора:
Корпорация «Росатом» полностью отказалась от сети Интернет
Это происходит сейчас, в наше время. В таких условиях наличие маленькой личной плюшкинской копии интернета — просто спасение для специалиста.
По полезным записям, вот например: http://webhamster.ru/mytetrashare/index/mtb0/1337019863kodwj7p9ip
То, что про Debian и Scientific — это мои записи. Плюс еще есть по CentOs и Fedora в приватных записях, и чтобы вынести в открытые мне надо почистить от настоящих IP-шников и прочих локальных подробностей. Надо этим заняться, но на это нужно время. Но мне то и так хорошо: эта информация у меня и так есть. Набрал «1С Linux» и видишь сразу то, что записывал. Это не гугол, когда пользователь ищет что там расскажут другие, тут иной принцип.
Таким образом годами поддерживается некая база знаний, которая удобна в работе именно для меня и актуальна именно в плане удобства для меня.
Но, конечно, делиться этой информацией с другими — довольно бессмысленно.
Я и пытаюсь понять ценность такого принципа.
1. Автор весьма неудачно подобрал примеры, они реально гуглятся за 5 минут.
2. Для кого то примонтировать nrg в линукс — это малопонятная фигня, которую надо вспоминать. Мне для этого записулька не нужна. Зато вот предложат мне вывести атомный реактор на рабочий режим — ух я порезвюсь перед большим балабумом.
—
Не пытаюсь вас ни в чем убедить, просто не могу понять полезность хранения устаревших и неактуальных записей.
Вот я недавно искал как можно включать и выключать энергосберегающий режим монитора в винде по реакции на внешний сигнал с lpt порта. Поиск этой информации занял много времени, задавал вопрос на форуме. Конечно я всё сохранил в свою записку о компах.
Другой вопрос сложный импорт, невозможно работать с большим объёмом информации. Коленные велосипеды, я уж на мопеде тогда.
— Насчёт поиска в интернете. Две проблемы: 1. поиск так или иначе ориентирован на контекстную рекламу, то есть надо выдать такой текст, чтобы вы ткнули на рекламу; 2. авторские права и просто скан удаляют с индекса. Как вывод для специалистов поисковые системы — это ужас какой-то. Дожились, яндекс за деньги будет предлагать полные результаты поиска с точным вхождением. https://extract.yandexdatafactory.com/ru/ Кругом приличные люди, поэтому особо релевантность информационного поиска никто не комментирует. Но он ужасен.
И у меня это делается на автомате. Но некоторые записульки я сразу пишу обезличенно, и сразу размещаю их в открытой ветке. Некоторые задачи я начинаю описывать обезличено, но если сложность начинает зашкаливать и обрастать локальными подробностями, переношу в приватную ветку.
> Теперь вы говорите, что есть еще по CentOS и Fedora в черновиках и вы хотели бы ими поделиться, но руки не доходят… Уверяю вас, что за два года ваш туториал стал неактуальным, если вы им не поделились вовремя, то пользы от его хранения никакой, и даже более того — один вред, руководствуясь старыми принципами установки вы пропускаете что-то важное
Именно поэтому я всегда указываю версии того, с чем имею дело. И в углу справа вверху есть дата публикации (меня вообще вымораживает, когда в половине блогов указывается день и месяц, но не виден год). И мне постоянно приходится иметь дело с устаревшими дистрибутивами, так что не думайте, что эта информация никому не нужна.
Гораздо хуже, когда в текстах не указываются версии, вот например старые тексты в Фидо по Linux и UNIX часто грешили этим — инфа 10-ти летней давности выдавалась как свежая. И народ вообще не ориентировался во времени, и невозможно было понять, устаревшая это информация или нет.
Смысл в таком облаке, кроме как «а вдруг война»
Чтобы было за что зацепиться. Например, был случай, когда 2 года назад видел статью о тонкостях настройки SOAP для 1c, но в нужный момент никак не мог вспомнить, по каким словам её гуглить.
А если бы написал выжимку в текстовый файлик, который сохранился бы в надёжном месте, и гуглить бы не пришлось — скопипастил настройки из файла и всё готово.
Не обижайтесь, но вы этакий «цифровой Плюшкин» 21-го векаВообще да, база эта навевает такую ностальгию по временам 2000-х, когда ходили копии сайтов rsdn и delphi kingdom в формате chm, с таким же деревом слева и заметочками/статьями справа )))
Интернет был не всегда под рукой — только ночью, или в интернет-кафе. Поэтому такие сборники были хороши.
А если бы написал выжимку в текстовый файлик, который сохранился бы в надёжном месте, и гуглить бы не пришлось — скопипастил настройки из файла и всё готово.
Как раз про это написал, что все что используется для настроек\деплоя должно скриптоваться и становиться частью проекта (по сути это код\данные проекта), а не храниться в записках непонятных.
Не, ну может какой-то сферический эникейщик студент, который бегает по соседям настраивает винду, может ему и пригодится… не знаю… лицензионный ключ винды… Но тру эникейщики помнят такое наизусть )
Именно в этом смысл. Любители хранить всё в Интернете обычно начинают выглядеть довольно беспомощно, если этого доступа их лишить.
> Вот я когда-то хранил пароли в текстовом файле, когда браузеры не умели это делать нормально
Браузер — не единственное место, где надо вводить пароль.
> готовые решения по деплою заскриптованы и являются частью проекта, пароли хранятся в браузере
Это всё довольно частные случаи.
> А специфические вещи, которые делаютсч часто и их нет в гугле (как подмонтировать айфон в фрибсд например UPD: уже есть) и так помнишь.
Кто как. Сегодня помнишь, потом проходит 2 месяца и знания улетучиваются за ненадобностью, а потом та же задача возникает снова. Каждый раз в гугл лезть? А если руководство ищется только сложным поиском и находится на 10 странице выдачи? А если страницы с руководством уже нет? А если интернета нет?
Каждый раз в гугл лезть?
Да, они тратят миллиарды долларов, чтобы этот процесс был безболезненным и естественным.
А если руководство ищется только сложным поиском и находится на 10 странице выдачи
Ой, очень сомнительный и изумительно редчайший кейс, у вас такое случается чаще, чем раз в году?
А если страницы с руководством уже нет?
Значит оно неактуально и авторы посчитали что по нему вредно\небезопасно что-либо делать. Да, данные устаревают, и их нужно вычищать.
А если интернета нет?
Еще лет 10 назад было актуально, сейчас уже нет.
Они могут потратить хоть триллионы, сомневаюсь что это поможет им реализовать фичу «вернуться назад во времени на N месяцев/лет и выдать мне содержимое страницы c решением, которую я тогда нагуглил, причём сделать это за 1 минуту и не заставляя меня повторно гуглить».
> Ой, очень сомнительный и изумительно редчайший кейс, у вас такое случается чаще, чем раз в году?
Да. Пример: разнообразные математические задачи с mathoverflow (математические проблемы часто трудно гуглить из-за абстрактности ключевых слов), бесплатные прокси, некоторые специфические задачи по настройке Linux (например настройка UEFI с подписанными загрузчиками).
> Значит оно неактуально и авторы посчитали что по нему вредно\небезопасно что-либо делать.
Это не всегда так.
> Еще лет 10 назад было актуально, сейчас уже нет.
Я вас умоляю… Отъедьте километров на 50 из города, скажем на дачу, и попытайтесь с местным мобильным интернетом провести активное гугление какой-нибудь более-менее нетривиальной проблемы (например, как раздать интернет с ПК с USB-модемом). Или то же самое, будучи туристом в городе в другой стране.
Сегодня помнишь, потом проходит 2 месяца и знания улетучиваются за ненадобностью, а потом та же задача возникает снова. Каждый раз в гугл лезть? А если руководство ищется только сложным поиском и находится на 10 странице выдачи?
Evernote решает эту проблему установкой браузерного расширения, которое отображает в результатах поиска Гугла — результаты поиска по своей базе заметок. Автору — как идея для развития.
Приведу один пример пользы таких заметок.
Раньше никогда не понимал, зачем делать эти дурацкие конспекты на парах. И часто не делал, ведь все это есть в учебниках и методичках.
Однако позднее понял, что так лучше запоминается то, что конспектируешь. Лучше осознается. Теперь читая любую книгу записываю её конспект.
Так и тут, такая личная база — это способ лучше это запомнить. Структурирование очень этому помогает.
Я вот сделал запись и запомнил, а если бы все время обращался к гуглу, то запоминал бы дольше.
Это я просто помечал места, где меня отвлекали, чтобы внимательнее их просмотреть позже, чтоб ошибок не понаделать.
Этих восклицаний немного, их ярко выраженная бессмысленность привлекает внимание, и служит меткой. Даже если IDE закроется, я найду их средствами редактора и восстановлю картинку, которую живописал в коде. И ничего личного в код не попадёт.
Но в вашей системе тоже кое-чего не хватает. В том же evernote очень удобно сграбить веб-страничку, выделив нужную область или все целиком. В вашем случае придется копировать и вставлять вручную. Еще не очень понял, ищет ли ваша программа внутри документов (тех, которые в виде аттача прилагаются к записям). Полагаю, что нет.
Пока писал, подумал, что проприетарный формат не так уж и страшен. Думаю, что большинство программ, включая Evernote, умеют экспортировать свою базу во что-то открытое, что можно потом распарсить.
P.S. В обучающем видео совершенно прекрасные примеры записей в дереве :-) Про космодром Восточный и головные обтекатели. Это та самая ваша основная работа, не связанная с программированием? :-)
Основная работа — атомная отрасль, не космос.
Пусть есть библиотека (книги в разных форматах, потому не поддаются индексации в myhomelib)
По_Авторам Авдеев Баратынский Жуковский Яковлев //а рядом есть каталог ссылок По_Темам Гидравлика -- Жуковский Поэзия -- Баратынский Авиация -- Яковлев
И таким образом, в древовидной файловой системе имеем граф. У меня вот упорства не хватает взять и разложить всё по полочкам, а файловая система ext4 такое вполне позволяет, да.
На ЛОРе был один такой товарищ, который утверждал, что ему линков и EA хватает за глаза, и ничего вообще не нужно делать, все уже есть. Не помню его имени к сожалению. Думаю, что рано или поздно он столкнулся с непереносимостью своих данных на другие платформы.
А тут свои, интересно.
Из недостатков — ограниченный поиск из коробки (но есть плагин с Lucene), немного замороченная заливка рисунков, нет поддержки диаграмм (кроме встраивания через plain html сторонних сервисов). Хотя может это и обходится, давно не проверял новые плагины.
Ту самую древовидную структуру обеспечивает использование стилей для заголовков, автоматически формируемое содержание и панель навигации сбоку.
Формат docx — уже открытый, открыть не проблема почти на любом более менее современном устройстве.
Поддержка шифрования файла.
Все заметки в одном файле — благодаря чему легко решается вопрос бэкапа и переноса на другое устройство.
В есть всё, что мне надо, но имеются проблемы, учтите как пожелания.
1. Программа ужасно работает с данными более 100 тысяч записей. И разработчик сказал — это неисправимо. В dreamweaver было хуже.
2. В программе нет прав доступа, то есть нельзя нанять кого то, чтобы он в основной базе за тебя чо то набил. Разработчик верно пишет как надо выкручиваться, но заморочно.
В вашей программе полно недостатков, но мне недостатки, вам всё хорошо.
— Мне крайне интересен другой вопрос, может он не по этой теме, но спрошу. У меня есть несколько миллионов вопросов и ответов (с майл) и 600 форумов. Мне крайне интересно создать отвечающего бота, то есть вы ему вопрос или несколько сообщений, он вам релевантный ответ.
Сейчас такие базы хранятся в текстовых файлах (знаю всего 1 такую программу). А как или в чём их хранить более правильно? То есть какие книги надо почитать, чтобы делать такие программы по науке?
Базы, о которых вы говорите, разумно хранить в NOSQL-ных БД. Большего вам не скажу, потому что проектов с такими объемами у меня не было. Вам нужно поговорить с нормальным проектировщиком, у которого за плечами есть подобные проекты с такими объемами данных. В любом случае это будет клиент-серверное приложение, не монолит на файлах как у вас скорее всего сейчас на дельфи.
Большего вам не скажу, потому что проектов с такими объемами у меня не было.
Вдруг кто другой ответит?
100.000 записей для персональной БД как-то очень много
Просто как и многие в топике я делаю парсинг с интернета и мастерю поиск под себя.
разумно хранить в NOSQL-ных БД.
Абсолютно точно нет.
В любом случае это будет клиент-серверное приложение, не монолит на файлах как у вас скорее всего сейчас на дельфи.
Монолит очень удобен, вот если бы он изначально сделал под внешнюю БД и разделение прав на уровне БД — было бы очень здорово. Но как есть.
Переносите в браузер
Кстати, элемент этого механизма я перенес в MyTetra. В MyTetra кликабельные метки, а метки — это связи между записями (а записи можно рассматривать как сущности). Тыкая по меткам, можно в поиске получать списки связанных записей. И так можно блуждать по записям, причем «уйти» можно очень далеко, так что удивительно, как в базе может быть все взаимосвязано.
Возможно, мне помогли бы книги, которые мне очень рекомендовали:
Николас А. Солтер, Скотт Дж. Клепер, «C++ для профессионалов»
Брюс Эккель, «Философия С++» (1-й том)
Брюс Эккель, «Философия С++. Практическое программирование» (2-й том)
но я нигде не могу найти их в бумажном виде. С экрана же глубокого чтения у меня не получается. Максимум что могу читать — художественную литературу с книгочиталки. Но техническую не воспринимаю.
Абсолютно согласен про читалки, на них адски сложно читать техническую литературу. Но выход есть — самостоятельно распечатать интересующую книгу не такая уж и проблема. Лично я печатаю их через FinePrint в виде буклетов, получается достаточно удобно. Обычно делю книгу на несколько частей, с расчётом, чтобы буклет выходил не более 35-40 листов A4 (~150 страниц книги). Буклеты между собой не сшиваю, а просто пользуюсь ими как небольшими томиками. Поскольку литература техническая, то обычно томика хватает на неделю/другую вдумчивого изучения. Помимо того, что такой томик можно всегда легко взять с собой, в нём можно смело делать пометки на полях или выделять особенные моменты маркером (такой вандализм я бы не смог себе позволить с покупной книгой). Цена вопроса — лазерный принтер и немного сноровки.
Бесплатные клиенты под Windows и MacOS, все мобильники, а также веб ( то бишь Linux, тоже не вопрос). Хранию и форматированный тект, и картинки, и ссылки, и просто дофига всего с раскладкой по разделам и древовидной структурой.
Формат, конечно, не открытый, но бэкапить свои заметки никто не запрещает, багов особо найдено не было (а потому текущей версией можно пользоваться, не ожидая подвоха от микрософтовцев).
1. Первое что бросается в глаза в веб клиенте: выскакивающее окно времён HTML 2.0 для ввода адреса. Какого адреса, для чего он нужен — читайте доки. Ссылку на веб-клиент с конкретной базой можно сделать? А ссылку на конкретную страницу в базе?
2. Введёный адрес сохраняется в куках. Другую базу откроешь — кука перепишется. Списка открытых баз нет, две базы открыть разом нельзя — при рефреше останется одна.
3. Каждая запись — отдельный запрос на сервер. При повторном открытии — снова запрос.
4. Редактирование в веб клиенте отсутствует в принципе. Просто читалка.
Допустим веб клиент на самом деле не предназначен для широкого использования. Тогда зачем он? И в каком клиенте можно редактировать базу онлайн? У всех конкурентов есть онлайн редактор.
А у вас в инструкции по использованию первым делом расписаны шаманские манипуляции с репозиториями.
Ну не тянет оно на «самую нужную программу на свете». Понятно, что это ваше детище, вы его долго и с любовью разрабатывали, но до нормального публичного использования её ещё пилить и пилить. Сейчас это утилита для узкого круга лиц, изучающих всякие диковинки. Доки и статьи не помогут расширить аудиторию. Такое могло прокатить 20 лет назад, когда подобного софта было мало. Сейчас нужен интуитивно понятный интерфейс.
Этот клиент был написан в 2012 году, и с тех пор я его не развивал. Это очень простая оболочка, в которой не сделано даже поиска по названию записей и тегам. Просто демонстрация того, что базу MyTetra можно увидеть в браузере прямо в Интернете.
Странно было бы ожидать всего того, что вы написали.
> Например, внутри узла дерева, внутри заметки, дерево как-бы «кончается», а ведь оно может и должно продолжиться, при появлении новых данных.
Внутри заметки можно создавать ссылки на другие заметки. Поэтому ничего не кончается.
> Также не совсем понятно насколько просто выполняется рефакторинг дерева.
В дереве сделаны классические возможности по управлению ветками и подветками: создание, копирование, вставка, удаление, перемещение. Таким образом, дерево можно менять как угодно.
Разумеется веб решение — кроссплатформенность, кроссбраузерность, возможность развертывания как saas сервиса так и персонального решения в виде сборки с каким нибудь wamp, легкость шаринга ссылок.
Само собой — оперсорс проект.
Даже если дальше обдумывания дело не пойдет — все равно какое никакое развлечение на праздники.
И еще такая мысль — в инете ща контента наверно уже петамегабайты или какая там дальше разрядность. Поисковики, предназначенные для отбора данных, справляются не ахти, особенно если перед поисковиком стоит дилемма — выдать юзеру нужное или то за что заплатили чтобы выдал. Посему не исключена тенденция к распространению ресурсов с ручной модерацией данных. Подобные проекты могли бы быть вариантом решения организации баз знаний. ИМХО конешно.
Всё сводится к тому, что мне нужно три вещи, которые никогда не идут вместе: удобное редактирование, семантика, презентация. Вот если что-то хочется по-быстрому записать, то конкурентов org-mode нет. Но никакого представления данных кроме деревянного нет. Семантики тоже нет, разве что встроить таблички. Если хочется годного представления, обзоримого глазу — берёшь любой mindmap и раскладываешь вручную схемки. При этом удобство редактирования очень мало, а семантики снова нет. Единственный вариант получить семантику — это какая-нибудь графовая технология. Дохлый стандарт TopicMap. Примитинвый, но рабочий RDF. Вот в самом деле, хорошо работает, проверял на примере protege. Ресолверы работают как надо. Можно задать произвольную формулу и она материализует объекты — это как формулы экзель, только не привязанные к таблице, а поверх произвольного графе. Зато совершенно невозможно редактировать, и смотреть на записи можно только по-одной. А хотелось бы произвольно разложить информацию по рабочему столу и сохранить эту визуализацию, поскольку презентация значит для осмысления много.
Конечно, персональный менеджер должен быть ещё и социальным. Во-первых, должен допускать возможность шарить информацию, что для опенсорса и открытых стандартов происходит само собой. Во-вторых, надо извлекать информацию из сети. Ну что-то вроде интеграции со scrapbook. А можно не только паразитировать на браузере, но и добавлять возможности — например делать запросы к гуглу. В браузере ты должен прощёлкивать стринички вручную, чтобы с удивлением узнать, что половина выдачи тупо не содержит слов, указанных в запросе. Было бы просто замечательно, если бы извлечение информации было тоже автоматизировано.
Потому что удобство, интеграция и автоматизация очень важна. Без них проще будет полагаться на собственную память, чем привлекать к работе PIM. Это всё равно что бекапы без автоматизации. Так что я продолжаю искать.
P.S.: Кстати, обсуждаемое здесь утверждение «альтернативы дереву как формы представления нет» считаю весьма спорным. Раскрывать интригу до конца не буду (да и NDA не позволяет), но смутно намекну: графы можно собирать не только из заметок и записей.
P.P.S.: Если кому-нибудь интересно подключиться к разработке — пишите. Приношу извинения, если кажусь назойливым — просто не знаю когда ещё на хабре подвернётся возможность попробовать найти людей на проект.
Восемь лет назад он уже был хорош, а сейчас и придраться-то особо не к чему.
Древовидная структура с неограниченной вложенностью, поиск, теги, аттач любого файла, интеграция видео, запись звука, мощные сторонние надстройки, расширяющие и без того обширный базовый функционал (Onetastic и OneNoteGem), шаринг (и недавно, наконец, сделали шаринг отдельной страницы), полная кросс-платформенность, веб-приложение, полная бесплатность. Даже и не знаю, что еще надо для Щастья=)
У меня 2000+ заметок.
Многое, что я постоянно использую для создания и управления своей базой знаний в вашем продукте нет.
И спасибо большое за замечательную статью, за массу идей! В MyTetra есть все для успешного стартапного проекта.
Тут надо придумать, как её монетизировать, и понемногу получать доход.
К сожалению, моя работа не связана с программированием: там, где я живу, такой вещью не заработаешь. В моем окружении нет знакомых, кто хотя бы знал разницу между «сями» и «плюсами», только пара PHP кодеров.
Попробую дать пару советов, как пообщаться с людьми, знающими C++.
- Устройтесь в фирму, можно удалённо
- Присоединитесь к свободному проекту или создайте свой
- Сидите на гитхабе, выкладывайте там свои проекты и участвуйте в чужих
- Понятное дело, для вышеназванных пунктов будет крайне полезно общаться и читать по-английски
Ещё можно мне написать...
Я пытался улучшить понимание C++ просмотром лекций из курсов удаленного обучения
Да что ж такое. Читайте книги (можно на читалке, можно в бумаге, можно в электронном виде), далее обязательно набирайте весь код в примерах в компьютер (да, да, просто по дороге в метро так не получится), компилируйте его, исправляйте пока не заработает. Если есть упражнения — решайте их. Экспериментируйте, пишите код. Сидите на http://cppreference.com (да, надо параллельно инглиш подкачивать).
Читайте Страуструпа, причём не пролистывая непонятные места, а именно прорешивая их. Сам Струструп советует для новичков свою книжку "Programming: Principles and Practice using C++", а для хороших программистов — "The C++ Programming Language".
Ну и вообще, C++ — очень сложный язык, и лучше начинать не с него. Начните с питона или javascript.
Ещё посмотрите сейчас эти две ссылки:
http://norvig.com/21-days.html (там есть ссылка на русский вариант)
http://pikabu.ru/story/vyiuchit_yazyik_programmirovaniya_c_za_21_den_34413
char* fromQStringToChar( const QString& str )
{
/* (коммент) */
return str.toLocal8Bit().data();
}
Мне лень проверять, но у меня сильное подозрение, что здесь возвращается указатель на локальный объект (ping webhamster ). toLocal8Bit возвращает QByteArray, который уничтожается после выхода из функции. Автор пока не словил сегфолт, потому что ему везло (или словил?). Ну и добавил сюда, что автор сам говорил, что плохо разобрался с наследованием. И я не говорю, что новичок, я просто накидал ссылок
Поэтому я и не люблю ни Си ни плюсы. Хотелось бы мыслить более абстрактными категориями: получил строку в подпрограмму, сделал преобразование, вернул. И не париться с тем что там с памятью происходит.
Я даже скажу больше: чтобы делать таких размеров проект в одиночку, сваливаться в низкоуровневые подробности вообще нельзя — просто не вытянешь проект, завязнув в мелочах. Поэтому я и выбрал Qt — он хотя бы сглаживает подобные вещи своим QString и прочими готовыми объектами. Казалось бы, такая малось — человеческие строки в плюсах. Но если бы их не было, я бы вообще не взялся за этот проект.
Но тут на стыке с традиционными строками всегда для меня будут проблемы. Я когда программирую, выкидываю из головы все эти указатели, стеки, кучи: мне нужно мыслить в терминах решаемой задачи. Но Си и плюсы эту естественную потребность сильно ограничивают.
И я считаю, что подобные ошибки — это явная проблема языка, никак не решенная до сих пор. Что это за язык такой, который позволяет сразу после возврата значения его потерять? Понятно, что возвращается не значение, а указатель на него. Значение бъется, а указатель правильный. Но елки палки, это же строки! Это же самая простая и естественная вещь в программировании. Как можно было сделать язык с такими строками?
Предваряя холивар: я писал на Ассемблере (см. размер интрушек), и хорошо себе представляю и стек и кучу, и как на низком уровне работает компьютер. Но эти знания мне не помогают избавиться от ошибок в сях и плюсах. И сам язык (во всяком случае gcc) таких ошибок не ловит.
надо было выбрать fpc
В C++ можно немного облегчить себе жизнь, если не использовать char *, а всегда использовать только std::string (если используется Qt, то ещё и QString). Но низкоуровневые вещи всё равно будут вылезать
Контроль низкоуровневых процессов — не только слабость, но и сила. Нужно её правильно использовать.
Стиль написания кода в плюсах подразумевает создание послойного приложения. Берётся (или пишется) ядро, которое контролирует низкоуровневые нюансы — и уже над этим ядром создаётся прикладной код, в котором можно использовать либо безопасные (но более медленные) классы ядра, либо писать хорошо оптимизированный, но более опасный код на уровне самого ядра (такой код будет использоваться ограничено, инкапсулироваться в местах, нужных для подобных сверхоптимизаций и со временем, вероятно, будет переносится в ядро).
Беда плюсов заключается в отсутствии общих стандартов дизайна программ и отсутствии внятного инструмента для простого выбора и настройки нужной степени абстрагирования от «уровня железа». Нет модулей. Как следствие, нет внятного менеджера пакетов и нет возможности быстро выбрать и встроить в проект нужную в смысле навороченности прослойку-ядро. Наличие пакетного менеджера позволило бы собирать приложение по принципу бутерброда, выбирая между безопасностью кода и его эффективностью.
Закончу тезисом: пакетный менеджер не роскошь — а жизненно необходимая вещь. Пакетный менеджер и стандарты дизайна кода — вот, что может навести порядок во экосистеме языка и спасти его от потери позиций. DIXI
Ещё раз приношу извинения за оффтоп.
И сам язык (во всяком случае gcc) таких ошибок не ловит.
Есть статические анализаторы, правила работы которых — да — должны декларироваться как-нибудь в рамках стандарта и должны встраиваться в компиляторы. Тот же rust, по моим наблюдениям (сам на нём не писал), это вычищенные от legacy-хлама плюсы со встроенным статическим анализатором, который не даёт совершать глупости. Rust любят за это, а плюсы, увы, слоупочат, опять же теряя позиции.
Стринги QString прекрасны.
Вопрос в стыках с традиционными сишными строками. В сях и плюсах вообще идет подмена понятий. Чарные строки — это не строки вовсе а просто массивы. Но их постоянно называли строками, и даже в именах функций, которые по сути работают с набором байт, зачем-то писали «str». Сейчас имеем то, что имеем. В сях появились std::string, но прототипы низкоуровневых функций по прежнему требуют чарные строки.
Так вроде toLocal8Bit создает в куче новый QByteArray, почему он должен уничтожаться?
Вы слишком радужно смотрите на удаленку. Серьезные вещи делали люди, которые до этой удаленки десятилениями работали в коллективе и имели профильное образование и обрасли профессиональными связями.
А вчерашний студент с непрофильным образованием, будучи сразу помещенный на удаленку, ничего в серьезном OpenSource не сделает при всем своем энтузиазме и тихо будет деградировать. Еще хуже, если он будет жить не в дефолситях, а в провинциальном городе: ни на каких конференциях он не побывает, рядом с ним в местной тусовке никого не будет, человек будет просто сидеть и работать. До некоторых пор. В лучшем случае он уйдет в какой-ниюудь инди-гейм-девелопинг под iOs, в худшем — плюнет на это дело и станет работать по профессии. Да, и не забывайте, что у очень многих людей при всем желании нет возможности учиться там, где они должны были бы учиться. Не у всех родителей есть возможность обеспечить учебу студента не только в нормальном вузе, но даже просто в другом городе.
У меня небыло ни профильного образования, ни десятилетий работы в коллективе. К моему возрасту я по призванию смог проработать разработчиком только один год на постоянке по невероятным стечениям обстоятельств. Потом пять лет там же удаленно. Все остальное время — работа для выживания на должностях, никак не связанных с программингом. Но я знаю, как я вырос за год очной работы разработчиком, и как сдеградировал за время удаленки.
По поводу конференций подумайте, зачем их вообще устраивают, и зачем туда люди ходят. Ведь можно просто видео записать, а кому надо — посмотрит.
Разовые заказы для новичка — самое оно
Хочется заметить, язык программирования должен быть популярен у новичков. То есть найти аутсорс заказы на php, pyton, java se очень легко. На java ee — в разы сложнее. На pure C при этом вы не паяете, а только кодите — очень не уверен, что найдёте аутсорс. Я могу ошибаться, поправьте, пожалуйста.
Во вторых, хронометраж времени. Для большей части кодеров он ужасен. Многие за целый день не пишут ни одной строчки кода, не потому что они учат, что-то новое или ошиблись и стёрли результат труда. Они слишком отвлеклись на форумы и хабр. Большая часть кодит не более 2 часов в день. Тем, кто кодит 5 часов и выше я бы сразу зп на три умножал. Обратите, внимание, мои циферки не работают для php и delphi кодеров, также может ещё для кого.
Просто есть люди которым необходим начальник для работы.
Но, видимо, автор хочет, чтобы был наставник. В компаниях (как я это видел) примерно так новички и обучаются — всё им разжуют и на все вопросы ответят, делай только на первых порах всё, что скажут и спрашивай, что непонятно.
у видео не спросишь те вещи, которые тебе были непонятны по ходу лекции
Можно спросить у компилятора. Далее можно попытаться выяснить на http://cppreference.com. Ещё можно спросить на канале c++ IRC-сети Freenode. Ещё на stackoverflow или тостере (либо искать уже заданные вопросы там же). Ну и в поисковиках
Сейчас мы с коллегами используем в виде базы знаний такой набор костылей:
* ZimWiki
* EverythingSearch
* Файл-теги (пустые файлы #теги, которые добавляются в папки для упрощения поиска)
* Launchy (в режиме телефонного справочника, каждый контакт — отдельный .txt)
Ваша работа очень кстати — вопрос PIM как нельзя более актуален сегодня, когда мы от «устного эпоса» наконец переходим к «письменности».
Файл-теги (пустые файлы #теги, которые добавляются в папки для упрощения поиска)
Чем встроенная поддержка @тегов в zim не подходит?
Навскидку — что можно было бы изменить:
Из косметического — добавить иконку в исполняемый файл. Если программа уже запущена, то при попытке повторного запуска не показывать сообщение с одинокой кнопкой (кстати, не локализованное), а просто разворачивать программу из трея. Иконки на тулбаре мелковаты (ну для меня во всяком случае — мой монитор 2560x1600). По юзабилити — всё, что, делается из контекстных меню можно сделать доступным и из основного меню (скажем, добавить туда пункт «редактировние» и динамически менять его в зависимости от контекста. Также добавить горячие клавиши, типа Ctrl+C/Ctrl+V, Ctrl+N для новой ветки, Ctrl+Shif+N для подветки, и т.д. Если я хочу удалить что-то — ветку или статью — я инстинктивно нажимаю Del, но ничего не происходит. Ветки было бы здорово просто таскать мышкой, а не через «преместить вверх/вниз»). Редактирование статьи можно разместить справа от дерева, а не снизу — нынче мониторы широкие (это первое, что я сразу же поменял — там одна строчка всего). Поскольку предпочтения у всех разные — добавить опцию. Переименование ветки/записи можно делать сразу в таблице или дереве, не показывая диалог. Редактор — чуть допилить — сделать возможность менять цвет текста — пока что это можно сделать лишь ручным редактированием html. Список прикреплённых файлов можно показывать совместно с окном редактирования, чтоб не переключаться туда-сюда.
В принципе можно не разбивать представление на «ветки» и «записи», а обойтись одним деревом, где каждый узел уже и будет записью. Вот сейчас, если я хочу добавить к записи дочерние элементы, я не могу этого сделать.
К записям можно было бы добавить тип — скажем, ToDo, Task или Simple. Пока что у вас все записи — «Simple» Если изменить тип на Task, то там можно добавить прогресс-бар, степень исполнения может пользователь задать, ну или автоматически вычислять его, если там есть подзадачи с типом ToDo (ну там чекбокс в таблице выкатывать). Это превратит проект в более полноценный PIM. Ну там соответственно надо будет добавить время завершения, приоритет, и т.д.
Это просто мысли, я понимаю, что исходники открыты (спасибо) — я давно хотел посмотреть Qt, теперь будет с чем поковыряться долгими зимними вечерами. Выше есть некоторое количество комментов в стиле «зачем это надо» — не обращайте на них внимание и продолжайте работать над проектом, вы всё делаете правильно.
Очень хорошо, то, что вы разработали… Но, признаться, при знакомстве с вашим творением я не нашел, чем оно принципиально отличается от Zim. У Zim уже есть использование картинок, линков, древовидная организация заметок, теги для ускоренного поиска, поиск. А еще плагины, расширяющие его в любую требуемую сторону. Есть версии под Линукс и Виндоуз… И то, что мне представляется особым плюсом — хранение записанного в виде простых .txt файлов, что позволяет добраться до записи и без самого Zim. Хранение на сервере и доступ из разных мест… ну сейчас и правда много облачных хранилищ…
Не хочу сказать, что не нужно изобретать велосипеды. Нужно. Это дает новые инженерные решения. Но если есть что-то, что может быть существенным отличием, то, на мой взгляд, стоило бы развивать это самое отличие…
Я не понял, какую ссылку вы имеете в виду.
URL на запись в интернете типа http://webhamster.ru/mytetrashare/index/mtb0/1380477009ru8td8so8d?
Или ссылку на запись внутри MyTetra типа mytetra://note/14031612667yhiim7knf?
У Evernote другая концепция, плюс он проприетарен и платен.
Все остальное есть: дерево, теги, поиск, сторонние или самописные расширения, все бесплатно, кроссплатформенность, полный онлайн/оффлайн доступ к базе или стэндалон оффлайновая база. На любую базу можно пароль повесить. Что там вам еще было нужно?
Кроме того у него есть фатальный недостаток — его невозможно носить с собой на флешке.
Вот мой сценарий использования:
Я работаю на пусконаладке промышленной АСУТП. Соединения с интернетом у меня нет. На управляющий компьютер я ничего ставить не могу. Хочется иметь доки под рукой (их несметное количество) и записную книжку прямо на компе, где я работаю. Вот тут предложенное решение очень даже.
Ну и кроме того есть еще такой синдром "неприятия чужой разработки". Вы странным образом допытываетесь у автора, почему ему не угодило то или иное существующее решение. Он просто сделал так, как удобно ему, плюс сделал проект открытым, чтобы каждый мог или поучаствовать в проекте, либо форкнуть и допилить под себя, только и всего.
OneNote portable гуглится. Сами «записаные книжки» и так можно хранить где угодно, в том числе и на флешке.
Форкнуть под себя — пожалуйста, пишите надстройку или используйте готовую (onetastic, onenote gem).
Я указал автору, что он потратил годы разработки, а вышло только хуже с точки зрения интерфейса и функционала.
Единственный аргумент, «неприятие чужой разработки» уважаю, но тратить 8(!) лет на свой софт, и ни разу не посмотреть, «а что там у конкурентов» — - за гранью моего понимания. Тем более, что этот продукт не монетизируется.
Portable версии официально не существует. «Неофициальные» сборки есть для старых версий, и работают так себе.
Дома я, кстати, пользуюсь OneNote 2010 — на работе раздавали профессиональный офиc за 12 Евро. Бесплатная версия однако вот не «прижилась» совершенно (тут ещё очень медленный интернет сыграл свою роль — у меня 2 мегабита на вход и всего 256 кбит/c на отдачу).
На самом деле автор смотрел на другие продукты:
Из проприетарных продуктов я пересмотрел линейные и древовидные PIM-менеджеры… более-менее доделанными оказался Microsoft OneNote… Но видя, каким деструктивным маркетингом занимается Микрософт, связываться с OneNote я не стал.Вот у меня есть аналогия с бумажными органайзерами. Лет двадцать назад коллеги подарили мне органайзер-ежедневник. А я как раз прочитал книгу Даниила Гранина «Эта странная жизнь» (кстати, рекомендую), и, познакомившись с «тайм-менеджментом» Любищева, начал всё записывать в эту красивую книжечку в кожаной обложке. Довольно быстро я понял, что рамки «прокрустова ложа» календаря мне не подходят — некоторые дни занимали две строчки, а другие — две страницы, кроме того, мне нужна была бумага в клетку. Я завёл тогда простую тетрадку на 96 листов, но формат был не очень удобен, я даже пробовал её скальпелем подрезать, кроме того, под конец она просто разваливалась. Потом я нашёл "Moleskine". Стоят эти записные книжки невменяемых денег, но почти хороши — ими довольно приятно пользоваться. И вот не хватало мне сущей мелочи — нумерации страниц (это первое что я делаю с новым блокнотом — нумерую все страницы — у меня есть система оглавления). Вроде мелочь, но вызывает дискомфорт. Я даже был готов напечатать и переплести свою версию (это, фактически, именно то, что делает автор). А потом я нашёл то, что так долго искал — Leuchtturm1917, и для меня наступило счастье — там прекрасно всё (ну, кроме цены, пожалуй) и я снова в своей «зоне комфорта». Я тоже потратил годы на постройку и поддержание стройной (для меня) системы, при этом она подойдёт далеко не каждому.
То, что у автора вышло «хуже» — это ведь с вашей точки зрения. А с точки зрения автора там всё нормально — он своими руками сделал себе идеальную записную книжку. Там ровно столько функционала, сколько нужно автору.
Но в общем и целом простая и понятная программа, сделана красиво.
Осталось сделать возможность писать на нее плагины. Как практический учебник сохраню в заметки.
Какой категорично другой опыт даст мне любой pim, включая evernote?
Да, в gmail нет сейчас одного — ссылок из одной заметки в другую. Но как-то живу без этого.
Ну и еще вам про наличие интернета уже говорили, повторять не буду.
Наличие интернета неважно, если на то что точно будет нужно заранее поставить звёздочку, и оно будет синхронизированно с устройством даже с вложением внутри.
Ну и еще вам про наличие интернета уже говорили, повторять не буду.
Можно использовать оффлайн версии, например, в thunderbird я как то в итоге хранил почти 500 тысяч писем. Поиск был очень быстрый.
Передать кому то, вполне реально экспортируя определённые письма.
Говорить, что нет древовидной структуры совсем — неверно, можно разбить по каталогам внутри программы. Неудобно.
Зато решается множество проблем, которые не решены в вашем софте. Не идеально, но близко.
Соответственно думайте, что хотите, но мы не находим новые фичи программ, мы толпами пользуемся одинаковыми программами для одинаковых целей.
и вот ищу святой грааль для визуализации событий на временной шкале
Нашлось чего-нибудь? Чем не походит обычный таймлайн?
Идея попробовать свернуть таймлайн в бублик необычна… Но, как мне кажется, такое решение оставляет много пустоты (собственно, центр бублика), а если сделать не бублик, а спираль (чтобы события шли плотно из центра) — считывать информацию станет не очень удобно.
Вообще, как мне кажется, популярность горизонтальных и вертикальных таймлайнов связана с тем, что они дают чёткий критерий сортировки событий. Справа точно то, что позже. Слева — то, что раньше. Естественно и удобно, на мой взгляд.
Возможно, я что-то не так понял. Если будет возможность — расскажите подробнее. Интересно.
Если пришлешь, я тебе тоже пришлю две картинки от меня и моего товарища. Мы как-то раз рисовали такое. И ничего подобно что там намазякали буржуи у нас небыло.
Дело в том, что искусственного интеллекта, который угадает Ваши пожелания, и выделит какой-то фрагмент, пока нету. А вот в электронной книге можно вставить примечание, проиндексировать его вместе со всеми пометками к книгам одной тематики.
К примеру, все пометки к книгам по истории сложить в одну индексированную кучку, все пометки к математическим книгам сложить в другую, и так далее.
Лично сам, пользуюсь отправкой письма к себе и с последующим переносом в папку.
Какие впечатления от прочитанного?
1) Программирование. Силы и времени вложено достаточно много в этот труд. Это хорошо, когда делается что-то конкретное, не отвлекаясь на мелочи и абстракции (мне напомнило веянием этой статьи
«Хабр: Это не твоя проблема»). С другой стороны: чтобы создать что-то действительное конкурирующее, нужно развернуться и решить следующие задачи. Например, задачи не связанные с программированием. Это базы знаний, экспертные системы. Я к тому, что программирование это всего лишь инструмент. Сильный инструмент, который и дает результаты. Но, нужна основа — математическая модель, то есть выделить её, создать. Хотя все уже создано до нас. Значит — задача уметь использовать существующие знания вкупе с инструментами. Автор в принципе это и сделал. А как насчет создать что-то новое и нестандартное? Не дерево, а что-то другое. Не поиск, а вопрос-ответ. Или это вообще не проблема наша, не проблема автора? Делай, что нужно тебе! Ничего лишнего! Это не твоя проблема!
2) По поводу PIMов вообще, в том числе и отправки заметок на почту. Ну, знаете, даже если у нас есть облака, смартфоны под рукой, синхронизация и т.п. Просто человек не может все помнить, или он завален другими делами, чтобы даже напомнить себе о том, что у него в ПИМе есть какая-то заметка. Ясно, что заметки и знания делятся на нужные и ненужные.
3)Опыт. В целом главное, что автор получал опыт разносторонний. Вот это прекрасно!
Вообще мне понравилась статья позитивом, историей создания продукта и вдохновением. Такие авторы и претворяют в жизнь стимул… Для этого двигаемся дальше!
https://github.com/leon-mbs/zippynote
пока по минимуму а там жизнь покажет
можно потыкать в демку
Кто-нибудь встречал открытые web аналоги? Поделитесь...
Автор программы восстановил работу сайта с форумом https://webhamster.ru/
Самая нужная программа на свете