Находки в опенсорсе

Находки в опенсорсе

Привет! Меня зовут Никита Соболев. Я занимаюсь опенсорс разработкой полный рабочий день. Тут я рассказываю про #python, #c, #opensource и тд. Поддержать: https://boosty.to/sobolevn РКН: https://vk.cc/cOzn36 Связь: @sobolev_nikita

Юзернейм
@opensource_findings
Категория
Технологии
Страна
РоссияРоссия
Создан
, 7 лет
Подписчики12 807+4 за 1 день
Просмотров на пост, 7 дн.2 624−56,8% к пред. 7 дн.
ERR20,49 %за 7 дней

Подписчики, 30 дней

2 нояб. – 3 нояб.+4 (0%)

Показать таблицей
ДатаПодписчики
2 нояб. 2026 г.12 803
3 нояб. 2026 г.12 807

Средние просмотры поста по дням

По дню публикации

Показать таблицей
ДатаПросмотров на пост
9 окт. 2026 г.8 617
16 окт. 2026 г.7 971
22 окт. 2026 г.7 922
26 окт. 2026 г.4 708
27 окт. 2026 г.6 934
3 нояб. 2026 г.2 624
Рекламных постов, 30 дн.1последняя
Просмотров на рекламный пост7 971+34,7% к остальным постам
  1. Платформа для agentic разработки Коллеги из GitVerse сегодня выкатили новое большое обновление. Теперь прямо на платформе можно запускать…7,97 тыс.
Что рекламировали
  • ПАО «СБЕРБАНК»

Самые просматриваемые за месяц

  1. 01
    Просмотры8,62 тыс.
    Пересылки66
    Реакции159
    Комментарии126
  2. 02

    Платформа для agentic разработки Коллеги из GitVerse сегодня выкатили новое большое обновление. Теперь прямо на платформе можно запускать агентов для разных задач, с разным тулингом, на разных моделях. Я протестировал новые возможности, выглядит очень круто. Я дико люблю GitHub Agents. Пользуюсь им чуть ли не каждый день: обновить зависимость, сделать ревью сложного кода, решить какую-то простую задачу. Мне кажется, что запускать агенты прямо рядом с кодом - лютейшая база. Очень удобно. Рад, что такая же фича появилась в GitVerse. Делюсь впечатлениями и техническими подробностями. У меня было три разные задачи. Создание проекта Для начала я попросил встроенную бесплатную модель GigaCode сделать мне новый проект из моего шаблона для python пакетов. Пример: https://gitverse.ru/sobolevn/test-ai-agents/issues/1 Как? 1. Включаешь в настойках "AI-Соавтора" GigaCode-разработчика (документация) 2. Создаешь задачу в трекере 3. Назначаешь GigaCode-разработчика на нее, можно просто в kanban таску передвинуть 4. Готово! Агент сам развернет окружение, решит задачу, пришлет PR. В интерфейсе можно выбрать модель, добавить дополнительный prompt. Или можно просто тегнуть в PR и попросить агента доработать что-то. Проверка задач Следующий пример: допустим вы хотите научить коллег наконец создавать понятные задачи 🌚️️️️ Можно сделать AI частью вашего workflow, создаем .gitverse/workflows/issue_dor.yml (помните, я писал, что GitHub Actions можно брать и переиспользовать?) on: issues: types: [opened] jobs: review: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - uses: actions/ai-developer-action@master with: prompt_file: .gitverse/prompts/issue_dor.md Теперь мы можем разместить любой промпт для проверки Definition of Ready в файле .gitverse/prompts/issue_dor.md и агент будет на каждую новую задачу запускаться и выполнять проверку. Работает! Документация. Пример: https://gitverse.ru/sobolevn/test-ai-agents/issues/3 Опять же, можно выбирать разные модели для разных задач и тут тоже. Ключевое: вешать агента можно на любые события CI. От релизов до коммитов. Использование внешней модели Конечно же мне захотелось попробовать подключить какую-то внешнюю модель и потестить, как работает интеграция на задаче с программированием. Сначала настраиваем AI_SESSION_MODELS переменную: [ { "profile_id": "gpt-sol", "name": "your-provider/api/v1/gpt-6.1-sol", "auth_mode": "direct", "base_url": "https://your-provider.example/api/v1", "model": "openai/gpt-6.1-sol", "api_key_secret": "CUSTOM_PROVIDER_KEY", "input_modalities": ["text"], "output_modalities": ["text"] } ] И указываем из какого секрета читать ключ. Можно добавлять много провайдеров, много моделей. Создаем задачу, назначаем агента, выбираем нашу модель (на скриншоте). Агент шуршит, присылает результат в PR: https://gitverse.ru/sobolevn/test-ai-agents/pulls/5 Приятные бонусы - Чаты и сессии с агентами - Собственные агенты и кастомные скиллы - Поддержка кастомных MCP - Свой MCP для работы с GitVerse API - Интеграции с IDE - Разбор ошибок CI - Генерация сообщений к коммитам - Удобный UI для обращения к агентам из любого места на сайте Выглядит круто! Попробуйте для своего проекта. Обсуждение: Какие фичи платформы для агентской разработки для вас наиболее нужны и важны? Какие модели там вы предпочитаете? Реклама. ПАО "СБЕРБАНК", ИНН 7707083893. erid: 2W5zFHAvuSq

    Фотореклама
    Просмотры7,97 тыс.
    Пересылки68
    Реакции177
    Комментарии105
  3. 03

    Доклады с большой встречи сообщества 17 октября мы провели большую встречу сообщества. Надеюсь, успешно! Доклады: https://www.youtube.com/playlist?list=PLbr8rVGhPD0WJxhx-Sc2In7OMGJndsQ4f Немного статистики: - 1000+ человек на всей конференции - 300+ человек на @pytho_nn части - 125 человек в тусочате - 7 крутых докладов - 4 занятых бара - десятки новых интересных знакомств - половина нашего чата приехала Большое спасибо всем, кто помогал делать нашу конфу: - Нашему главному организатору Игорю, что вытащил такой проект @it52info - Замечательным фотографам Екатерине (фотки от нее тут) и Ярославу (фотки от него) - Всем волонтерам, кто помогал со всеми практическими задачами - Ведущему, Леха - красава! - Конечно же спикерам, (по ссылкам можно почитать их отзывы): Иван, Егор, Алексей Гладких, Сергей Макаров, Максим, Алексей Голобурдин, Никита, Валентин, и все-все-все. Спасибо вам большое! Было интересно, было полезно, был повод для дискуссии. Под некоторыми докладами настоящий бомбеж в комментах 🌚️️️️ - Гостям! Люди специально приехали из Минска, Махачкалы, Тюмени, Уфы, Самары, Коврова, Питера, Ростова, Москвы, Нижнего Новгорода, других городов. Вы все просто лучшие! Спасибо за ваш интерес, все отметили, что на конфе чувствовалась душа. Потому что все приехали сами, потому что хотели. Никого не отправляла компания потусить за деньги Было несколько минусов, которые мы постараемся пофиксить на следующий год: шум у главного зала, очереди за едой и в целом логистика еды, вместимость бара подвела (мы планировали 60-70 человек, но было больше 150). Следующий раз выкупим самый большой бар рядом! Попробуем найти партнера вечеринки. Доклады: https://www.youtube.com/playlist?list=PLbr8rVGhPD0WJxhx-Sc2In7OMGJndsQ4f Еще раз: лучшее сообщество! Жду всех в следующем году! Обсуждение: Как вам конференция? Как вам Нижний? Какой доклад понравился больше всего? Кого бы вы хотели видеть в следующем году в качестве спикеров? Делитесь фотками в комментах!

    Фотоизменён
    Просмотры7,92 тыс.
    Пересылки82
    Реакции137
    Комментарии76
  4. 04

    Что происходит с ИИ в опенсорсе? Пост можно было бы назвать "Not so OpenSource anymore". Массовое использование ИИ моделей в опенсорсе привело к масштабным изменениям. Мне почему-то очень грустно от таких новостей. Пусть и вам будет! Мой доклад про то же самое: https://www.youtube.com/watch?v=oHIgRZNpS00 - CPython ограничил количество PRов от внешних контрибьюторов тремя открытыми - OpenJDK запретил PRы с использованием ИИ в любом виде - Litestar закрыл PRы для всех внешних контрибьюторов, поток слопа был настолько большой, что я в какой-то момент просто бросил открывать уведомления в проекте. Максим написал большой пост про данный случай - JazzBand после 10 лет открытой коллаборации для десятков проектов закрылся по их формулировке из-за "слопаппокалипсиса", новые участники больше не принимаются - Sindre Sorhus (один из самых популярных опенсорс разработчик в мире) закрыл все свои проекты для внешних контрибьюторов - JS фреймворк hono закрывает внешние PRы - Браузер LadyBird закрывает внешние PRы - Godot запретил использование ИИ - Платформа Codeberg объявила себя свободной от LLM-сгенерированного контента - Zig запретил использование ИИ у себя (читайте полную историю про переписывание Zig -> Rust и при чем тут bun) - Node.js будет молча закрывать PRы с ИИ-слопом - Linux прекращает поддержку старых сетевых драйверов, чтобы справиться с количеством ИИ-багрепортов Есть только один вопрос: как проекты, которые "запретили" ИИ будут такое контролировать? GitHub Сама платформа тоже меняется. Местами развивается, местами работает с каждым днем все хуже и хуже: от UI до CI. - GitHub все время падает под нагрузкой (с их слов) - GitHub ввел функцию количественного ограничения количества PRов от внешних контрибьюторов для всех репозиториев, потому что проблема массовая - У GitHub больше нет CEO, теперь они часть Microsoft AI - Массовая миграция проектов с GitHub: Gentoo, Zig, Ghostty, BookStack, Flathub, Tenacity BugBounty умирает Ну и конечно же проекты и компании закрывают программы BugBounty для внешних участников. - curl как самый известный пример - Google OSS VPR закрыт в октябре, Intel закрыл свою программу в сентябре - HackerOne закрылся Продвижение и сообщество Я больше не знаю, как продвигать новый опенсорс (кроме постов в нашем чате с тегом #opensource конечно же) . Большинство старых площадок вводят суровые правила против постов со ссылками на свои проекты: - r/Python запретил публикацию своих проектов, мой пост с анонсом django-modern-rest был удален автоматически - r/opensource запретил публиковать AI-slop проекты, формулировки у них вышли очень странные и размытые - Hacktoberfest больше не считает PRы, теперь только митапы - Культура "Good first issue" мертва. Теперь на такой тег приходят только боты Польза Но! После всех новостей важно не впадать в думерство. Польза от ИИ в опенсорсе тоже есть. Недавние находки критических уязвимостей в PHP, Node, GitLab - доказывают пользу грамотного использования ИИ. Многие проекты созданы только благодаря ИИ. Оптимизации, помощь в объяснении исходников, поиск багов, мертвого кода и несоответствий документации и кода. А сколько полезных маленьких проектов люди навайбкодили для себя? Давайте держаться здравого баланса. Искать технические ответы на возникающие сложности и вопросы. Опенсорс - каким мы его знали - мертв. Вывод: необходимо перестраивать систему. Как? Предлагайте в комментариях, обсудим.

    Превью ссылки
    Просмотры6,93 тыс.
    Пересылки297
    Реакции133
    Комментарии843
  5. 05

    Без текста

    Фотоальбом
    Просмотры5,01 тыс.
    Пересылки31
    Реакции—
    Комментарии—

Новые посты

#996Превью ссылки

Виртуальная машина regex в Python Мы уже говорили про дополнительные виртуальные машины в CPython. Посмотрели на pickle, сегодня настала очередь re. Немного не в формате канала, что мы смотрим джуновские штуки, но все равно интересно, может быть какие-то детали будут незнакомы и сениор специалистам. Документация: https://docs.python.org/3/library/re.html Исходник: https://github.com/python/cpython/blob/main/Modules/_sre/sre.c Допустим у нас есть такой паттерн: re.compile(r'@[a-z\d]\d{2,}'). Начинается с @, далее буква латиницей в нижнем регистре или цифра, далее как минимум две цифры. И мы можем посмотреть opcod'ы для данного выражения: LITERAL 64 IN RANGE (97, 122) CATEGORY CATEGORY_DIGIT MAX_REPEAT 2 MAXREPEAT CATEGORY CATEGORY_DIGIT 0. INFO 8 0b1 4 MAXREPEAT (to 9) prefix_skip 1 prefix [0x40] ('@') overlap [0] 9: LITERAL 0x40 ('@') 11. IN 7 (to 19) 13. RANGE 0x61 0x7a ('a'-'z') 16. CATEGORY UNI_DIGIT 18. FAILURE 19: REPEAT_ONE 6 2 MAXREPEAT (to 26) 23. CATEGORY UNI_DIGIT 25. SUCCESS 26: SUCCESS re.compile('@[a-z\\d]\\d{2,}', re.DEBUG) Все опкоды можно посмотреть тут: https://github.com/python/cpython/blob/main/Modules/_sre/sre_constants.h Процесс компиляции Сам процесс компиляции написан на Python, он довольно понятный: https://github.com/python/cpython/blob/e9c9a339035c9b96a5ebca8337a13140725ecf2a/Lib/re/_compiler.py#L34 Есть куча оптимизаций, кешей, утилит для дебага. Тот же dis, вывод которого мы видим при использовании re.DEBUG выше. Данная часть довольно чувствительна к перформансу. Буквально сегодня видел свежий баг, когда ВДРУГ становится медленнее. Выполнение опкодов Раз мы можем скомпилировать инструкции для VM, то мы можем их и выполнить. Исходники самой VM: https://github.com/python/cpython/blob/main/Modules/_sre/sre_lib.h Сначала немного интересных фактов: - Для данной VM в некоторых местах тоже используются COMPUTED_GOTO, если они поддерживаются (пост о них) - Почему-то нет поддержки _Py_TAIL_CALL_INTERP, хотя возможно оно тоже дало бы неплохой буст. Очень интересная задачка на подумать. Может кто-то хочет взять и попробовать? (пост о нем) - В Python3.15 произошел глобальный рефакторинг re модуля: удалили модули sre_compile, sre_constants, sre_parse А вот так выглядят обработчик LITERAL опкодов: TARGET(SRE_OP_LITERAL): /* match literal string */ /* <LITERAL> <code> */ TRACE(("|%p|%p|LITERAL %d\n", pattern, ptr, *pattern)); if (ptr >= end || (SRE_CODE) ptr[0] != pattern[0]) RETURN_FAILURE; pattern++; ptr++; DISPATCH; Про DSL с TARGET и DISPATCH я уже рассказывал в посте про основную VM в питоне. Остальная логика очень простая: если встречаем другой символ, то просто возвращаем 0, если встречаем нужный - продолжаем. ptr++ и pattern++ берут следующий указатель на строку и следующий pattern для матча. Таким образом в DISPATCH попадет уже следующий опкод. Классика. Еще интересно глянуть REPEAT_ONE, который нам нужен в самом конце. Он довольно большой, я спрятал его под ссылку. Из интересного там могу выделить оптимизацию под повторение опкода LITERAL. Остальное - довольно стандартно. Проверяем размер строки, ее символы внутри. Оказывается, что регулярные выражения - довольно простые и понятные, если смотреть на них как на инструкции для выполнения. А не как на текст. И помните: > Если у вас есть проблема, и вы решили использовать регулярные выражения, чтобы её решить... Теперь у вас две проблемы Обсуждение: Любите ли вы писать regex? Поможет ли вам данный пост в дебаге сложных выражений? Есть ли у вас какие-то хитрые оптимизации на уме, которые можно было бы добавить в CPython? | Поддержать | YouTube | GitHub | Чат |

Открыть в Telegram
Просмотры2 624−58%к среднему
Пересылки25
Реакции46
Комментарии64
#995Превью ссылки

Что происходит с ИИ в опенсорсе? Пост можно было бы назвать "Not so OpenSource anymore". Массовое использование ИИ моделей в опенсорсе привело к масштабным изменениям. Мне почему-то очень грустно от таких новостей. Пусть и вам будет! Мой доклад про то же самое: https://www.youtube.com/watch?v=oHIgRZNpS00 - CPython ограничил количество PRов от внешних контрибьюторов тремя открытыми - OpenJDK запретил PRы с использованием ИИ в любом виде - Litestar закрыл PRы для всех внешних контрибьюторов, поток слопа был настолько большой, что я в какой-то момент просто бросил открывать уведомления в проекте. Максим написал большой пост про данный случай - JazzBand после 10 лет открытой коллаборации для десятков проектов закрылся по их формулировке из-за "слопаппокалипсиса", новые участники больше не принимаются - Sindre Sorhus (один из самых популярных опенсорс разработчик в мире) закрыл все свои проекты для внешних контрибьюторов - JS фреймворк hono закрывает внешние PRы - Браузер LadyBird закрывает внешние PRы - Godot запретил использование ИИ - Платформа Codeberg объявила себя свободной от LLM-сгенерированного контента - Zig запретил использование ИИ у себя (читайте полную историю про переписывание Zig -> Rust и при чем тут bun) - Node.js будет молча закрывать PRы с ИИ-слопом - Linux прекращает поддержку старых сетевых драйверов, чтобы справиться с количеством ИИ-багрепортов Есть только один вопрос: как проекты, которые "запретили" ИИ будут такое контролировать? GitHub Сама платформа тоже меняется. Местами развивается, местами работает с каждым днем все хуже и хуже: от UI до CI. - GitHub все время падает под нагрузкой (с их слов) - GitHub ввел функцию количественного ограничения количества PRов от внешних контрибьюторов для всех репозиториев, потому что проблема массовая - У GitHub больше нет CEO, теперь они часть Microsoft AI - Массовая миграция проектов с GitHub: Gentoo, Zig, Ghostty, BookStack, Flathub, Tenacity BugBounty умирает Ну и конечно же проекты и компании закрывают программы BugBounty для внешних участников. - curl как самый известный пример - Google OSS VPR закрыт в октябре, Intel закрыл свою программу в сентябре - HackerOne закрылся Продвижение и сообщество Я больше не знаю, как продвигать новый опенсорс (кроме постов в нашем чате с тегом #opensource конечно же) . Большинство старых площадок вводят суровые правила против постов со ссылками на свои проекты: - r/Python запретил публикацию своих проектов, мой пост с анонсом django-modern-rest был удален автоматически - r/opensource запретил публиковать AI-slop проекты, формулировки у них вышли очень странные и размытые - Hacktoberfest больше не считает PRы, теперь только митапы - Культура "Good first issue" мертва. Теперь на такой тег приходят только боты Польза Но! После всех новостей важно не впадать в думерство. Польза от ИИ в опенсорсе тоже есть. Недавние находки критических уязвимостей в PHP, Node, GitLab - доказывают пользу грамотного использования ИИ. Многие проекты созданы только благодаря ИИ. Оптимизации, помощь в объяснении исходников, поиск багов, мертвого кода и несоответствий документации и кода. А сколько полезных маленьких проектов люди навайбкодили для себя? Давайте держаться здравого баланса. Искать технические ответы на возникающие сложности и вопросы. Опенсорс - каким мы его знали - мертв. Вывод: необходимо перестраивать систему. Как? Предлагайте в комментариях, обсудим.

Открыть в Telegram
Просмотры6 934+12%к среднему
Пересылки297
Реакции133
Комментарии843
#993Фотоальбомизменён

Поговорим про пустоту https://github.com/pustota-theme/pustota VS Code | VS Codium | Zed | Codex | nvim Что будет если Ayu Dark встретит Alabaster? Правильно, будет pustota. Три года назад ровно так я подошел к идее своей темы: смешать любимые цвета от Ayu и добавить философию Alabaster. Прочитайте оригинальную статью от @nikitonsky_pub про подсветку синтаксиса. Я согласен с основными пунктами, но хотелось сделать несколько по-другому. В чем суть? 1. Мы выделяем только важные части кода (для каждого важным будет разное, для меня важны определения классов и функций, ведь их можно быстро увидеть при скролле, а кейворды помогают мне "видеть", запоминать и узнавать форму кода) 2. Используем минимальное количество цветов, если выделено все - то не выделено ничего. Всего в теме 6 цветов: кейворды, классы, функции, константы, строки и комменты 3. Остальной текст остается без подсветки: просто белым (или черным) Поддержка есть для множества языков: Python, Rust, Go, JS, TS, PHP, Java, Clojure, Bash, PowerShell, SQL, XML, Yaml, TOML, RST, MD, ... Есть светлый и два темных варианта с разной контрастностью. Есть планы добавить поддержку Claude Code, PyCharm, Sublime и прочих. Напишите в комменты, если хотите какой-то специальный редактор поддержать :) Так же еще есть языки поддержка которых не на высшем уровне (например: Scala, C++). Тоже нужно будет заняться. Отдельно хочется поплеваться в сторону Zed, который, как оказалось, почти не поддерживает темы. Зато быстрый! Возможно, мой опыт с Zed заслуживает отдельного поста? Сообщество Ну и как всегда хочется сказать спасибо замечательным меинтейнерам и авторам портов оригинальной темы с VS Code на другие платформы. Спасибо: Александру, Канишку, Игорю и всем остальным, кто принимал участие в разработке! В целом: идея "минималистичности" очень зашла не только мне. Последние несколько дней в чате активно обсуждалось создание своих тем. Например, @vanya_engineer начал делать очень красивую тему Navigate, которая пошла еще дальше и сделала почти все оттенками серого, с редкими акцентами: остался только яркий control-flow. Надеюсь, данный пост послужит не только поводом попробовать тему pustota, но и, возможно, будет вам знаком сделать что-то свое. Что подходит уникально именно вам! Обсуждение: Делитесь скринами своих IDE / ADE. Расскажите про темы, которые нравятся вам и почему. Делитесь собственными темами в комментариях! Какие темы лучше? Светлые 🕊️ или темные 👌? Ставьте реакцию, посмотрим кто кого! | Поддержать | YouTube | GitHub | Чат |

Открыть в Telegram
Просмотры4 402−29%к среднему
Пересылки32
Реакции107
Комментарии108
#992Фотоизменён

Доклады с большой встречи сообщества 17 октября мы провели большую встречу сообщества. Надеюсь, успешно! Доклады: https://www.youtube.com/playlist?list=PLbr8rVGhPD0WJxhx-Sc2In7OMGJndsQ4f Немного статистики: - 1000+ человек на всей конференции - 300+ человек на @pytho_nn части - 125 человек в тусочате - 7 крутых докладов - 4 занятых бара - десятки новых интересных знакомств - половина нашего чата приехала Большое спасибо всем, кто помогал делать нашу конфу: - Нашему главному организатору Игорю, что вытащил такой проект @it52info - Замечательным фотографам Екатерине (фотки от нее тут) и Ярославу (фотки от него) - Всем волонтерам, кто помогал со всеми практическими задачами - Ведущему, Леха - красава! - Конечно же спикерам, (по ссылкам можно почитать их отзывы): Иван, Егор, Алексей Гладких, Сергей Макаров, Максим, Алексей Голобурдин, Никита, Валентин, и все-все-все. Спасибо вам большое! Было интересно, было полезно, был повод для дискуссии. Под некоторыми докладами настоящий бомбеж в комментах 🌚️️️️ - Гостям! Люди специально приехали из Минска, Махачкалы, Тюмени, Уфы, Самары, Коврова, Питера, Ростова, Москвы, Нижнего Новгорода, других городов. Вы все просто лучшие! Спасибо за ваш интерес, все отметили, что на конфе чувствовалась душа. Потому что все приехали сами, потому что хотели. Никого не отправляла компания потусить за деньги Было несколько минусов, которые мы постараемся пофиксить на следующий год: шум у главного зала, очереди за едой и в целом логистика еды, вместимость бара подвела (мы планировали 60-70 человек, но было больше 150). Следующий раз выкупим самый большой бар рядом! Попробуем найти партнера вечеринки. Доклады: https://www.youtube.com/playlist?list=PLbr8rVGhPD0WJxhx-Sc2In7OMGJndsQ4f Еще раз: лучшее сообщество! Жду всех в следующем году! Обсуждение: Как вам конференция? Как вам Нижний? Какой доклад понравился больше всего? Кого бы вы хотели видеть в следующем году в качестве спикеров? Делитесь фотками в комментах!

