Я уже говорил, что решение по генерации изображений для соцсетей из прошлой статьи неидеально — оно требует установленного Google Chrome, запускает его, ждёт пока страница загрузится и потом делает скриншот.
Во второй части этого цикла статей я покажу, как у меня получилось улучшить производительность и удобство своего приложения для генерации OG Image.
Иногда случается так, что меня резко переклинивает и я начинаю заниматься тем, чего вообще не делал или к чему давно не прикасался.
Например, я давно ничего не писал сюда (да и в маленький блог тоже). В какой-то момент я решил (снова) переписать сайт с нуля на новом фреймворке, на этот раз поставив себе задачу избежать использования Javascript-экосистемы всеми силами.
В процессе работы над своим дипломом я столкнулся с интересной задачей: сформировать контент нескольких типов в один JSON-массив. Поскольку бэкенд написан на C#, то и пример будет для него. Например есть контент-ссылка (есть идентификатор и URL), контент-текст (есть идентификатор и содержимое) и контент-файл (есть идентификатор и название). Нужно как-то эти очевидно разные типы данных засунуть в одну кучу, чтобы приложение могло удобно это обрабатывать.
.NET Aspire — это новый продукт Microsoft, который призван упростить оркестрацию контейнеров с приложениями на локальных машинах разработчиков. Кроме инструментов запуска сервисов туда ещё входит дашборд, отображающий логи и метрики приложения в реальном времени. Он использует протокол OpenTelemetry.
В недавно вышедшем Preview 4 в числе прочего добавили возможность запустить дашборд отдельно от Aspire. В этой статье я добавлю дашборд к своему .NET-бэкенду не мигрируя весь проект на Aspire.
Работая над сетевым взаимодействием в мобильных приложениях, я долго искал инструмент, который бы сочетал в себе простоту и мощь. И нашёл его в Ktor. В этой статье я поделюсь своим опытом использования Ktor и объясню, почему он стал моим фаворитом для создания надежных и эффективных сетевых решений в Kotlin-приложениях.