40.5K subscribers
1.96K photos
66 videos
5 files
2.03K links
Download Telegram
🔥 SourceCraft научили работать с автономными ИИ-агентами
Агенту можно отдать задачу из GitLab, после чего он сам выполняет работу и возвращает результат разработчику. Если для продолжения нужны данные или решение команды — запрашивает их самостоятельно.
При этом агента не обязательно брать готового: в SourceCraft можно подключать собственных, в том числе созданных на Yandex AI Studio.
Работать с агентами можно через GitLab, VS Code, CLI, мессенджеры и веб-интерфейс.
1👍7🔥5❤4🤬4🥰2😁1😱1
Go наконец получил переносимый SIMD: один код для x86, ARM и WebAssembly

В Go 1.27 появился экспериментальный пакет `simd`. Векторный код теперь пишется один раз и работает на AVX, AVX2 и AVX512 на amd64, на NEON на arm64 и на WebAssembly SIMD. Раньше под каждую платформу приходилось держать отдельную реализацию или уходить в ассемблер.

Ширина вектора спрятана от типов. Вместо привычных Int32x4 или Float64x8 используются типы вроде simd.Float32s и simd.Uint8s. Сколько элементов влезет в регистр, 128, 256 или 512 бит, решает железо, на котором запущена программа. Код от этого не меняется.

Набор операций знакомый: загрузка и выгрузка, Add, Mul, MulAdd, сравнения и маски. В пакет попало только то, что есть на всех платформах, а недостающее эмулируется.

Цель авторы формулируют так: писать один раз и получать производительность, близкую к ассемблеру. Компилятор специализирует код под конкретную ширину и убирает накладные расходы на диспетчеризацию внутри вычислений.

Если переносимого набора не хватает, можно спуститься ниже. Методы `ToArch()` и `FromArch()` переводят значения в архитектурно-зависимый пакет archsimd из Go 1.26, где доступны инструкции конкретного процессора. archsimd поддерживает ещё PowerPC, s390x, RISC-V64 и loong64.

Поведение удобно проверять через GODEBUG. Значение simd=0 включает полную эмуляцию, simd=128, 256 или 512 фиксирует ширину вектора, а вариант с плюсом, например simd=+256, частично включает возможности и паникует на отсутствующих инструкциях. Так можно прогнать тесты на всех ширинах на одной машине.

Ограничения тоже есть. В 1.27 нет редукций, поэтому даже сумму элементов вектора придётся собирать обходным путём. В Go 1.28 обещают SVE для ARM, редукции, перестановки элементов, OnesCount и новые операции с масками. Ещё добавят варианты возможностей, чтобы на железе вроде Raspberry Pi код не откатывался в полную эмуляцию из-за одной недостающей инструкции.

Включается всё флагом `GOEXPERIMENT=simd`. Для тех, кто пишет на Go инференс, обработку изображений, кодеки или числодробилки, это первый шанс получить векторизацию без ассемблера и без пачки файлов под каждую архитектуру.

https://go.dev/blog/simd-experiment
❤27🔥14👍8😱2🎉2👏1
⚡ Go Concurrency Distilled - конкурентность в Go без воды

Компактная мини-книга по concurrency в Go с интерактивными примерами кода.

Внутри:

- goroutines и channels;
- select и pipelines;
- context и cancellation;
- WaitGroup, mutex и semaphores;
- data races и race conditions;
- atomics и object pools;
- scheduling, testing и diagnostics.

Каждый пример можно изменить и запустить прямо на странице. Есть и PDF-версия.

Быстрый гайд для тех, кто уже знает Go и хочет систематизировать конкурентность.

По заявлению автора материал полностью AI-free.

Читать: https://antonz.org/go-concurrency-distilled/
10❤35👍22🔥11😁1🤯1🤬1🎉1
👣 Для Jev появился Unix-клиент на Go

stefafafan/jev - неофициальный provider-neutral CLI для Jev от TypeSafe AI, написанный на Go.

Поддерживает:

- TypeSafe AI
- Cloudflare Workers AI
- Vercel AI Gateway

Работает через обычные stdin/stdout, поэтому его удобно встраивать в shell-пайплайны и CI.

Пример проверки diff:


git diff |
jev noul "Could this change introduce a regression?"


Или оценка риска деплоя:
kubectl diff -f manifest.yaml |
jev score \
--level low \
--level medium \
--level high \
"How risky is this deployment?"

Есть три режима:
- noul — yes/no решение;
- choice — выбор варианта;
- score — оценка по уровням.
По умолчанию результат возвращается в JSON.
Установка:
go install github.com/stefafafan/jev@latest

GitHub: https://github.com/stefafafan/jev
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍6❤5🤯2
👣 Portager - Kubernetes-оператор для автоматической синхронизации контейнерных образов между registry.

Вместо CI/CD-скриптов вы создаёте ImageSync CRD, где указываете:

- source registry
- destination registry
- список образов и тегов
- cron-расписание
- способ авторизации

Дальше Portager сам сравнивает digest, копирует только изменившиеся образы и пишет статус обратно в Kubernetes.

Поддерживает Docker Hub, GHCR, Quay, Chainguard, ECR, GCR, Harbor, Nexus и другие OCI-compatible registry.


https://github.com/jarodr47/Portager
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3🔥2😁1
👣 Большой разбор собеседований на Go в 2026 году

На GitHub появился мощный репозиторий для подготовки к Golang-интервью: более 190 вопросов, каверзные задачи и live coding с решениями.

Внутри:

- 25 задач «что выведет код?»;
- 22 live coding задачи с разборами;
- goroutines, channels, sync, atomic и memory model;
- runtime, scheduler, escape analysis и GC;
- generics и context.Context;
- HTTP, gRPC, базы данных и брокеры;
- System Design для Middle+/Senior;
- свежие изменения Go 1.22–1.27.

Есть классические задачи вроде Worker Pool, LRU Cache, Rate Limiter, Fan-in, Pipeline, TTL Cache, Singleflight и Graceful Shutdown.

По сути, готовая шпаргалка + задачник + roadmap для подготовки к Go-собеседованию.

https://github.com/justxor/sobesrazborgoogle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍38❤15🔥9🥰2
This media is not supported in your browser
VIEW IN TELEGRAM
👣 Steampipe: инструмент на Go, который превращает любое API в SQL-таблицы

Steampipe позволяет задавать вопросы облаку, Kubernetes и GitHub обычным SQL-запросом, без консолей и скриптов:


-- неймспейсы Kubernetes без NetworkPolicy
select n.name
from kubernetes_namespace n
left join kubernetes_network_policy p on p.namespace = n.name
where p.name is null;


Как это устроено: внутри встроенный PostgreSQL, а каждый источник данных подключается через плагин. Когда вы делаете запрос, плагин в реальном времени ходит в API и отдаёт строки в Postgres. Никакой выгрузки и отдельной базы.

Для Go-разработчиков самое интересное в том, что и Steampipe, и все его плагины написаны на Go, и свой плагин пишется буквально за вечер. Описываете таблицу и функцию, которая получает данные:


func tableUsers() *plugin.Table {
return &plugin.Table{
Name: "myapi_user",
List: &plugin.ListConfig{Hydrate: listUsers},
Columns: []*plugin.Column{
{Name: "id", Type: proto.ColumnType_STRING},
{Name: "email", Type: proto.ColumnType_STRING},
},
}
}

func listUsers(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (any, error) {
users, err := apiClient.ListUsers(ctx)
if err != nil {
return nil, err
}
for _, u := range users {
d.StreamListItem(ctx, u) // каждая запись становится строкой таблицы
}
return nil, nil
}


После этого ваш внутренний сервис можно джойнить с AWS, GitHub или Kubernetes одним запросом. Кэширование, параллельные запросы, повторы и лимиты SDK берёт на себя.

Готовых плагинов уже больше сотни, так что для аудита инфраструктуры, поиска забытых ресурсов или проверки, у каких репозиториев нет защиты веток, писать код вообще не придётся.

https://devopscube.com/steampipe-tutorial/

https://github.com/turbot/steampipe
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤8🤔7🔥6😁3
Как перестать бояться Кафки?

Знакомо? Сервис ответил "заказ принят", а до оплаты заказ так и не доехал, и ты сидишь в логах и не понимаешь, куда делось сообщение. Или консюмер упал, поднялся и обработал то же сообщение ещё раз, а у клиента теперь два списания. Или лаг растёт, ты добавляешь консюмеров, а становится только хуже.

Причём ровно такие же вопросы потом прилетают и на собесах, и как раз на них обычно начинаешь плыть)

Меня зовут Олег Козырев, я staff Golang-разработчик, в IT больше 8 лет. Начинал с C++, потом перешёл на Go и поработал в Озоне, Авито и Т-Банке.

И Кафка мне тоже подкладывала свинью: в Озоне как-то разбудила алертом в четыре ночи, потому что консюмер не успевал разгребать очередь)

Чтобы разобраться с этим, 15 октября в 19:00 по МСК я проведу открытый урок для Go-разработчиков:

Хорош бояться Кафку: ломаем и чиним Go-сервис в прямом эфире


