brief

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

»

Плохая производительность fold

Наткнулся на старый тикет, в котором Travis Brown померял производительность вызова fold по сравнению с обычным паттерн-матчингом. Замеры он делал для cats.data.Validated, но результаты актуальны и для аналогичных контейнеров (Either, Option). А результаты неутешительные — fold медленнее заинлайненного паттерн-матчинга в четыре раза.

»

CanThrow[E]

Лонгрид Профессора об экспериментальном механизме контроля исключений в Scala 3. Пока закрыто экспериментальным флагом компилятора. Выглядеть будет так:

»

Версионирование библиотек-сателлитов

Успешные библиотеки общего назначения имеют свойство обрастать сателлитами ― небольшими либами для интеграции с другими инструментами. Например, у реактивных стримов это коннекторы к базам данных и AMQP, у библиотек для сериализации ― связки с веб-фреймворками.

»

Микрооптимизация scala-phash

Прочитав статью Li Haoyi про микрооптимизации Scala-кода, решил проверить эффект одной из них самостоятельно. В качестве подопытного кролика выбрал свою библиотеку сравнения изображений scala-phash.

»

Создание пакета для Arch Linux

Есть замечательный инструмент для форматирования кода на скале ― scalafmt. Гибкий конфиг, интеграция с IDE, возможность добавить форматирование кода в пайплайны CI… Что ещё нужно пользователю? Нормальному пользователю, наверное, ничего. А вот мне захотелось программировать на скале в vim и форматировать текущий файл по нажатию шортката.

»

Отправка обновлений RSS на email своими руками

Оказывается, в 2019 году сложно найти сервис, который будет выполнять только одну примитивную функцию: отправлять на указанный адрес электронной почты обновления RSS-каналов. Есть множество приложений вроде feedly, которые отслеживают новые посты и складывают их в собственные читалки, но они мне не понравились, потому что:

»

Делаем простое приложение на http4s

Недавно я захотел сделать простенькое демо для своей библиотеки, определяющей схожесть изображений. И заодно попробовать какую-нибудь новую технологию. Так как библиотека написана на скале, мой выбор ограничивался скала фреймворками. С Play и Akka HTTP я уже работал, смысл существования Scalatra мне не особо понятен, а к твиттеровскому стеку душа совершенно не лежит. Поэтому выбор пал на http4s ― свежий и активно развивающийся фреймворк, ориентированный на минимализм и функциональное программирование.

»

Шпаргалка по командам кафки

За полгода работы с кафкой накопился набор часто используемых команд. А из-за того, что CLI интерфейс кафки совершенно неудобный, держать команды в голове невозможно, и приходится писать очередную шпаргалку.

»

Интерактивный git CLI

Единственный случай, в котором мне было удобнее пользоваться графическими оболочками для гита вместо CLI ― это выбор файлов, которые войдут в коммит.

»