james-see/swatchify Быстрая кроссплатформенная CLI-утилита для извлечения доминирующих цветов из изображений с помощью кластеризации методом k-средних. #golang https://github.com/james-see/swatchify Больше про программирование на https://kodikapusta.ru
4gophers
Язык программирования Go. Больше новостей про разработку тут https://kodikapusta.ru/ Реклама https://kodikapusta.ru/ads
Графики
📊 Средний охват постов
📉 ERR % по дням
📋 Публикации по дням
📎 Типы контента
Лучшие публикации
20 из 20Rupamthxt/VectraDB VectraDB — это легкое, облачное векторное хранилище, предназначенное для AI-инфраструктуры и высоконагруженных задач по обработке эмбеддингов. Оно использует технологию выделения памяти Arena для устранения накладных расходов сборщика мусора Go и реализует индекс на основе инвертированных файлов (IVF) для сверхбыстрого поиска приблизительных ближайших соседей (ANN) #golang https://github.com/Rupamthxt/VectraDB Больше про программирование на https://kodikapusta.ru
Не куча но стек Команда разработчиков Go улучшила производительность языка, перенеся больше операций выделения памяти из кучи в стек, что снижает нагрузку на сборщик мусора и ускоряет выполнение. Автор на примере динамического расширения среза демонстрирует эволюцию этих оптимизаций: в версии Go 1.25 компилятор научился выделять в стеке память для срезов известного размера, а в Go 1.26 оптимизация была расширена на случаи, когда срез создается и расширяется с помощью append, и даже когда срез до...
Wrap Конечно, обертывание упрощает жизнь и рещает множество проблем с дебагом. С обертыванием значительно проще понять откуда всплыла ошибка Но подход с тотальным обертыванием имеет и обратную сторону: сообщения могут превращаться в громоздкие цепочки, а использование w создаёт жесткие контракты в API, из-за чего вызывающий код через errors.Is и errors.As зависит от внутренних типов ошибок #golang https://kodikapusta.ru/news/890-wrap Поддержать проект на boosty: https://boosty.to/kodikapusta
Замыкания и локи В Go можно спрятать переменную под мьютекс и сделать к ней доступ только через методы Get и Set. Это довольно очевидный подход, который сразу приходит на ум. Всё чётко, пока нужно просто перезаписывать значение целиком. Но как только понадобится его прочитать, изменить и записать обратно (например, сделать counter + 1), то попадаешь в ловушку. Поэтому конкуретные структуры данных часто используют замыкания дл модификации значений #golang https://kodikapusta.ru/news/870-zamykanii...
Конкатенация В статье автор сравнил производительность 15 различных методов конкатенации строк в Go, разделенных на два сценария: с фиксированным и переменным количеством аргументов. Автор провел кучу бенчмарков, сравнивающих операторы + и +=, функции fmt.Sprintf, fmt.Sprint, strings.Join, а еще bytes.Buffer и strings.Builder (с предварительным выделением памяти и без него). И как думаете, что быстрые? Да, вы правы - strings.Builder с методом .Grow() и strings.Join являются самыми быстрыми и эфф...
Singapore 2025 Я тут вам видосы собрал на выходных посмотреть. Конференция GopherCon Singapore 2025. Там, конечно, много всего про AI, но и нормальный доклады тоже есть. Кста, там есть доклад от старого доброго Дейва Чейни #golang https://kodikapusta.ru/news/891-singapore-2025 Поддержать проект на boosty: https://boosty.to/kodikapusta
Счедуллер Свежая статья из цикла Understanding the Go Runtime. В этой статье автор рассказывает про работу планировщика. Все вот эти G, M и P про которые вы уже наверняка знаете, но всегда полезно повторить #golang https://kodikapusta.ru/news/888-scheduller Поддержать проект на boosty: https://boosty.to/kodikapusta
source-level inliner Алан Донован рассказывает про новую реализацию команды go fix в версии Go 1.26. Конкретно про source-level inliner, который позволяет автоматически обновлять код, заменяя вызовы устаревших функций их актуальными реализациями на уровне исходного кода Автор подробно объясняет принцип работы инлайнера на примерах миграции с ioutil.ReadFile на os.ReadFile и исправления ошибок проектирования API, а затем углубляется в технические дебри, описывая, как инструмент решает сложные зад...
Воскресил парочку старых статей со своего старого сайта VPN это просто https://kodikapusta.ru/articles/vpn-eto-prosto Перевод "Safe use of unsafe.Pointer" https://kodikapusta.ru/articles/22-unsafe #golang