summaryrefslogtreecommitdiff
path: root/content/posts/2025-11-23-org.md
diff options
context:
space:
mode:
Diffstat (limited to 'content/posts/2025-11-23-org.md')
-rw-r--r--content/posts/2025-11-23-org.md253
1 files changed, 0 insertions, 253 deletions
diff --git a/content/posts/2025-11-23-org.md b/content/posts/2025-11-23-org.md
deleted file mode 100644
index 95b54ee..0000000
--- a/content/posts/2025-11-23-org.md
+++ /dev/null
@@ -1,253 +0,0 @@
----
-comments: true
-date: '2025-11-23'
-tags:
-- гиковское
-- моё
-title: Личный органайзер
----
-
-Пришло в голову, почему бы не рассказать как у меня организован личный
-органайзер.
-
-Для начала стоит очертить то, какие у меня потребности от органайзера:
-
-- Вести список ежедневных, еженедельных, ежегодных, а так же, одноразовых
- событий
-- Вести быстрый список ближайших задач (ToDo список). Под быстрым, я
- подразумеваю то, что внести новый пункт в него я могу не дольше, чем за пару
- десятков секунд. Если это будет требовать бо́льших усилий, то я себя знаю: я
- это быстро заброшу, т.к. это станет для меня не помощью, а повинностью.
-- Место для быстрых заметок в формате «бесконечного текстовика». Аналогично,
- это должно быть под рукой в быстром доступе. Obsidian себя показал _слишком_
- медленным. Настолько, что мне стало проще запоминать, чем испытывать свои
- нервы каждый раз, наблюдая его длительный запуск. Да, звучит на первый взгляд
- глупо, но у меня так: запуск Obsidian длительностью в десяток секунд
- окончательно отбил у меня желание вовсе запускать его.
-
-Что же делать? Искать идеальный для себя инструмент? Идеального для _себя_
-точно не найду. Написать самому, ведь «яжпрограммист»? Можно, но откровенно
-жаль время. Что же делать-то?
-
-<!--more-->
-
-К счастью, я вспомнил что у меня же unix-подобная операционная система, в
-поставке которой огромное количество небольших программ, которые прекрасно
-выполняют какую-то небольшую функцию и при этом отлично стыкуются друг с другом
-через стандартный текстовый поток! Грешно не воспользоваться наработками
-гораздо более умных, чем я, программистов!
-
-# ToDo
-
-Проще всего оказалось с этим. Просто поставил себе
-[todo.txt](https://github.com/todotxt/todo.txt-cli). Хоть я и говорил выше, что
-идеального инструмента я не найду, но я тогда немного слукавил. Для ToDo этот
-инструмент _почти_ идеален. Всё что мне надо, кроме одного нюанса, там есть. А
-вот тот самый нюанс, я когда-нибудь исправлю. Возможно.
-
-Для удобства я себе в zsh добавил следующие alias:
-
-```zsh
-alias t=todo.sh
-```
-
-Таким образом, чтобы добавить задачку я просто пишу `t add текст задачи`. Куда
-уж проще и быстрее?
-
-# Календарь
-
-Идею организации календаря я подсмотрел в программе calendar, которая идёт в
-комплекте с BSD системами, но не идёт в конкретно моей ОС. Да, наверняка, можно
-и к себе притащить, но я из спортивного интереса хотел решить задачу
-максимально встроенными и стандартными инструментами.
-
-Лонг стори шорт:
-
-~/calendar.txt
-
-```
-01-28 ДР Лены
-10-18 ДР Мамы
-05-24 Годовщина свадьбы
-11-23 Ежегодное событие
-
-Пн 15 Еженедельный мит
-Пн 20-21 Чтение
-
-Вт 13 Архком
-Вт 15 Грумминг
-Вт 20-21 Чтение
-
-Ср 13 Техразвитие
-Ср 20-21 Чтение
-
-Чт 15 Грумминг
-Чт 20-21 Чтение
-
-Пт 20-21 Чтение
-Сб 20-21 Чтение
-Вс 20-21 Чтение
-
-2025-11-19 10 клуб амбассадоров
-2025-11-17 16:30-17:30 Встреча c 16:30 до 17:30
-2025-11-24 10:15 Golang Техком
-2025-11-24 11-12 Анализ логики состояния
-2025-11-23 21 Написать в блог о своём календаре
-```
-
-Пояснения:
-
-- `mm-dd\t\tСобытие` - некие ежегодные события, у которых указаны только месяц
- и день месяца
-- `Пн\tвремя\tСобытие` - еженедельное событие. Про формат времени - будет ниже.
-- `yyyy-mm-dd\tвремя\tсобытие` - разовые события в конкретную дату и время.
-
-Формат времени: его я подсмотрел у формата
-[calendar.txt](https://terokarvinen.com/2021/calendar-txt/), то есть, запись
-формата `15` - это означает что событие начнётся в 15 часов, `20-21` - событие
-длится с 20 до 21 часа вечера. С минутами, которые не обязательны, думаю, всё
-понятно из примера.
-
-Формат сам по себе абсолютно не жёсткий, допускает много вольностей. Главное,
-всё сводится к тому, что у него 1 строка - 1 событие и сама строка состоит из 3
-полей разделённых табом (в формате calendar.txt предлагается точка, для меня
-это показалось неприемлемым, т.к. я записываю в события и ссылки на созвоны, а
-ссылка включает в себя минимум одну точку)
-
-В принципе, тут уже можно было бы и остановиться и жить с просто текстовиком,
-но так было бы не интересно. Я написал на языке оболочки несколько полезных
-скриптов. Они настолько маленькие, что я просто приведу их здесь:
-
-~/.local/bin/calendar
-
-```sh
-#! /bin/sh
-
-cur=${2:-`date +%Y-%m-%d`}
-file=${1:-~/calendar.txt}
-grep \
- -e "^$(date +%Y-%m-%d -d $cur)"\
- -e "^$(date +%a -d $cur)"\
- -e "^$(date +%m-%d -d $cur)" $file |\
-sort -n -k 2 |\
-cut -f2- | fold -w 80 -s
-```
-
-Собственно, это главный скрипт, который собирает для текущей (или явно
-указанной) даты все релевантные события, сортирует их по времени и выводит
-форматированным списком. Примерно так:
-
-```
-% calendar
- Ежегодное событие
-20-21 Чтение
-21 Написать в блог о своём календаре
-```
-
-На этом я не остановился, но сделал ещё парочку вспомогательных скриптов,
-использующих его за основу:
-
-~/.local/bin/today
-
-```sh
-#!/bin/sh
-echo "Календарь:"
-echo -e ''$_{1..80}'\b-'
-cal
-echo -e ''$_{1..80}'\b-'
-echo "События дня:"
-echo -e ''$_{1..80}'\b-'
-
-calendar
-
-echo -e ''$_{1..80}'\b-'
-
-echo "ToDo:"
-todo.sh ls
-```
-
-Делает по сути тоже самое что и просто calendar, только ещё и рисует красивый
-графический календарик и показывает список ToDo задач.
-
-~/.local/bin/week
-
-```sh
-#!/bin/sh
-
-echo "На 7 дней:"
-for i in {0..6}
-do
- d=`date +%Y-%m-%d -d "+ $i day"`
- echo -e ''$_{1..80}'\b-'
- echo $d
- echo -e ''$_{1..80}'\b-'
- calendar ~/calendar.txt $d
-done
-echo -e ''$_{1..80}'\b-'
-echo "ToDo:"
-todo.sh ls
-```
-
-Выводит план на 7 дней вперёд.
-
-## Редактирование календаря
-
-Здесь тоже предельно просто: добавил в zshrc такой алиас:
-
-```zsh
-alias ev='nvim +/`date +"%Y-%m-%d"` ~/calendar.txt'
-```
-
-и просто по команде `ev` открывается neovim и готов принимать новое событие.
-Хотя это и не самая частая операция.
-
-# Быстрые заметки
-
-Тут тоже всё просто:
-
-```zsh
-alias qn='nvim "+normal G" ~/quicknote.txt'
-```
-
-Соответственно, по команде `qn` открывается мой текстовик для заметок на самой
-последней строке. Можно дописать или поискать что-то с конца. На самом деле
-очень удобно!
-
-# Мобильный?
-
-Я бы хотел все эти мои текстовики иметь и на мобильном устройстве. Даже не для
-редактирования, а например, свериться со списком задач / событий.
-
-Тут чуть сложнее. Для синхронизации с мобильным устройством я сделал такой финт:
-
-1. Все текстовики у меня лежат не в домашней директории, на самом деле, а в
- некой директории из которой симлинками уже прокинуты в корень домашней
- директории.
-2. Директория эта добавлена в Syncthing который синхронизирует её с NAS и
- мобильным устройством.
-3. На мобильном устройстве стоит замечательная программа
- [Markor](https://f-droid.org/packages/net.gsantner.markor/) которая нативно
- понимает формат todo.txt, ну и достаточно неплохо позволяет смотреть
- редактировать файлы calendar.txt и quicknote.txt.
-
-# Чтобы хотелось ещё?
-
-- Как я упоминал, в todo.txt для меня есть неприятный нюанс который я бы хотел
- исправить, а именно, вложенные задачи, когда у одной задачи может быть
- сколько угодно дочерних, у которых, так же могут быть дочерние. Пока думаю,
- расширить формат табуляцией в начале строки. Количество \t - уровень
- вложенности. Но тогда придётся модифицировать todo.txt-cli который я
- использую. И непонятно как это проглотит Markor. Можно конечно использовать
- встроенную возможность задавать key-value значения. Тогда будет что-то типа
- `Подзадача parent:2`. Это, как будто, самый правильный способ, который и
- рекомендуется разработчиками формата, но получается слишком многословно, а
- даже если сократить до `p:2` - всё равно надо в голове держать номер
- родительской задачи. Так себе. Не знаю ещё как поступлю, но как-то поступлю.
-- Было бы неплохо прикрутить парсинг ICS файлов из почты для автоматического
- добавления событий в календарь. Это сто́ит сделать однозначно!
-- Ну и очень желательно сделать скрипт который по крону за 15 минут до события
- напомнит о нём, через какой-нибудь `notify-send`. Это, на самом деле, из всех
- хотелок самая приоритетная для меня сейчас.
-
-Если будет интересно, я могу здесь рассказывать о том, что сделал из этих
-хотелок.