Три пет-проекта за выходные

  • пет-проекты
  • c++
  • codex
  • реверс-инжиниринг

Выходные прошли бурно: довёл до MVP сразу три небольших проекта.

FileSyncronizer — автоматический синхронизатор файлов между устройствами

Жутко оригинальная идея, уверен, никто такого ещё не делал. Была замечательная штука Syncthing, но потом её создатели заняли радикальную политическую позицию, и использовать их продукт стало невозможно. Есть ещё отличная штука Seafile, но для неё нужно поднимать большой и тяжёлый сервер, а раньше у неё не было нормальных мобильных клиентов.

Так или иначе, теперь есть заготовка сервера, который хранит всю историю версий файлов со всех агентов, рассылает обновления, регистрирует конфликты и уведомляет о них клиентов. Клиенты историю не хранят: они собирают локальные изменения, загружают их на сервер и получают обновления.

Всё написано на C++, собирается под Linux и Windows. Есть TLS-шифрование и дедупликация данных на сервере: файлы делятся на блобы, которые хранятся по хешам. На двух клиентах — ноутбуке и рабочем сервере — синхронизация уже работает. Продолжаю наблюдение.

AICommander — двухпанельный файловый менеджер, совмещённый с Codex

Я обалдел жонглировать окнами в tmux и, как всегда, не стал искать, кто и что уже придумал по этому поводу. Вместо этого запилил самый удобный интерфейс для файловой системы, который только изобрело человечество: двухпанельный файловый менеджер, в который встроил свои процессы работы с промптами.

У меня два таких процесса. Первый — файловый: в проекте есть несколько папок, где хранятся разрабатываемые, одобренные и выполненные промпты. Второй — через трекер: все промпты живут в нём, а Codex добавляет их туда, забирает и обновляет статусы. Трекеру я уже придумал собственное название, но об этом будет отдельный пост.

В Commander промпты видны как виртуальные файлы с состояниями. Их можно редактировать по F4, одобрять и запускать на исполнение. По F3 можно наблюдать за выполнением. Можно создавать новые промпты. Есть командная строка и чат с Codex, в котором удобно обсуждать и дополнять задачи.

Продукт, конечно, ещё сырой, но уже позволяет разрабатывать самого себя.

AICommander: двухпанельный файловый менеджер с интеграцией Codex
AICommander: двухпанельный файловый менеджер с интеграцией Codex

PlotLink

Если вы сталкивались с недорогими китайскими плоттерами, то наверняка узнаете это приложение. На иконке у него то ли «Буран», то ли шаттл. У приложения есть плохой перевод на английский, из-за чего понять происходящее не всегда просто.

Мой друг изготавливает на таком плоттере прокладки для оборудования — кстати, если вам нужны прокладки, рекомендую. В какой-то момент настройки сбились, и плоттер начал резать не там и не так, как нужно. Мы подробно разобрали все параметры и восстановили работу, но я уже не мог остановиться.

Я отреверсил приложение, извлёк математику, точно выяснил смысл параметров и правила работы плоттера. А по пути получился довольно понятный перевод интерфейса на русский. Теперь могу русифицировать и чинить плоттеры. В файле настроек у него, кстати, параметров больше, чем в интерфейсе.

PlotLink: интерфейс программы для настройки плоттера
PlotLink: интерфейс программы для настройки плоттера

Telegram-канал

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