Все записи блога

Пишу о программировании и данных.

Обновленный go fix

Утечки горутин в Go 1.24+

Курс: Знакомство с Go

Выразительные тесты без testify/assert

Интерактивный тур по Go 1.25

Опыт с книгой

Метод-значение в Go

Скукоживание карт в Go

Тур по Go 1.24

Пруфридинг и перевод в VS Code

Как стать дата-сатанистом, не выходя из VS Code

Say It in Russian

Ранний возврат

Статический HTTP-сервер

Канал завершения в Go

Тур по Go 1.23

Курс «Многозадачность в Go»

Полносрезное выражение в Go

Пустой срез vs. nil-срез в Go

Запускаем 100К горутин

Приемчики форматирования в Go

Интерфейсы и nil в Go

STRICT-таблицы в SQLite

Замыкание = гибкость

Метод на значении / указателе в Go

Интерактивная API-документация

Пишем менеджер пакетов

Язык Odin

Как установить расширение для SQLite

Встроенные функции в Go 1.21

Виды JOIN в SQL

Мне не нужен ваш язык запросов

Покрывающий индекс в SQL

Больше текстовых функций в SQLite

SQL-рецепт: сравнение с соседями

Base64 и другие кодировки в SQLite

LIMIT и FETCH в SQL

SQL-рецепт: сегментация данных

Выпуск «Подлодки» про SQL

SQL-шпаргалка

SQL-рецепт: ранжирование строк

ИИ-бот на Python

Чтение и запись файлов в SQLite

Сводные таблицы в SQLite

Избранные фичи Go 1.20

Регулярные выражения в SQLite

Композиция атомиков в Go

Идемпотентный Close в Go

Пользовательские функции в SQLite

Многозначительное многоточие в Python

Летающая свинья, или протоколы в Python

Случайные числа и последовательности в Python

Временные таблицы в SQLite

JSON и виртуальные столбцы в SQLite

Компактные объекты в Python

Вычисляемые столбцы в SQLite

Постраничный итератор в Python

Закешировать результат вычислений в Python

Гибкие типы данных в SQLite

Все расширения для SQLite

Быстрый поиск похожих слов на SQL

Скорость алгоритмов и котики

Как устроен список в Python

Табличные выражения SQL

Вы являетесь дизайнеру в страшном сне

SQLite-песочница в браузере

Как хранят данные в браузере

Признать проблему

Почтовые адреса в интерфейсе

Что должно быть в письме о заказе

Дурная кровь

Найти группы похожих объектов с помощью SQL

Критерии хорошего кода

Поэлементно сравнить коллекции в Python

«Отнаследовать» функцию от существующей в Python

Оконные функции SQL: скользящие агрегаты

Видение, эмпатия, смелость

Оконные функции SQL: агрегация

Оконные функции SQL: смещение

Книга по визуализации данных

Оконные функции SQL: ранжирование

Начни с примера

Зачем нужны оконные функции

Оконные функции SQL

Собираем открытые данные с GitHub Actions

Слишком простое решение

Простое против легкого

Кросс-платформенная сборка с GitHub Actions

Медиана вместо среднего

Как создать таблицу на 1М записей одним запросом

Дизайн интерфейсов для нормальных людей

Сила комментария

SQLite для аналитики

Задачка об итераторе на Python

Python. Грамотно работать с любым диапазоном

Python. Проверить, входит ли элемент в коллекцию

Зачем читать исходники стандартной библиотеки

Python. Прочитать произвольную строку из файла

Python. Отрезать строке голову и хвост

Красавица и чудовище. Обработка ошибок в Go

Как человек решает задачи в интерфейсе

Не законы, а говно

Что делает интерфейс простым

Автоматизация задач в Python-проекте

Юлия → Iuliia. Всё о транслитерации

Python. Создать словарь по списку ключей

Python. Пронумеровать элементы коллекции

Быстрый язык ≠ быстрый код

Python. Cортировать в конце или держать отсортированным?

Python. Быстро найти элемент коллекции

Python. Узнать день недели 40 лет назад

Python. Создать полный дубль коллекции

О продуктоводстве

Python. Сегодня == сейчас

Python. Обработать заявки с учётом приоритетов

Открытка несовершенным людям

Тарифный план «свяжитесь с нами»

Python. Выбрать топ-k элементов списка

Python. Объединить отсортированные списки в один

Python. Кортеж здорового человека

Python. Из десятичной дроби — в обычную

Python. Хранить последние N объектов

Python. Подвох в функции sum()

Python. Операции со статистикой

Python. Посчитать количество объектов каждого типа

Python. Умолчательные значения настроек

Python. Enum здорового человека

Python. Исходники стандартной библиотеки

Дизайн — это здравый смысл

Чистый код. Единообразие в именах

Python. Шаблонизатор для бедных

Python. Разбить строку на слова с учётом кавычек

Чистый код. Похожие названия методов

Обращение к JavaScript-разработчикам

Python. Кратко напечатать развесистую структуру

Python. Сравнить строки на похожесть

Как стать умнее на порядок

Python. Простое сравнение с шаблоном

Python. Все слова с прописной буквы

Python. Отформатировать текст для консоли

Python. Сделать превьюшку длинного текста

Тестировщики не должны находить баги

​Премиальный и золотой тарифы

Секта свидетелей раздутой конверсии

Уберите капчу при оплате

Как понять рекурсию

О кодах подтверждения

Не надо заканчивать фичи

Автокомплит и проверка данных

Пароли в СМС и пушах

Если нет награды, прогресс бесполезен

Прощание с пользователем

Не моя проблема

Обратить необратимое

Регистрация и оплата как необходимое зло

По техническим причинам

Я медленно снимаю твои деньги с карты

Сила частичных решений

Сломается всё

Вредные привычки: mind maps

Днище ИТ-безопасности

Угадайка и неленивый интерфейс

Приём «показать все»

Пейджинг, ещёкалка и бесконечный скрол

Рейтинг как обратная связь

Персоны, Jobs-to-Be-Done и здравый смысл

Хватит сортировать по алфавиту

Запас доверия

Человеческого фактора не существует

Хороший продукт «прокачивает» пользователей

Главное правило выбора в интерфейсе

Что-то пошло не так

Сделайте себе интересно

Как упростить пользователю жизнь

Надмозги в метро: конечная станция

Бизнес как игра

Ричард Хипп и SQLite

«Психбольница» Купера 20 лет спустя: цели и сценарии

«Психбольница» Купера 20 лет спустя

Законы робототехники в интерфейсе

Пристрелите фичу

Бэклогом управляют пользователи

Донат — зло

Как не написать простыню

По техническим причинам

Специалисты, которых никто не любит

Чиним объявление про эскалатор в метро

Миф о сложности Oracle Database

Храним состояние в URL

Ваш лучший друг, анонимус