Explain my tools & workflow
Created by Oleksii Koval

Arch vs Ubuntu
- Субъективно - процентов на 30 быстрее чем Ubuntu. Неясно почему - вроде тот же kernel, те же программы, но время отклика и например загрузки системы при Zoom+Browser+… ощущается по другому
- Намного легче конфигурируется с не дефолтным WM (сейчас Xfce)
- Объективно ест меньше памяти. Почему? Хз. Тот же ноут 16Gb был на 80% занят на Ubuntu, а сейчас на 50% макс, а чаще всего пару гигов и всё
- Скорость установки пакетов намного выше!
- Охват пакетов - намного больше (через AUR, если пользоваться Yay, вообше легко!)
- Версии пакетов намного более свежие
Операционная система
- Linux, Arch
- Linux наиболее настраиваемая из всех известных мне систем (в отличии от !):
- позволяет полную кастомизацию
- очень много вариантов Window Manager
- Window manager:
- долгое время я пользовался tiling WM (i3wm) в которых есть свой шарм и удобство
- Пробовал Ubuntu Desktop но он слишком органичен в функционале
- мало виджетов
- слабо конфигурируются быстрые клавиши
- дизайн оставляет желать лучшего, мало themes
- KDE - прекрасный красивый WM, но слишком глючный. Просидел почти год и снёс после очередного глюка
- Остановился на сегодня на XFCE - высокая надежность, частичный тайлинг (плюс я дописываю сам чего не хватает), удобство конфигурирования
Компиляция
- можно запускать flake8, но у меня он интегрирован в редактор как одна из тулзов валидации кода через пакет FlyCheck
- очень удобно для запуска тестов
- переход по ошибки
Hyperbole
- Например в emacs - LSP обшего типа для python, без поддержки Django напрямую - я никак не конфигурирую проект. Никакого кеширования файлов не происходит - идет авто подхват:
- auto virtualenv
- авто подхват проекта и файлов
- Минус - например в Pycharm сконфигурирован переход на темплаты
- Но я обощел через пакет Hyperbole, где можно конфигурировать "кнопки". Например запуск проекта тоже идёт через "кнопку", ну и темплата открывается "кнопкой" такого же типа как переход по ошибке
- Аналогично сделан как ссылка на файл (не org) так и переход по ней внутри проекта
- что само по себе удобно т к такой же формат поддерживается и в Pycharm
Лекость vs простота
- Начну с того что моя цель состоит не в навязывании своей точки зрения, не в противостоянии разных подходов, а в том что человек с открытой к новым знаниям позицией всегда может почерпнуть что то новое для себя.
- Все мы разные, и кто то готов тратить кучу времени на преодоление барьера входа в технологию или изучение инструмента, кто то не готов. Кто то готов настраивать систему часами, кто то всегда работает на defaults, никогда не прикасаясь к настройкам редактора или системы. Я не навязываю и не говорю что что то правильнее или нет, но я хочу показать те выгоды, которые дает мне инвестирование времени в настройку среды, возможно кому то пригодится.
Отличие текстовых интерфейсов
- скорость передачи данных через текст выше чем скорость передачи mouse->click, т е хотя общение с IDE намного легче освоить, но скорость выполнения аналогичных действий будет ниже в системе с IDE/Graphical UI .
- все ведуться на легкость в освоении но игнорируют конечную простоту (но сложность) в освоении комбинаций клавиш для управления текстовыми интерфейсами типа vim или emacs
- gptel: "В чем отличие легости от простоты"
- Simple Made Easy
- Emacs это не просто редактор - это попытка создать текстовый расширяемый интерфейс к многим тулзам.
- Я хочу показать маленькую часть, меньше 1%, а конкретно мои настройки для взаимодействия с поставленным Jira заданием и как я веду log работы для того чтобы не забыть контекст (память слабая да и не хочется постоянно всё в памяти держать)
org
Одна из центральных фишек emacs - управление информацией. Я очень люблю тулзы, которые помогают сосредоточиться на поставленной задаче, компенсировать недостатки человеческого мозга (объем оперативной памяти) и открыть креативное мышление. К этим тулзам можно отнести и orgpad, придуманный чешским математиком (The idea itself was created by a great Czech mathematician Zdenek Hedrlin who was thinking about 40 years how to use computers to better understand and capture his mind and thinking.)
Вкратце, использование org-mode в emacs и orgpad дают возможность продумать реализацию задачи, задокументировать её, вести записи по ходу дела, размышлять и решать как поступить, строить диаграммы и графики, запускать код, формировать списки задач (TODO) и учитывать затраченное на реализацию время.
Short intro for 2025-04-02
Коротко о Jira Task workflow.
- Emacs позволяет делать записки по ходу работы (вернуться/вспомнить/поделиться)
- Картинки
- Ссылки на видео и файлы и код
- Учет времени
- Навигация по коду
- Запуск проекта
- Переход к Jira задаче
- Навигация по git branch и тп
- Запуск SQL
- Запуск Python
- Export в html, docx, md
- Export org-jira, учет времени в самом emacs
DB management
- Целая серия тулзов, написанных на python под разные базы:
- pgcli

- litecli

