Привет!
Привет!
Несколько месяцев назад я зачем-то полез изучать теорию категорий. Причины были примерно те же, по которым нормальные люди иногда решают разобраться в квантовой механике по роликам на YouTube: звучит умно, выглядит загадочно, а главное – можно потом с важным лицом употреблять слово «эндофунктор» в компании людей, которые не могут проверить, несёшь ты ахинею или нет. В моём случае ситуацию усугубляла любовь к функциональному программированию, поэтому рано или поздно столкновение с теоркатом было неизбежно.
Каждый лишний рендер — удар по перформансу. В React с его культом иммутабельности (который тянется с 2013 года) эта проблема знакома каждому, кто пристально наблюдал за тем, как ведут себя перф и метрики.
Под капотом React при каждом изменении стейта строит свежий Virtual DOM для компонента и всех его «детей», а потом запускает диффинг со старым деревом. Процесс не бесплатный — готовьтесь греть CPU и забивать Main Thread пользователя.

Привет. Я соло разработчик: студия из одного человека и ИИ ассистента. У нас есть сайт tempapp.ruЧитать полностью »
Меня достала реклама в торрент-клиентах. Я открываю такую программу с довольно скромным намерением: скачать файл, посмотреть скорость и свернуть окно. Предложение купить что-нибудь ещё в этот сценарий у меня не помещается.
В какой-то момент захотелось сделать клиент под себя. С приятным интерфейсом, выбором файлов перед загрузкой и нормальным поведением в фоне. Так появился Tern, бесплатный торрент-клиент для Windows с открытым кодом под MIT.
На момент написания статьи опубликована версия 1.2.0Читать полностью »
Практический разбор архитектуры, где CommandBus передаёт намерения пользователя, а EventBus распространяет изменения состояния между независимыми частями интерфейса.
В небольшом frontend‑приложении обычно нет необходимости придумывать дополнительные слои абстракции. Пользователь нажал кнопку — компонент вызвал сервис. Сервис изменил данные — интерфейс обновился. Проблема появляется позже, когда одно и то же действие можно выполнить из нескольких мест, а на одно изменение состояния должны реагировать несколько независимых частей приложения.
С такой ситуацией я столкнулся при разработке Читать полностью »
Выражение */15 9-17 * * 1-5 компьютер понимает однозначно, а человек читает с трудом. Особенно это мешает, когда расписание задаёт пользователь: в боте‑напоминалке, в админке, в настройках отчётов. Человек хочет написать «каждые 15 минут с 9 до 18 по будням» и увидеть, что его поняли правильно. Писать для этого форму с пятью выпадающими списками не хочется никому.
Готовых решений для русского языка я не нашёл, поэтому написал своё.
Библиотека называется cronsense. Она переводит расписание, записанное обычными словами на русском или английском, в cron‑выражение и обратно:
Читать полностью »
Новая Siri с Apple Intelligence не работает на системе с русским языком. Не «работает хуже» — её просто нет в настройках. То же самое у поляков, чехов, греков, венгров, израильтян и ещё полутора десятков языков, которые Apple пока не поддерживает.
Я полез разбираться, где именно проходит эта граница, и выяснилось кое-что интересное: macOS проверяет язык системы ровно один раз — при загрузке. Дальше ей всё равно.
Загрузился с английским — Siri AI включилась. Вернул свой язык — она продолжает работать до следующей перезагрузки. Никаких патчей, никаких системных файлов: одна загрузка на английском, а дальше живи как жил.
Я учу английский по сериалам. Смотрю с английскими субтитрами, и каждое незнакомое слово — это пауза, alt‑tab, переводчик, обратно. К десятой паузе за серию хочется просто включить русские сабы и сдаться.
Есть Language Reactor и похожие сервисы, но у них жёсткий список площадок: Netflix, YouTube — и всё. Каждый стриминг рисует субтитры своим способом, и под каждый нужен отдельный парсер. А я смотрю где придётся.
Недавно в BotFather у меня появилось сообщение о раннем доступе к Telegram Serverless. Решил посмотреть, что это такое и насколько реально теперь запустить Telegram‑бота вообще без своего VPS.
Если совсем коротко — Telegram сделал собственную serverless‑среду специально для ботов. Код и базу можно держать прямо на инфраструктуре Telegram, а отдельный сервер для простого бота больше не обязателен.
Пока всё это находится в early access, поэтому некоторые вещи ещё наверняка будут меняться.
После получения доступа в настройках бота появляется отдельный раздел Serverless.