Три пет-проекта за выходные
Выходные прошли бурно: довёл до MVP сразу три небольших проекта.
FileSyncronizer — автоматический синхронизатор файлов между устройствами
Жутко оригинальная идея, уверен, никто такого ещё не делал. Была замечательная штука Syncthing, но потом её создатели заняли радикальную политическую позицию, и использовать их продукт стало невозможно. Есть ещё отличная штука Seafile, но для неё нужно поднимать большой и тяжёлый сервер, а раньше у неё не было нормальных мобильных клиентов.
Так или иначе, теперь есть заготовка сервера, который хранит всю историю версий файлов со всех агентов, рассылает обновления, регистрирует конфликты и уведомляет о них клиентов. Клиенты историю не хранят: они собирают локальные изменения, загружают их на сервер и получают обновления.
Всё написано на C++, собирается под Linux и Windows. Есть TLS-шифрование и дедупликация данных на сервере: файлы делятся на блобы, которые хранятся по хешам. На двух клиентах — ноутбуке и рабочем сервере — синхронизация уже работает. Продолжаю наблюдение.
AICommander — двухпанельный файловый менеджер, совмещённый с Codex
Я обалдел жонглировать окнами в tmux и, как всегда, не стал искать, кто и что уже придумал по этому поводу. Вместо этого запилил самый удобный интерфейс для файловой системы, который только изобрело человечество: двухпанельный файловый менеджер, в который встроил свои процессы работы с промптами.
У меня два таких процесса. Первый — файловый: в проекте есть несколько папок, где хранятся разрабатываемые, одобренные и выполненные промпты. Второй — через трекер: все промпты живут в нём, а Codex добавляет их туда, забирает и обновляет статусы. Трекеру я уже придумал собственное название, но об этом будет отдельный пост.
В Commander промпты видны как виртуальные файлы с состояниями. Их можно редактировать по F4, одобрять и запускать на исполнение. По F3 можно наблюдать за выполнением. Можно создавать новые промпты. Есть командная строка и чат с Codex, в котором удобно обсуждать и дополнять задачи.
Продукт, конечно, ещё сырой, но уже позволяет разрабатывать самого себя.

PlotLink
Если вы сталкивались с недорогими китайскими плоттерами, то наверняка узнаете это приложение. На иконке у него то ли «Буран», то ли шаттл. У приложения есть плохой перевод на английский, из-за чего понять происходящее не всегда просто.
Мой друг изготавливает на таком плоттере прокладки для оборудования — кстати, если вам нужны прокладки, рекомендую. В какой-то момент настройки сбились, и плоттер начал резать не там и не так, как нужно. Мы подробно разобрали все параметры и восстановили работу, но я уже не мог остановиться.
Я отреверсил приложение, извлёк математику, точно выяснил смысл параметров и правила работы плоттера. А по пути получился довольно понятный перевод интерфейса на русский. Теперь могу русифицировать и чинить плоттеры. В файле настроек у него, кстати, параметров больше, чем в интерфейсе.

Telegram-канал
Короткие заметки о разработке, инженерной работе и пет-проектах публикую в Telegram-канале. Если удобнее следить за обновлениями через ридер, у блога есть RSS-лента.