
Новости


GigaChat на Go
GigaChat от Сбера - одна из самых доступных и мощных моделей на российском рынке. У нее есть подробное REST API, которое позволяет интегрировать нейросеть в любой продукт: от телеграм-ботов до сложных корпоративных систем. Попробуем заиспользовтаь это API в...

Время в Go
Современные операционные системы обычно отслеживают два типа времени: "настенные" часы и монотонные часы. "Настенные часы" - это “реальные” часы, которые показывают календарные даты и время, например UTC или ваше местное время. Эти часы можно настроить для ...

Рецепты для Go
Сборник полезных снипетов и рецептов для Go. Красиво, но зачем? Интересно, как быстро вымрут такие штуки? Я уже сто лет не заходил на gobyexample, все примеры у нейронок спрашиваю

TinyGo для GSM/GPRS
Pat Whitti периодически выпускает видосы про использование TinyGo. В этом видео поревьювим Go либу, реализующую GSM/GPRS драйвер Рекомендую посмотреть другие видосы этого авора

Создание кода по замыслу природы
Автор статьи открыл для себя игру «Жизнь» Джона Конвея и клеточные автоматы. Он понял, что клеточные автоматы легко понять и исследовать, но трудно создавать новые правила для клеточных автоматов. Он решил использовать генетические алгоритмы для поиска инт...

Конструктор рейт лимитеров
Обычно рейт лимитеры состоят из кучи правил, которые нужно как-то комбинировать, и всё быстро превращается в бардак. Поэтому автор задумал сделать rate limiter, который легко собирается как конструктор. Что значит гибкость для рейт лимитера - Правильные п...

20 подсказок по оптимизации Go
Язык даёт отличные возможности для производительности, но их ещё нужно правильно использовать. Между "просто работающим кодом" и системой, которая стабильно держит нагрузку, - огромная разница. Небрежность в мелочах и непонимание внутренней механики могут запр...

Swiss Tables и память
Ребята из Datadog рассказывают как швейцарские таблицы неожиданно сократили потребление памяти в проекте Чтобы понять, почему в высоконагруженных окружениях потребление памяти значительно уменьшилась, разработчики изучили live heap-профили одного из сервисо...

Самый быстрый Parsing Protobuf
Автор рассказывает про самый быстрый парсер протобафа - hyperpb. Традиционно серверные части Protobuf генерировали парсеры, создавая исходный код, специализированный для каждого типа. На первый взгляд, это обеспечивало наилучшую производительность, посколь...

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

Мониторинг дома
В этой статье автор расскажет о своём подходе к мониторингу домашней инфраструктуры. Автору хотелось найти баланс между простотой и функциональностью, избегая сложных enterprise-решений. Только не подумайте, что это замена для продакшен систем. Ни в коем сл...

Свой testify/assert
Стандартные инструменты тестирования в Go просто отличные, но не хватает одной мелочи - нормальных функций assert. Как правило, разработчики затягивают себе пакет testify почти всегда и все из-за ассертов. Но так ли нужно тянуть целую библиотеку? В статье а...

Оператор для куба
Kubernetes стал стандартом де-факто для оркестрации контейнеров. По мере его распространения растёт и потребность в расширении его возможностей для управления сложными приложениями с отслеживанием состояния. Именно здесь на помощь приходят операторы Kubernetes...

Глубоко рекурсивный Go
В Go переполнение стека опаснее, чем в большинстве языков с защитой памяти, из-за того, как с этим справляется среда выполнения. При переполнении стека сбой неизбежен. Необходимо дополнительно изучить механизмы, объясняющие, почему глубокая рекурсия так пло...

Увеличиваем продуктивность
В этом видео автор показывает шесть его любимых инструментов для Go-разработчиков, которые, по его мнению, стоит использовать всем. Автор рассказывает про sqlc, goose, goreleaser, go-blueprint, godotenv и air. Кстати, давно хотел попробовать sqlc, это тако...

Биндинги ytdlp для go
go-ytdlp - это инструмент для скачивания видосов с youtube. Самое время делать еще один петпроект: скачиваем видео с ютуба и заливаем на вк видео и все автоматически Кстати, у ВК есть апишка для загрузки видосов, так что реально делать атоматически обновляе...

Что за //go:nosplit for?
Большинство людей не знают, что в Go есть специальный синтаксис для директив. К сожалению, это не настоящий синтаксис, а просто комментарий. Например, //go:noinline приводит к тому, что следующее объявление функции никогда не будет встроено и иногда бывает пол...

Обобщенные интерфейсы
Есть одна идея, которая не очевидна, пока не услышишь о ней впервые: поскольку интерфейсы сами являются типами, они тоже могут иметь параметры типа. Эта идея оказывается удивительно мощной, когда речь идет о наложении ограничений на обобщенные функции и типы. ...