Как стать автором
Обновить
51
-1
Павел Малыгин @trusted

Пользователь

Отправить сообщение

Спасибо! Все верно. Если есть задача провести встречу, зафиксировать ее результаты, участников, создаем заметку из шаблона meeting.

Просто TickTick и Obsidian это немного разные продукты. Если TickTick с его ограничениями и возможностями хватает то можно не экспериментировать)))

Есть варианты, как можно настроить синхронизацию самостоятельно но требует время и изучения материалов. Если Obsidian очень нужен и других вариантов нет, то можно и заморочиться.

Спасибо за подробный комментарий!
Универсальную структуру шаблона мне не удалось придумать, из за уникальности данных, которые хочется отдельно фиксировать в project, meeting или task.

По поводу изменения типа заметки тут действительно есть некоторые сложности. Теоретически можно создать задачу, а позже решить переквалифицировать ее в проект. Но тут уже вопрос, как часто такие ситуации возникают? Если не часто, то проблем быть не должно.

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

Само же изменение типа задачи стоит делать с помощью изменения метаданных, например, плагином Metadata menu.

Рассматривал вариант использования метаданных для типов заметок, но потом отказался. Конечно, совместно с плагином Metadata menu многое что можно реализовать. Однако с добавлением такого рода плагинов система значительно усложняется. Возникает другой вопрос, нужно ли такое усложнение и насколько пользователю будет комфортно и удобно пользоваться такой функциональностью. Сам по себе obsidian со своим markdown уже отпугивает многих людей.

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

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

Еще раз спасибо за предложенные дополнения и идеи. Особенно понравился плагин Metadata menu. Конечно было бы интересно потрогать готовое решение. Свою статью больше позиционирую как некий шаблон, основу для дальнейших персональных настроек т.к. у всех разные требования и вкусы, мой вариант тоже выглядит по другому, постоянно меняю, подкручиваю под себя.

В текущей реализации нет, но как писал в заключении есть дополнительные плагины, например obsidian-tasks, он легко встраивается в данную концепцию и там такая функциональность имеется https://publish.obsidian.md/tasks/Getting+Started/Recurring+Tasks

В чем именно сложность? После настойки пользователь просто создает заметки и прописывает в них связи с другими. Или сложность в GTD?

Спасибо. Я больше за минимализм. Со временем приходит понимание, что излишняя зависимость от чужих разработок ни к чему хорошему не приводит, будь то Obsidian или что то еще. По существу для реализации представленной концепции достаточно всего одного плагина DataView. Последнее время даже для напоминаний больше использую TickTick (есть интеграция с Obsidian под MacOS). Поэтому по поводу Project, да, как вариант можно поиграться как и с другими подобными плагинами, которые я упоминал в конце статьи. Но на вскидку не увидел ничего особенного, что нельзя было бы настроить через то же DataView. Возможно ошибаюсь, попробую поизучать.

Не возникало проблем с синхронизацией, когда пытались править один и тот же файл на разных устройствах?

Синхронизация это конечно особая боль, тут или платить или заниматься техническим саморазвитием)

Не думаю, что все попытки объяснений непонятного понятным языком безрезультативны? Если At least once кто то понял то уже хорошо )))

Но все же зависимость существует? Если у топика 10 конкурирующих подписчиков то логично создать 10 партиций? В начале предложения надо было добавить слово "Обычно".

Хорошее замечание, спасибо. Статья относится к начальному уровню поэтому многие подробности были опущены. Иначе пришлось бы углубляться и рассказать и о существовании других альтернатив для Zoo в виде Consul, Atomix, Jocko ...

Боб запрашивает клиентский сертификат Алисы (опциональный шаг). В запросе на клиентский сертификат Боб указывает список CA, которыми может быть подписан клиентский сертификат Алисы. Корневые сертификаты CA уже есть в хранилище у Боба, поэтому когда Алиса присылает свой клиентский сертификат, Боб проверяет с помощью имеющихся CA, что он действительно ими подписан.

Если на практике то с помощью утилиты openssl подлинность серверного сертификата (server.crt) можно проверить с помощью CA (cacert.pem) так:

$ openssl verify -verbose -CAfile cacert.pem server.crt
server.crt: OK

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


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

Но представим ситуацию, Света перехватывает голубя Алисы, меняет сообщение и отправляет его Бобу. У Боба нет механизма узнать, было ли сообщение перехвачено и изменено.
Это явный минус HTTP. Его можно перехватить и изменить в процессе передачи.


Явный минус HTTP в том, что злоумышленник может просто банально прочитать перехваченное сообщение. Возможность изменения сообщения это уже вторично.

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

Вот такой метод перехвата, дешифровки, чтения, изменения, и отправки вновь зашифрованного сообщения называется Man in the Middle Attack или атака “Человек посередине”.


Вот такой описанный метод перехвата не называется атакой Man in the Middle. Ключ передается в зашифрованном виде поэтому Света не может его прочитать. Света вступает в диалог с А и Б, представляясь от их лица, это дает ай возможность в расшифровке ключей

Боб и Алиса придумали новую и более лучшую систему.
1. Когда Алиса хочет отправить сообщение, она отправляет пустого голубя без сообщения. Чтобы Боб узнал о начале переписки.
2. Боб отправляет в ответ настоящий ключ и шкатулку
3. Алиса пишет сообщение, кладёт в шкатулку, закрывает ключом и отправляет только шкатулку
4. Боб открывает шкатулку своим дубликатом ключа.

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

Для защиты от подделок шкатулок, Боб и Алиса договорились их подписывать и ставить на них печать


Шкатулка и так уже защищена замком. Печать (сертификат) нужен для того, чтобы подтвердить подлинность отправителя или получателя сообщений, а не защитить шкатулку.
Грубо говоря Иван выдает цифровые паспорта всем кто хочет общаться друг с другом, предварительно проверяя, что они те за кого себя выдают. В любой момент Алиса и Боб могут обратиться с полученным от отправителя паспортом к Ивану и проверить, что это действительный документ.

Быть может в большей мере используется Constraint Programming (CP) из родственной ASP области. И в частности для решения прикладных задач.

На CP Minizinc (Gecode) для N=150 находит решение за 7 сек, а с дополнениями еще быстрее.

int: n;

array [1..n] of var 1..n: q;

predicate 
    noattack(int: i, int: j, var int: qi, var int: qj) =
    qi     != qj     /\
    qi + i != qj + j /\
    qi - i != qj - j;

constraint
    forall (i in 1..n, j in i+1..n) (
        noattack(i, j, q[i], q[j])
    );

solve satisfy;

output	[	if fix(q[i]) = j then "Q " else ". " endif ++
	 	if j = n then "\n" else "" endif
	|	i, j in 1..n
	];

1. С идеологической точки зрения, наверное, не совсем правильно интегрировать систему с MiniZinc. MiniZinc в большей мере предназначен для разработки моделей и их проверки на наборе различных солверов. Далее в своей программе, на конкретном языке программирования можно уже использовать нужный солвер, подключая его как библиотеку. При этом не обязательно переписывать модель, созданную в MiniZinc на конкретный солвер, можно ей подкладывать промежуточный код FlatZinc. Хотя, ничто не мешает из своей программы вызывать консольные утилиты MiniZinc и формировать ответ в формате XML, а потом проводить обработку в программе.
 
2. Пример не совсем реальный, скорее это некая его основа, затравка. Настоящая модель гораздо больше и сложнее. Если у вас есть наработки для различных требований, то время разработки занимает не очень много времени.
 
3. Целиком расписание перестраивать не требуется. Если часть данных известно или уже была рассчитана ранее, то они указываются как ограничения и значения вычисляются для оставшейся половины.
Спасибо, интересная статья.
Попробовал на MiniZinc решить вашу задачку с счастливым билетом. Рассчитывает все возможные комбинации номеров за несколько секунд.

var 0..9: A;
var 0..9: B;
var 0..9: C;
var 0..9: D;
var 0..9: E;
var 0..9: F;

constraint (A + B + C) = (D + E + F);

solve satisfy;   

output [show(A), show(B), show(C), show(D), show(E), show(F)];

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

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность