Normal view

Ноль устройств в базе: четыре бага, которые видно только в упакованном билде Electron и невнимательность

Привет, Хабр! Пилю потихоньку пет‑проект и решил поделиться тем, что вылезло при первом же деплое.

Откуда взялась эта штука 

Основная занятость у меня связана с ИИ, но есть ещё подработки по 1С — в основном администрирование: обновления, настройка оборудования, выгрузки и прочее. Всё взаимодействие идёт в Telegram: множество чатов, в каждом свои задачи, у каждой свой дедлайн и своё техническое окно, когда её вообще можно делать. Базу не обновишь в разгар рабочего дня — значит, задача не просто «к пятнице», а «в пятницу после семи».

Пока задач несколько, они держатся в голове. Дальше начинается путаница: помнишь, что на этой неделе у кого‑то обновление, а у кого именно — уже нет. Я начал забывать про клиентов. Писал на бумажке. Бумажка не работает по простой причине: про неё тоже надо вспомнить. Она лежит рядом и молчит. А напоминание должно приходить само и туда, где я и так сижу целый день. Так и родилась мысль сделать свой блэкджек.

Читать далее

[Перевод] VideoFloppy: пять лет, десять пользователей, один доллар

Я сделал этот сайт, потому что исчез другой, который мне нравился. Пять лет спустя у него горстка пользователей, один платящий клиент — и он научил меня большему, чем любой туториал.

В 2017 году я готовился к IELTS, и мне дали совет, который дают всем: смотрите фильмы с субтитрами.

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

Он ничего у себя не хранил. Он собирал встроенные плееры с видеохостингов и делал их доступными для поиска. Это различие имело значение и технически, и юридически, и тогда я особо не задумывался ни о том, ни о другом — мне просто показалось, что это остроумно.

Потом сайт закрылся. Без объявлений, без объяснений. Я несколько лет искал замену и не нашёл.

В 2021 году я решил сделать свой.

Читать далее

Мой сайт грузился две секунды, потому что каждый CSS-файл писал в базу данных

Сайт не сломан. Он открывается. В логах чисто, ошибок нет — просто ты кликаешь по вкладке и успеваешь заметить, что кликнул.

Я померил: страница кабинета грузилась 2,1 секунды. При этом сервер отдавал HTML за 30 миллисекунд. Первый час я искал не там — потому что померил не ту страницу.

Всё решил один замер. Я дёрнул один и тот же CSS-файл десять раз с кукой сессии и десять раз без неё: 55 мс против 14 мс. За файл с диска. Оказалось, аутентификация делала SELECT, UPDATE и COMMIT в SQLite на каждую картинку и каждый скрипт — сорок раз за страницу, чтобы сорок раз переписать один и тот же таймстамп.

Вторым тормозом был Tailwind, который компилировал стили в браузере у каждого посетителя. Стало 0,9 секунды.

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

Код открыт

Смотреть, как я это нашёл
❌