Открыть в Telegram
Просмотры7 922+28%к среднему
Пересылки82
Реакции137
Комментарии76
#991Фотореклама

Платформа для agentic разработки Коллеги из GitVerse сегодня выкатили новое большое обновление. Теперь прямо на платформе можно запускать агентов для разных задач, с разным тулингом, на разных моделях. Я протестировал новые возможности, выглядит очень круто. Я дико люблю GitHub Agents. Пользуюсь им чуть ли не каждый день: обновить зависимость, сделать ревью сложного кода, решить какую-то простую задачу. Мне кажется, что запускать агенты прямо рядом с кодом - лютейшая база. Очень удобно. Рад, что такая же фича появилась в GitVerse. Делюсь впечатлениями и техническими подробностями. У меня было три разные задачи. Создание проекта Для начала я попросил встроенную бесплатную модель GigaCode сделать мне новый проект из моего шаблона для python пакетов. Пример: https://gitverse.ru/sobolevn/test-ai-agents/issues/1 Как? 1. Включаешь в настойках "AI-Соавтора" GigaCode-разработчика (документация) 2. Создаешь задачу в трекере 3. Назначаешь GigaCode-разработчика на нее, можно просто в kanban таску передвинуть 4. Готово! Агент сам развернет окружение, решит задачу, пришлет PR. В интерфейсе можно выбрать модель, добавить дополнительный prompt. Или можно просто тегнуть в PR и попросить агента доработать что-то. Проверка задач Следующий пример: допустим вы хотите научить коллег наконец создавать понятные задачи 🌚️️️️ Можно сделать AI частью вашего workflow, создаем .gitverse/workflows/issue_dor.yml (помните, я писал, что GitHub Actions можно брать и переиспользовать?) on: issues: types: [opened] jobs: review: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - uses: actions/ai-developer-action@master with: prompt_file: .gitverse/prompts/issue_dor.md Теперь мы можем разместить любой промпт для проверки Definition of Ready в файле .gitverse/prompts/issue_dor.md и агент будет на каждую новую задачу запускаться и выполнять проверку. Работает! Документация. Пример: https://gitverse.ru/sobolevn/test-ai-agents/issues/3 Опять же, можно выбирать разные модели для разных задач и тут тоже. Ключевое: вешать агента можно на любые события CI. От релизов до коммитов. Использование внешней модели Конечно же мне захотелось попробовать подключить какую-то внешнюю модель и потестить, как работает интеграция на задаче с программированием. Сначала настраиваем AI_SESSION_MODELS переменную: [ { "profile_id": "gpt-sol", "name": "your-provider/api/v1/gpt-6.1-sol", "auth_mode": "direct", "base_url": "https://your-provider.example/api/v1", "model": "openai/gpt-6.1-sol", "api_key_secret": "CUSTOM_PROVIDER_KEY", "input_modalities": ["text"], "output_modalities": ["text"] } ] И указываем из какого секрета читать ключ. Можно добавлять много провайдеров, много моделей. Создаем задачу, назначаем агента, выбираем нашу модель (на скриншоте). Агент шуршит, присылает результат в PR: https://gitverse.ru/sobolevn/test-ai-agents/pulls/5 Приятные бонусы - Чаты и сессии с агентами - Собственные агенты и кастомные скиллы - Поддержка кастомных MCP - Свой MCP для работы с GitVerse API - Интеграции с IDE - Разбор ошибок CI - Генерация сообщений к коммитам - Удобный UI для обращения к агентам из любого места на сайте Выглядит круто! Попробуйте для своего проекта. Обсуждение: Какие фичи платформы для агентской разработки для вас наиболее нужны и важны? Какие модели там вы предпочитаете? Реклама. ПАО "СБЕРБАНК", ИНН 7707083893. erid: 2W5zFHAvuSq

Открыть в Telegram
Просмотры7 971+28%к среднему
Пересылки68
Реакции177
Комментарии105
#989Текстизменён