Предыстория такая: пока меня не было дома, мой кот Коткинс добрался до телефона и начал заказывать себе вкусняшки с моей карты. Приложение кидает заказ в Кафку, сервис оплаты читает его и списывает деньги. Вот эту систему и будем ломать)

Что разберём на уроке:
🟢Без занудных определений разберёмся, что такое продюсер, топик, партиции, группа и смещение. Просто проследим один заказ в Kafka UI от кнопки до списания
🟢Трижды попробуем сломать систему: потеряем заказ, спишем деньги дважды и завалим очередь. И разберёмся, почему так вышло
🟢По каждой поломке посмотрим, какие есть варианты починки и чем плох каждый
🟢Попросим нейронку написать консюмер для оплаты и посмотрим, переживёт ли он повтор сообщения
🟢Расскажу, когда Кафка вообще не нужна и можно спокойно взять RabbitMQ
🟢В конце отдам репозиторий со всем кодом урока, чтобы ты мог повторить всё у себя
🟢И конечно же, анонсирую новый поток своего курса по микросервисам на Go

Регистрироваться никуда не надо, ссылка на урок будет прямо в канале по микросервисам:
Залететь в канал с уроком

P.S. Записи не будет, поэтому жду всех в онлайне)

Реклама. ИП Козырев Олег Вячеславович, ИНН 440315249608, erid: 2W5zFJND9EZ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍3🤬2😁1
🦀 1,8 млн ошибок из-за одного пробела: как разработчик собирал Kubernetes Ingress на Rust и Go

Автор Silex разделил систему на две части:

• Go-контроллер наблюдает за Ingress и EndpointSlice, отслеживая маршруты и адреса бэкендов.
• Rust-движок на Tokio принимает трафик и ищет маршруты в конкурентной таблице DashMap.

Обработка запросов отделена от взаимодействия с Kubernetes API.

Первый нагрузочный тест выглядел обнадёживающе только по счётчику соединений: движок принимал около 55 тысяч в секунду, но не отдавал успешных ответов.

Причина оказалась в разборе конфигурации. Вместо JSON-парсера код искал точную подстроку:


Ожидал: "host":"silex.local"
Получил: "host": "silex.local"


Допустимый в JSON пробел ломал поиск. Обработчик молча завершался и закрывал TCP-соединение. Итог: 1,8 млн ошибок чтения.

После исправления автор сравнил Silex с NGINX Ingress: K3s, HTTP echo-бэкенд, wrk, 400 соединений, 4 потока, 30 секунд.

Silex: 2536 запросов/с. NGINX: 2274. Разница: +11,5%.

Но максимальная задержка у обоих была около двух секунд, таймауты тоже остались. У Silex их даже больше: 302 против 286. По объяснению автора, нагрузка упёрлась в Node.js-бэкенд.

На момент статьи TLS-терминация, активные проверки бэкендов и Prometheus-метрики ещё были в планах.

Самое ценное здесь: увидеть, как устроен небольшой ingress, где ломается взаимодействие компонентов и почему throughput нужно читать вместе с ошибками и задержками.

https://dev.to/sysalchemist/how-i-built-a-custom-kubernetes-ingress-in-rustgo-that-outperforms-nginx-by-11-4iag

@Golang_google
❤13👍3🥰3🤬2
🤖 Зачем держать отдельный контейнер для каждого ИИ-агента, если большую часть времени он ждёт?

Agent Substrate использует это ожидание для экономии ресурсов: приостанавливает окружения, сохраняет их состояние и возобновляет на свободных воркерах в Kubernetes.

В демо около 250 окружений со своим состоянием работают через пул из 8 подов.

Что умеет проект:

• Сохранять оперативную память и файловую систему между запусками.
• Переносить окружения между воркерами.
• Изолировать выполнение через gVisor и microVM.
• Запускать агентов на разных стеках, включая Claude Code, Codex и LangChain, а также MCP-серверы.

Авторы заявляют возобновление менее чем за 500 мс и плотность размещения в 10 раз выше стандартных контейнерных рантаймов.

Это инфраструктура для массового запуска агентов. Проект пока до версии 1.0, API могут существенно меняться. Лицензия Apache 2.0.

https://github.com/agent-substrate/substrate
❤9👍4🔥4
10 ноября в Москве пройдёт Go Birthday Conf от RWB

Отметим день рождения Golang вместе с экспертами RWB, YADRO, Т-Банка, VK и Avito. Разберём кейсы из продакшена, поговорим о highload и будущем Go в эпоху AI.

В программе:
Доклады:

— 10 лет Go глазами практика: как менялся язык и что с ним сейчас;
— SIMD без ассемблера: что изменилось и какой прирост производительности можно получить;
— Архитектура доставки продуктовых метрик под высокой нагрузкой;
— Геокодинг и построение маршрутов под нагрузкой.

Дискуссия «Go в эпоху AI» — обсудим, как меняется разработка, что остаётся инженеру и почему растёт роль инженерного мышления.

Воркшоп и архитектурные каты, где можно порешать задачи вместе с другими участниками.

Приглашаем Go-разработчиков, backend-инженеров, тимлидов и всех, кто работает с highload и архитектурой или хочет разобраться, как AI меняет разработку.

Первые 100 офлайн-гостей получат беспроигрышные лотерейные билеты с подарками.

📍 Москва
Старт в 15:00

Программа и регистрация по ссылке
👍8🔥6❤4
🐹 Один непрочитанный ответ мог заставлять Go заново открывать HTTP-соединения. В Go 1.27 это исправили.

Раньше при HTTP/1 одного resp.Body.Close() было недостаточно: если тело ответа не дочитано, соединение приходилось закрывать. Следующий запрос снова тратил время на TCP и TLS.

Теперь net/http при закрытии тела асинхронно дочитывает остаток в пределах установленного лимита, чтобы сохранить соединение для следующих запросов.

В тесте авторов статьи 100 запросов, которым нужен только статус ответа, заняли 150 мс вместо 710 мс. Почти пятикратное ускорение в конкретном сценарии, без изменений кода.

Закрывать `resp.Body` по-прежнему обязательно. Изменение касается HTTP/1: у HTTP/2 непрочитанное тело отдельного ответа не мешает другим запросам использовать соединение.

https://uproger.com/go-1-27-http1/

@Golang_google

#golang
👍16❤7🔥6
На GitHub доступен модульный фреймворк для гибкого тестирования на Go — Testo.

Testo написали разработчики Ozon Tech и уже проверили на тысячах своих e2e-тестов на проде. Фреймворк работает как слой над testing.T внутри экосистемы Go. Он адаптируется под потребности за рамками стандартного пакета и позволяет быстро создавать тесты под любую задачу.

Попробуйте, если хотите расширить ваши тесты отчетами, фильтрами и собственным функционалом через плагины: https://ozon.tech/testo
👍13❤5🤬5
🔎 Конец программирования: создатель InfluxDB считает, что код скоро перестанут писать и читать люди

Пол Дикс, основатель InfluxData и автор InfluxDB, опубликовал эссе «The end of programming». Его тезис: ручное написание кода и построчное ревью вымирают. Софт будут производить агенты, а люди будут проверять результат работы системы, в сам код почти не заглядывая.

Главный аргумент Дикса связан с Bun 1.4. Рантайм переписали с Zig на Rust, это больше миллиона новых строк. Сделал это один разработчик, Джаред Самнер, вместе с предрелизной Fable 5 и почти безлимитным бюджетом на токены. Он собрал харнесс для параллельной работы агентов, и за 11 дней они сделали 6778 коммитов. По API это стоило бы около $165 тысяч.

На возражение, что переписывать готовую программу легко, ведь старая версия служит эталоном, Дикс отвечает так: если есть система верификации и толковое направление, ИИ доводит до рабочего состояния очень сложный софт.

Его собственные эксперименты на форке InfluxDB. Интеграцию с Apache Iceberg, где задействованы API, CLI, компактор, манифесты и S3, Fable собрала за 14 часов: Дикс только описал архитектуру, а дальше работали сабагенты с код-ревью. Репликацию данных с edge-узлов в центральный кластер модель сделала за 28 часов, сама развернула в AWS и чинила баги по логам и метрикам. Система крутится до сих пор. Обе фичи пока остаются прототипами, а держать агента в постоянном цикле улучшений Дикс не может себе позволить: по его оценке, это сотни тысяч долларов в месяц.

По словам Дикса, в Anthropic и OpenAI разработчики уже выпускают десятки и сотни PR в неделю. Они строят системы, промпты и инструменты проверки и не читают каждую строку. Остальная индустрия придёт к этому примерно через год. К концу 2027 года интеллект уровня Fable должен стать достаточно дешёвым для работы на полный день, а железо вроде Cerebras даст в 10-100 раз больше токенов в секунду.

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

Самыми продуктивными станут те, кто управляет агентами, строит харнессы, фабрики софта и системы QA. Главными вопросами будут «что мы хотим выпустить?» и «что мы готовы поддерживать?».

https://pauldix.com/the-end-of-programming
❤16👍14😁12🤬7😢3🔥2🤯2🤩1
🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку

Окружение решает больше, чем кажется.

Собрал папки и каналы, где можно быстрее влиться в нужное направление, следить за трендами и не вариться в своём пузыре.

AI: t.iss.one/ai_machinelearning_big_data
Python: t.iss.one/pythonl
Linux: t.iss.one/linuxacademiya
Хакинг: t.iss.one/linuxkalii
DevOps: t.iss.one/DevOPSitsec
Docker: https://t.iss.one/+90Z5TAyfuNU5YmRi
Golang: t.iss.one/Golang_google
Rust: t.iss.one/rust_code
C++: t.iss.one/cpluspluc
C#: t.iss.one/csharp_ci
Java: t.iss.one/javatg
JavaScript: t.iss.one/javascriptv
React: t.iss.one/react_tg
Frontend: t.iss.one/front
PHP: t.iss.one/phpshka
Android: t.iss.one/android_its
Мобильная разработка: t.iss.one/mobdevelop
Базы данных: t.iss.one/sqlhub
Data Science: t.iss.one/data_analysis_ml
Big Data: t.iss.one/bigdatai
Математика: t.iss.one/data_math
Физика: t.iss.one/fizmat
Kubernetes: t.iss.one/kubernetc
GameDev: https://t.iss.one/gamedev
Haskell: t.iss.one/haskell_tg

Собеседования и карьера:

DS собеседования: t.iss.one/machinelearning_interview
Python собеседования: t.iss.one/python_job_interview

Папка с вакансиями: t.iss.one/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.iss.one/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.iss.one/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.iss.one/addlist/2Ls-snqEeytkMDgy
Папка Frontend: https://t.iss.one/addlist/mzMMG3RPZhY2M2Iy

Полезное сверху:

ИТ-мемы: t.iss.one/memes_prog
Английский для программистов: t.iss.one/english_forprogrammers
ИИ и технологии: t.iss.one/vistehno
954 ГБ open-source курсов: https://t.iss.one/+rKBQEMccAA01MTcy
ИТ-книги бесплатно: https://t.iss.one/addlist/BkskQciUW_FhNjEy

Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg

Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
🤬9❤3🔥2😁2👍1
Forwarded from 
🐋 DeepSeek V4.1-Flash-1017: метрики выше, ответы короче, Search и Fetch API открыты всем

DeepSeek обновили Flash-версию V4.1. Модель сильнее прошлой, быстрее решает задачи и выдаёт более короткие ответы, то есть выходит дешевле. Доступна на сайте, в приложении и по API, веса открыты.

На DeepSWE v1.1 модель набирает 77.0 против 74.0 у Claude Opus 5 и 73.0 у GPT 5.6-Sol. На Automation-Bench 60.5 против 50.3 у Opus 5, на Agents' Last Exam 35.4 против 28.6. К прошлой Flash прирост большой: Terminal-Bench 4.0 вырос с 31.2 до 42.3, ProgramBench с 20.3 до 29.1.

На HLE (56.3), Terminal-Bench 4.0 (51.8) и NL2Repo-Bench (75.3) Opus 5 всё ещё впереди. Цифры приведены самой компанией, а методики оценки у бенчмарков разные.

Отдельно открыли Search и Fetch API на собственном поисковом движке: $0.75 за 1000 вызовов на каждый эндпоинт.


Модель: https://huggingface.co/deepseek-ai/DeepSeek-V4.1-Flash-1017
Документация API: https://api-docs.deepseek.com/guides/search

Источник: https://x.com/deepseek_ai/status/2111375640717033777

@ai_machinelearning_big_data

#DeepSeek
👍12❤8🔥7🤬3
👣 NumPy и PyTorch из Go? У LLGo для этого есть инструменты.

LLGo — компилятор Go на базе LLVM, который упрощает работу с экосистемой C/C++ и Python.

Что внутри:

• Прямые вызовы C-функций через C ABI — без накладных расходов стандартного cgo на переключение стека и планировщика.
• Python-библиотеки из Go: доступны привязки для NumPy, pandas, PyTorch и matplotlib.
• Привязки к SQLite, OpenSSL, raylib и другим нативным библиотекам.
• Поддержка WebAssembly и ряда встраиваемых платформ.

Есть существенная особенность: у LLGo собственный runtime. На нативных платформах горутины соответствуют потокам ОС в соотношении 1:1, а сборщик мусора по умолчанию - BDWGC. Это нужно учитывать при переносе приложений.

https://github.com/xgo-dev/llgo
Please open Telegram to view this post
VIEW IN TELEGRAM
😁11❤6🥰3👍2