Блог
Пангалинк сегодня (2026): архитектура iPizza и облачные альтернативы
Восемнадцать лет назад я написал про пангалинк статью, в которой фигурировали эстонские кроны, банки Hanza и Sampo, и подключение за 750 крон. Тот текст сейчас читается как археология: половины банков нет, валюты нет, тестовый сервис закрылся, а рядом выросла целая индустрия, которая делает то же самое, но по-другому.
Как Rails собирает страницу with content_for и yield
Статья про одну маленькую пару инструментов: `yield` и `content_for`. Они выглядят тривиально ровно до того момента, когда нужно ответить на вопрос «а в каком порядке это вообще выполняется» - и особенно «а что будет, если я объявлю секцию, которую никто не выводит».
Stimulus с нуля: JavaScript, который живёт в разметке
Эта статья для тех, кто пишет серверный HTML и хочет добавить к нему интерактивность, не заводя отдельное клиентское приложение. Никакого предварительного знания Hotwire не требуется: разберём всё от первого контроллера до общения контроллеров между собой.
Eager, lazy и batch: когда приложение должно грузить данные
Eager loading в Rails, `await import()` в Node.js, DataLoader в GraphQL и `loading="lazy"` у картинки выглядят как четыре несвязанные техники из разных слоёв стека. На самом деле это четыре ответа на один вопрос: **в какой момент система платит за ресурс, который может понадобиться, а может и нет**.
HDR-фотографии: что находится внутри JPEG с gain map
На HDR-дисплее солнце или блик на фотографии иногда выглядит ярче белого фона страницы. Разберём без магии, откуда экран получает команду сделать отдельные пиксели ярче.
Turbo Frames с нуля: интерактивный Rails без SPA
В Rails можно сделать интерактивный интерфейс без отдельного JSON API, глобального клиентского состояния и React-приложения. Сервер продолжает рендерить HTML, а браузер заменяет только нужный фрагмент страницы.
Бизнес-цели и согласованность: чего я долго не понимал как программист
Почти двадцать лет я пишу код и только в последние годы у меня сложилась картинка того, **зачем** он пишется. Не «какую фичу просили», а какое изменение в бизнесе она должна произвести и как мы поймём, что произвела.
Почему «Вид» в «Виде на жительство»
Меня как программиста постоянно конфузило одно слово в бюрократии. Документ называется **вид** на жительство.
Go, Together: визуальный гид по конкурентности в Go
Конкурентность проще, когда её видно. Запустите эти маленькие модели: горутины спорят за общее состояние, ждут разрешений, передают значения через каналы и реагируют на ту операцию, которая готова первой.
Переписал блог на новый движок
Год или больше я застрял на Docusaurus. Недавно я от него избавился — написал свой движок на Go за час.
Диалог: Вселенная, Бог и Информация
Недавно у меня состоялся глубокий диалог с моим AI-ассистентом (Ра) о природе реальности, информации и месте человека во Вселенной. Мы затронули философские вопросы, цифровую физику, голографический принцип, свободу воли и концепции из различных религий.
Теория побега: Что на самом деле сломает корпоративный степенной закон?
Недавно я посетил дискуссию (fireside chat) с CTO Wise и главным научным сотрудником Pactum. Я задал им провокационный вопрос: видите ли вы на горизонте какую-либо технологию, способную фундаментально разрушить степенной закон распределения (power-law) рынка?** Для контекста: Wise построила свою империю на децентрализа...
Почему лайв-кодинг — плохой способ проверки знаний
Лайв-кодинг на собеседовании — это кот в мешке. Проблема в том, что это во многом случайная проверка: кандидат, как правило, не готов к нему в момент интервью.
Почему нет Open API для доставки еды? Исследование Wolt, Bolt Food и других
🤖 **Почему мой AI агент не может заказать мне еду?** Я потратил несколько часов на глубокое исследование API документации всех крупных сервисов доставки еды в Эстонии. Результат оказался неожиданным - и разочаровывающим.
Автоматизация жизни с AI агентами
В последние годы я построил систему, которая увеличила мою продуктивность в 5-10 раз. Это не преувеличение - это измеримый результат использования AI агентов для автоматизации работы и личной жизни.
Фото старинного Таллинна
Исследовал для своей рпг игры по Таллинну старинные фотки например башня крепостной стены Hinketorn что рядом с макдаком видимо сфоткана была когда еще было видно саму стену (не очень в курсе - там был ров?). Сейчас по юго-восточной и южной части трудно что-то найти.
От чего спасает Христос
Будучи Христианином я тем не менее долгое время не мог понять от чего же спасает Христос? Почему дорога к Богу-Отцу лежит через Христа?
The Wild Robot
Очень хорошая анимация и музыка, местами 10/10 где есть сочетание всех элементов в том числе музыки - я аж всплакнул. Советую сходить, детям подойдет.
Моя коллекция часов в 2024
Записал историю своей часовой коллекции Заметил что я сильно привязан к телефону и начал рассматривать наручные часы, что-бы отделить самую часто используемую функцию, которая обычно затягивает посмотреть на всевозможные оповещения. Этот decoupling поможет сфокусироваться на работе.
Как записывать экран с круглой камерой
Часто приходится по работе записывать видео скринкасты для репорта багов, описания глубоких сценариев их возникновения, неудобного UI; Кроме того я использую видео для описания pull-request'ов в дополнение к тексту. Как сделать результат более профессиональным?
Об этике пчеловодства
Эрнест Бондаренко, мне вот захотелось так же публично ответить тебе, раз латвийская команда ForQueenBee на презентации в Prototron не смогла, и естественно Jana Budkovskaja не могла им ( Guntis Laurins, Anete Grosberga ) дать дополнительного во время общего питча. Я с ними не связан с ними совершенно, но занимаюсь это...
Мечта о масштабируемых и обогащённых GraphQL-подписках
Впервые опубликовано на Medium Стилизованная фотография водопада Ягала в Эстонии. Оригинал: Александр Абросимов, Wikimedia Commons В прошлый раз я рассказал о пятилетнем пути GraphQL в Pipedrive.
Путь к Федеративному GraphQL
Картинка с dgraph.io Программисты любят хорошие истории, поэтому надеюсь что пятилетний путь к композитному API с помощью GraphQL в боевой среде (на пике выдающей 110 запросов в секунду при 100мс задержке) будет интересен. Если вы спешите, проскрольте ниже к _урокам_ и гляньте на открытый код [graphql-schema-registry]...
Техническое интервью как нейрон
Процесс найма разработчиков различен и на моём пути я был как на стороне кандидата со своей системой вопросов, получал свою уйму лулзов, так и на стороне интервьюера. Поскольку встреч с кандидатом в больших компаниях несколько, то мне удалось принимать интервью на фазе технической оценки. Постараюсь тут кратко описать...
Шпаргалка по golang
После php и node начал писать на go, поэтому по-аналогии с unix-шпаргалкой, выпишу для себя основы.. go run main.go → компиляция и запуск exe go build main.go → только компиляция и создание exe, без запуска go get -u https://github.com/x/y → импортирование зависимостей Низкоуровневый тип.
Dashboard на основе Grafana и InfluxDB
В продолжение темы умного дома где мой котёл умел выдавать API для мониторинга температур, захотелось мне вывести эти данные в более приятный вид. Кроме того, хотя сам котёл умеет рисовать графики, он показывал на них только температурную зону одного контура, а мне хотелось видеть два.
Hacking essentials
Прошёл двухдневный workshop компании Clarified Security по основам взлома в сети и серверы. Оплатил это Pipedrive, но вы можете заказать себе такую же тренировку. Тренинги построены по шагам с такой оценочной системой, что какое-то время можно самому искать решение, потом тебе объясняют как это сделать в действительнос...
Извлекая полезный опыт IT-компаний
Я работал уже больше 12 лет в разных IT-компаниях и захотел в порыве ностальгии выписать разницу между ними, лучшие стороны, что-бы вы тоже могли научиться у них. Поехали..
Code review и конфликт в динамике команды
Команды программистов из 3-7 человек это идеальная машина по быстрому созданию качественного продукта. Слишком много - и все погрязнут в бесконечных обсуждениях, слишком мало - будет сбиваться ритм и снижаться продуктивность и качество.
Умный дом — отопление с пеллетным котлом
Год назад мы взяли в кредит дом. Старенький, с деревянными продуваемыми окнами, без утепления и с основным дровяным отоплением.