Еще анонсы докладов на бесплатную конференцию 17 октября в НН Регистрация: https://itgorky.ru/bolshaya-vstrecha Нам дали впихнуть невпихуемое и дали еще два слота под доклады. К 6 прошлым докладам. Теперь их 8 на нашей секции. Наша концепция конференции: ваши любимые опенсорсеры и ютюберы. Ровно их я и пригласил! - Алексей Голобурдин @t0digital, с канала Диджитализируй: Будущее локальных LLM Почему для многих задач полностью локальные агенты это будущее, как Microsoft, Apple и hardware-производители идут в сторону локального инференса, и как это использовать разработчику. - Александр Целуйко, core-разработчик msgspec: Я твой fastapi msgspec'ом ускорял Почему msgspec быстрее и меньше базовых структур (namedtuple, dataclass и тп) python и orjson (не всегда и везде есстессна). Что нужно, чтобы fastapi работал на msgspec? Как разогнать Ваш сервис на fastapi ещё быстрее? Устроим батл про msgspec vs adaptix! Другие треки На конференции будут и другие треки! - Frontend - DevOps - InfoSec - DevRel - ODS от наших коллег из Нижегородского филиала @nnodsbreakfast - QA На них я особо отмечу доклады от моих коллег / друзей: - DevRel: Ксения Романова @devrel_sklad: Как изменения в разработке уже меняют DevRel - DevRel: Анастасия Маслова @za_predelami_koda: Не всё, что можно автоматизировать, стоит автоматизировать - DevRel: Обед с Валентином Домбровским, где он расскажет про строительство сообществ, про мотивацию, про @moscow_python и про MoscowPython Pro - Frontend: Никита Пастухов @fastnewsdev: Как научить AI красить кнопки (ха! смотрите, Никита - фронтендер! 🌚) Тусовка Уникальная возможность всем вместе погулять, пообщаться, посмотреть город, хорошо провести время. Будем тусить до и после конфереции, если хотите с нами, то вот специальный одноразовый чат под событие. Всех приглашаем! Техническое - Письмо от нас ждать не надо, мы его высылаем всем. Просто не всем доходит 🌚 - Если зарегались, то смело приходите / приезжайте! Ничего ждать не надо. Регистрация: https://itgorky.ru/bolshaya-vstrecha Нижний Новгород, 17 октября Обсуждение: А какой доклад больше всего ждете вы? С кем больше всего хочется вжарить пивчанского?

Открыть в Telegram
Просмотры11 383+83%к среднему
Пересылки69
Реакции67
Комментарии55
#988Превью ссылкиизменён

Монадические выражения в Python. Наконец-то! Продолжаем разговор про интересные PEPы. Поговорим сразу про два: - PEP-823: https://peps.python.org/pep-0823 - PEP-824: https://peps.python.org/pep-0824 В целом они оба об одном: использовании ? для решения проблемы обращения к None при работе с данными. Первый PEP описывает два новых оператора ?. и ?[], которые позволяют представить выражение some?.field как: if some is not None: field = some.field else: field = None Аналогично: some?[field] будет делать тоже самое, но для для some[field]. Второй - позволяет использовать оператор ?? вместо is not None и тернарных выражений. Теперь мы сможем писать some ?? 'default' вместо some if some is not None else 'default'. И есть вариант ??= по аналогии с +=, тд. Данная попытка уже не первая. Первая была сделана очень много лет назад в PEP-505, который отклонили. Но теперь, два данных PEP'а проспонсированы лично Гвидо, так что шансы хорошие. Примеры Давайте посмотрим на более реалистичные случаи. Например, если у вас есть вот такая вложенная структура данных, и нужно получить имя покупателя из очень глубокого слоя, то сейчас мы вынуждены писать: def get_customer_name(data: Data) -> str | None: """Get customer name in lower case if it exists.""" customer = data.customer if customer is not None: user = customer.user if user is not None: return user.name.lower() return None Превращается в: def get_customer_name(data: Data) -> str | None: return data.customer?.user?.name.lower() Как будет работать второй вариант? Если data.customer является None, то мы сразу его возвращаем. Если нет, пробуем получить .user, проверяем его на None. И тд. Важный момент: __getattr__ и __getitem__ никак не меняются, они просто не вызываются при None. В большинстве языков (PHP/JS/TS/C#/Kotlin/Swift/Rust/Dart) такая фича уже есть, она делает работу с вложенными опциональными данными сильно удобнее. Типизация Ничего не меняется: - get_customer_name все еще возвращает str | None - Обращение через . к optional полю - все еще ошибка - Обращение через ?. к optional полю - не ошибка, а просто None Перформанс Самое интересно! Первый вариант get_customer_name выполняет много опкодов на ровном месте. Условия, сравнения, прыжки, LOAD_ATTR и тд. Что делает данный код сложным для оптимизации и JIT'ирования. Но data.customer?.user?.name.lower() оптимизировать очень удобно, потому что можно сделать один новый опкод LOAD_OPTIONAL_ATTR (или добавить еще один oparg к текущему LOAD_ATTR), а уже его будет очень удобно оптимизировать. Потому что весь код проверок будет жить в одном месте рядом на C, а не куча условий на питоне. И последовательность таких LOAD_OPTIONAL_ATTR будет удобно находить и возможно оптимизировать в том числе. Почему монадические? Потому что на заголовок нужно было как-то забайтить! 🌚 Но и контекст, конечно, реально существует. Например в dry-python/returns уже много лет была доступна конструкция Maybe с методом .bind, который ведет себя прямо как ?. оператор и не продолжает выполнение после первого None / Nothing. Как вы уже поняли, я дикий фанат таких штук. Ждем всем чатом! Одной строкой - [email protected] почти готов; изменений просто капец сколько. Каждая часть фреймворка вылизывается и становится на порядок лучше. Релиз в конце #opensource_september - Наша бесплатная конференция 17 октября в Нижнем Новгороде получила двух новых спикеров к 6 текущим. Итого: 8 докладов от топовых питон ютюберов и опенсорсеров! Анонс новых докладов будет в самое ближайшее время. А пока можно регистрироваться - Обратите внимание, что ждать подтверждения не нужно! Мы стараемся всем сразу высылать письма, но они нужны только для моральной поддержки :) Было много вопросов по статусу письма. Если вы зарегались, то можете приходить! Пустим всех. Обсуждение: Что вы думаете? Не возникает ли у вас вопросиков по данной фиче? Как вы сейчас решаете данную проблему с boilerplate кодом?