- redli
- Dbeaver
- Org-babel SQL
Emacs
Скорее всего, большинство из людей никогда не будет пользоваться Emacs, просто по одной причине - барьер входа высокий, и Emacs не похож почти ни на что другое (ближайший аналог - vim). Но каждый может подсмотреть что то интересное из моего workflow - и далее найти plugin или конфигурацию для своей системы. Точно также как и я часто интересуюсь и "подсматриваю" интересный функционал в других системах типа pyCharm, VsCode и так далее а потом уже нахожу похожий функционал в emacs или дописываю его сам.
- Это не совсем даже редактор, а платформа для исполнения пользовательских настроек и пакетов плюс возможность редактирования
- Основная фишка интерфейса - попытка представить то, что ми привыкли видеть в графике - текстом (текстовые виджеты, управление с клавиатуры)
- Почта
- Slack
- Календарь
- Управление кодом (projectile, magit)
- Любые интеграции с внешними сервисами (chatgpt, etc)
- pdb/интеграция
- Поиск файла в проекте
- Поиск текста в проекте
- Удобный список через deadgrep
- Быстрый поиск в ag
- дополнительная фильтрация по типу файла
- дополнительные условия с ! и так далее
- -G
- Поиск и замена
- Почему полный экран удобнее - концентрация внимания
- показать как за секунды конфигурируется стандартный вид с терминалом снизу, списокм файлом слева и навигатором кода справа
- и почему это неудобно, при наличии альтернативы
О чём эта лекция
- Эффективное выполнение работы
- Всё это индивидуально. Я знаю людей которые умудряються хорошо программировать абсолютно не напрягаясь с сетапом чего либо (мышь, клавиатура, редактор и тп), например один человек работал намного эффективнее меня на протяжении 5 лет пользуясь только mcedit и редактируя файлы по очереди (копировал он через 3й файл)
- Важнее - настрой, и "включенность в момент", энергия и умение добиваться целей.
- Мне лично нравиться тратить часть своего времени на то, чтобы освоить инструменты, настроить их под себя и далее уже работать в более комфортных условиях
- Ещё раз, всё сказанное далее связано с скоростью выполнения типовой задачи и эффективностью и все настройки служат этой цели
- Не претендую на уникальность или особенность
- Всё о чем я буду рассказывать - мой субъективный подход. Он может работать для кого либо другого, а может и нет - особенности характера, опыта, мировосприятия влияют на это. Все мы разные и это надо принять.
- Набор инструментов - индивидуален. Тут большая вариативность - привычки и навыки, устройства (мониторы, мышки клавиатуры) и организация рабочего места (ноубук в автобусе / самолете | 5 мониторов и крутые клавиатуры - и то и то имеет право на существование)
- К сожалению мало кто делится своими наработками и подходами, и конечно намного проще когда рядом есть эксперт-ментор, который может дать правильный совет в правильное время. У меня (к сожалению) такого нет но я готов помогать и готов учиться у других.
- Что реально важно - вникать и думать о текущем моменте, не просто плыть по течению событий а управлять всеми своими действиями осознанно, это относиться как в жизни в общем так к выбору рабочих инструментов в частности
Процессы
Tools
Процесс работы над задачей
- Start/Stop project
- Open folder, open file
- Flycheck
- Автоформатирование кода:
- для JS - prettier
- для python - пока только isort
- LSP integration
- Ссылки на код
- C-z f2, Alt+Enter
- Console Alt+Enter
- Org mode и управление контентом:
- Ссылки на задачи через Omni
- Ссылки на код
- Запуск кода как в notebook
- Документация
- org plant
- org dot
- edraw
- embed images & videos
- publish docs (my-*)
- Фото и таблицы
- Учет времени и синхронизация с Jira
- Экспорт
- Работа с API
- Работа с AI
CopyQ
Excellent, but I use small subset of functions
Офигеваю с людей которые годами не могут понять что удобнее выбрать
Buffers management
- tab line
- proced
- helm-buffers C-zz
Processes
- Pomodoro
- интервал времени - сугубо индивидуален. Но исследования показали что около 40 минут в среднем более удачно чем 25 (в оригинале)
- тайм слоты

- Обязательное планирование "свободного времени"
- Таймер на десктопе

https://pubmed.ncbi.nlm.nih.gov/36859717/
Vivaldi
- Workspaces
- Tab list
- Configuration
print debugging
- add signature for debugging & easy removal, as ok- (via rofi or emacs)
- date +"ok-%Y-%m-%d-%s" | head -c -1 | xclip -selection clipboard -in
- highlight ok-
- easy to find & remove
references
Region
- Копирование
- Копирование в регистр
- Доставание последовательности
- Список скопированных
Работа в terminal
- Работа в terminal в принципе я предпочитаю работать с самым продвинутым терминалом - kitty
- но для задач запуска своих приложений - emacs подходит лучше из за:
- удобства копирования, поиска, редактирования текста
- подсветки произвольных кусков текста
- ok-trick (print debugging)
- удобно для отслеживания перед commit
- удобно для подсветки
- Несколько разных терминалов:
- полная поддержка xterm/vterm
- частичная поддержка (работает например с pip/django но не с docker)
- Переход по ошибке - hyperbole
Запуск приложений в rofi
- run
- windows
- browsers
- useful cmds:
- ssh key
- diceware, pwgen
- copy image to clipboard
Docker
- поддержка напрямую
- заход через tramp
Т е то я чем я говорил в самом начале - удобный текстовый интерфейс к разным тулзам.
Hardware & settings
- keyboards. I have tried A LOT. But still, there is no clear answer about the best one.
- Recommendation: use quality and more expensive. At least $100, otherwise the typing quality will suffer
- One thing worked for me well: remap right Ctrl → Enter (but only if pressed, if its combined with other key it works like enter)
- monitors. Also, quite subjective area, but with tiling WM - more monitors = better. in my setup:
- 1 monitor is dedicated to code editor (emacs). where I see both running the development console as well
- I also have planning notes on the same monitor
- on 2nd monitor is fully dedicated to running browser
- 3rd - Slack

Screenshoter & static site!
- myscr take
- my-publish-file
- per company - password protected
- instance with $7/mo
- satty, krita
- publish HTML!
База знаний
- Существует несколько баз, сейчас пользуюсь простой текстовой базой на основе текста и тегов: denote