Есть новая стартовая страница
Всё, вчера доделал серверную часть приложения-стартовой страницы, которое я несколько дней назад начал генерировать с помощью с помощью DeepSeek. К моему огромному удивлению, почти всё работает, даже отложенная синхронизация изменений! Точнее, сначала не работала синхронизация содержимого виджетов со ссылками, потому что я забыл указать явно, что она тоже должна-быть. Но буквально один запрос, и проблема решилась. Сейчас уже сделал поддомен, установил получившееся приложение на него, раздал ключи синхронизации на мобильник и планшет. И начал переносить данные со Start.Me.
В приложении нет ни строчки кода, написанного мной: всё сгенерированно DeepSeek. Я только закомментировал сохранение лога событий на сервере (DeepSeek зачем-то решил, что может потребоваться их аудит), оставив только хранение текущего состояния, и вынес каталог с базой данных (по умолчанию там используется SQLite) на уровень выше относительно web root, чтобы базу нельзя было стащить. Потом ещё немного поправлю CSS, так как попользовавшись, понял, что нужно кое-что улучшить в плане удобства, например, сделать столбцы шире, а интервалы между пунктами списка дел — меньше, иначе списки просто не будут влезать в экран. Но это уже мелочи…
Впрочем, одна проблема всё же нашлась: не работает QR-код для передачи ключа пользователя на другие устройства. Там я сам себя перемудрил: вместо того, чтобы идентифицировать пользователя просто по UUID, решил сделать пару закрытый/открытый ключ (была мысль сделать отправку данных на сервер в шифрованном виде и позиционировать проект как решение для privacy-озабоченных). Но закрытый ключ оказался столь длинным, что не умещается в лимит QR-кода.
Теперь у меня очень противоречивые чувства. С одной стороны, восторг, что за два дня получил именно то, что хотел: достаточно профессионально выглядящее приложение с соблюдением принципов locale first и offline first, которое даст мне возможность отключать Интернет, но при этом всё равно иметь под рукой список дел и заметки на всех устройствах, и не просто иметь, а редактировать, не боясь рассинхронизации. С другой — реально начал верить, что такими темпами программирование в привычном виде реально станет такой же экзотикой, как в наше время — написание кода сразу в машинных кодах или хотя бы на ассемблере, и это обесценит мои знания. С третьей — испытываю эйфорию, что теперь могу получать быстрые результаты там, где прежде потребовалась бы куча времени на освоение нужных API и библиотек. Более того, возникает мысль попробовать писать desktop-приложения на связке Rust+Gtk (или native Kotlin+Gtk), в частности, сделать аналог Shotwell, но без его недостатков, и упрощенный аналог Obsidian без Electron и с selfhosted-сервером синхронизации вместо платного централизованного.