Открыть в Telegram
Просмотры11 974+93%к среднему
Пересылки224
Реакции209
Комментарии344
#987Текстизменён

PEPы в Python окончательно вышли из-под контроля Давайте посмотрим, что происходит с ПЕПами в CPython. Там много новых спорных штук. Начнем с более базовых, перейдем к дичи в конце. Какие-то ПЕПы приняты, но большинство в обсуждении. Докстринги для TypeAliasType PEP-846: https://github.com/python/peps/pull/5116 Базовая база: пишем докстринги после ключевого слова type - у нас появляется __doc__ атрибут. type Timeout = float | None """Maximum wait in seconds. """ Привычный синтаксис из-за sphinx аннотаций для атрибутов. Кстати, поддержка правила для поиска докстрингов вне правильных мест уже в wps! Паттерн-матчинг конкретных значений PEP-845: https://github.com/python/peps/pull/5107 В питоне была проблема, что нельзя сматчить конкретное значение из переменной. Все имена в PM всегда переписываются. В первой версии PEP-622 хотели сделать паттерны для сравнения с переменной, но потом отказались. А без такого - жить довольно сложно. Такой синтаксис предлагают авторы: def get_book_titles_for_author(author: str): for book in BOOKS: match book: case {"title": title, "author": .author}: yield title Обратите внимание на .author, что показывает матч со значением внутри author, а не переназначение переменной author. Если бы добавили $ для "констант", то было $author 🌚 Мне нравится, выглядит полезно. yield from в асинхронных генераторах PEP-828: с python3.16 можно будет писать так: async def agenerator(): yield 1 yield 2 return 3 async def main(): result = yield from agenerator() assert result == 3 Я нейтрален, зависит от сложности реализации и граничных случаев. Явные public и private декораторы PEP 844: # spam.py @public class Public: ... @private class Private: ... # ex.py import spam spam.__all__ # ['Public'] Манипуляция __all__ через декоратор. А можно не надо? Почему? __all__ используется для from spam import * и не для чего больше. __all__ надо закапывать, а не развивать. Более того, декоратор нельзя повесить на имена и тайп-алиасы. Кажется очень непродуманным решением. Ключевое слово export PEP-843: Предлагают добавить ключевое слово export для ... я не знаю чего. А, опять манипуляции __all__. Чем не устраивает простая текущая система? Если имя начинается с _ - то оно protected. Ключевое слово для управления списком! Я против. Ребята из FastAPI тащат синтаксис для себя в stdlib PEP-835: Предлагают сделать @ типовым и рантайм оператором для создания Annotated объектов. Крайне неудачный PEP на мой взгляд, о чем я написал авторам и собрал кучу поддержки. Не поймите меня неправильно: я всячески за операции над типами. Просто я не думаю, что int @ Field(max=100) должно значить Annotated[int, Field(max=100)]. Нет задачи сократить количество символов, которые мы пишем (а некоторые уже и не пишут). Одной строкой - На прошлой неделе я побывал в пресс-туре MAGNIT TECH в Суздале. Было очень круто. Приятно видеть, как развивается ритейл. Обсудил с коллегами умные кассы, внедрение ИИ, новые способы оплаты, предиктивную аналитику спроса, интересное в логистике, предложил им внедрить wps. Хорошо провел время с коллегами @alexgladkovblog, @t0digital, @MrTeamlead. Суздаль - очень красивый! Кароч, очень понравилось. Спасибо за приглашение! - Мы релизнули [email protected] в рамках #opensource_september, все большое спасибо за участие. Наш самый большой релиз. Пока что! - Про PEP-805 будет отдельный пост - В Нижний на конфу уже собралось очень много людей из разных городов, приезжайте и вы! Можно даже отбивку о регистрации не ждать, всех пустим :) Обсуждение: Как вам данные ПЕПы? Нашли что-то полезное для себя?

Открыть в Telegram
Просмотры10 480+69%к среднему
Пересылки40
Реакции98
Комментарии155

Все посты

Связи