Forwarded from GitVerse News
#GitVerseКейс
Смотри, какой репозиторий!🚀
Сегодня в рубрике рассказываем об интересном проекте-участнике нашей грантовой программы. Это ReVu — self-hosted инструмент на базе ИИ для автоматического код-ревью в запросах на слияние. Он позволяет командам экономить время, выявляя проблемы на раннем этапе и не передавая код сторонним сервисам😍
О проекте🖱
ReVu — вебхук-сервис, который вы разворачиваете у себя без внешних платформ. Как работает: dev открывает PR, Git шлет вебхук в ReVu. Тот верифицирует подпись (чтобы избежать подделок), запрашивает diff, передает в ИИ и постит анализ в PR. Вы выбираете формат: общий комментарий или inline-замечания по строкам, а ИИ ловит ошибки, сомнительные места. В результате ревьюер получает «чистый» код. Время сэкономлено!⏰
История проекта и названия✍
Все началось с идеи задействовать ИИ для предварительного разбора кода в PR, чтобы отметить потенциальные проблемы до того, как подключится человек. Автор проверил готовые варианты, но они не устроили: мало кастомизации, и код уходит на сторону. Так и появился ReVu — инструмент для локального использования, который адаптируется под нужды.
Название — сокращение от «review» и шутки подписчика: участник чата автора как-то сказал, что «Реву — это стабильное состояние моего ревьюера». Идея в том, чтобы ИИ «поплакал» над кодом первым🤭 , отфильтровав рутину, а ревьюер занялся ключевыми вещами вроде архитектуры. В итоге процесс ускоряется, качество растет, а PR приходит уже отполированным!
Особенности:
⏩ все находится на вашем сервере;
⏩ поддержка разных Git (публичные с reverse-proxy) и ИИ, включая локальные модели;
⏩ анализ diff, проверка Conventional Commits.
Архитектура⛏
В основе — FastAPI для вебхуков с Pydantic. Он принимает входящие вебхуки от Git-провайдеров и с помощью Pydantic валидирует данные: проверяет структуру событий, типы полей и корректность переданной информации. Для общения с внешними сервисами — как с Git-провайдерами, так и с ИИ-моделями — используется HTTPX.
Планы на развитие💡
В планах: больше провайдеров, тесты и дока для контрибьюторов, мульти-Git на одном инстансе, а также документированные кастом-промпты и версия как GitHub Action — без сервера, прямо в пайплайне.
Подробнее о проекте (изучайте, юзайте, вкладывайтесь) — по ссылке
#GitVerseРазработчикам
Смотри, какой репозиторий!
Сегодня в рубрике рассказываем об интересном проекте-участнике нашей грантовой программы. Это ReVu — self-hosted инструмент на базе ИИ для автоматического код-ревью в запросах на слияние. Он позволяет командам экономить время, выявляя проблемы на раннем этапе и не передавая код сторонним сервисам
О проекте
ReVu — вебхук-сервис, который вы разворачиваете у себя без внешних платформ. Как работает: dev открывает PR, Git шлет вебхук в ReVu. Тот верифицирует подпись (чтобы избежать подделок), запрашивает diff, передает в ИИ и постит анализ в PR. Вы выбираете формат: общий комментарий или inline-замечания по строкам, а ИИ ловит ошибки, сомнительные места. В результате ревьюер получает «чистый» код. Время сэкономлено!
История проекта и названия
Все началось с идеи задействовать ИИ для предварительного разбора кода в PR, чтобы отметить потенциальные проблемы до того, как подключится человек. Автор проверил готовые варианты, но они не устроили: мало кастомизации, и код уходит на сторону. Так и появился ReVu — инструмент для локального использования, который адаптируется под нужды.
Название — сокращение от «review» и шутки подписчика: участник чата автора как-то сказал, что «Реву — это стабильное состояние моего ревьюера». Идея в том, чтобы ИИ «поплакал» над кодом первым
Особенности:
Архитектура
В основе — FastAPI для вебхуков с Pydantic. Он принимает входящие вебхуки от Git-провайдеров и с помощью Pydantic валидирует данные: проверяет структуру событий, типы полей и корректность переданной информации. Для общения с внешними сервисами — как с Git-провайдерами, так и с ИИ-моделями — используется HTTPX.
Планы на развитие
В планах: больше провайдеров, тесты и дока для контрибьюторов, мульти-Git на одном инстансе, а также документированные кастом-промпты и версия как GitHub Action — без сервера, прямо в пайплайне.
Подробнее о проекте (изучайте, юзайте, вкладывайтесь) — по ссылке
#GitVerseРазработчикам
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8⚡4❤3
Знаете ли вы, как ускорить вставку в отсортированный список?
Если у вас уже есть отсортированный список, его нет смысла пересортировывать после каждой вставки. Python дает простой инструмент –
Вставлять все равно придется обычным
Пример быстрой вставки:
Можно сделать короче –
Основные функции:
-
-
- Поиск позиции –
Код на салфетке x Кусочки кода
Если у вас уже есть отсортированный список, его нет смысла пересортировывать после каждой вставки. Python дает простой инструмент –
bisect, который быстро находит правильную позицию для нового элемента через бинарный поиск.Вставлять все равно придется обычным
.insert(), но теперь вы сразу будете знать куда именно.Пример быстрой вставки:
import bisect
data = [10, 20, 30, 40, 50]
# bisect_left находит позицию, куда должен встать новый элемент
idx = bisect.bisect_left(data, 25)
print(idx) # 2
data.insert(idx, 25)
print(data) # [10, 20, 25, 30, 40, 50]
Можно сделать короче –
insort сделает поиск + вставку за один вызов:bisect.insort_left(data, 35)
print(data) # [10, 20, 25, 30, 35, 40, 50]
Основные функции:
-
bisect_left(a, x): если x есть в списке, вернет позицию перед первым вхождением; если нет – позицию для вставки с сохранением сортировки-
bisect_right(a, x) / bisect(a, x): если x есть в списке, вернет позицию после последнего вхождения; если нет – позицию для вставки с сохранением сортировки- Поиск позиции –
O(log n), вставка в список – O(n), потому что Python сдвигает элементы.Код на салфетке x Кусочки кода
🔥12⚡3
Всем привет!
Во время становления канала, два года назад, я проходил стажировку в Академии Лад на проекте «Лапа». Старожилы наверняка помнят серию статей на эту тему.
С тех пор многое изменилось, особенно рынок труда. Теперь недостаточно просто знать ответы на вопросы собеседующего — важен реальный опыт работы, навыки взаимодействия с командой и гибкость в использовании технологий.
Благодаря стажировке в Академии Лад я, на тот момент выпускник курсов GeekBrains, который почти ничего не знал о командной работе, получил массу полезного опыта. И продолжаю получать его до сих пор — и не только получать, но и передавать стажёрам в качестве ментора Python-бэкендеров.
Академия за это время также не стояла на месте — она развивалась и расширялась. Если во время моей стажировки проектов было от силы штук пять, и все они были внутренними, то сейчас многие выполняются для внешних заказчиков: например, всем известная ЛизаАлерт или Университет им. Лобачевского. Проекты стали крупнее и серьёзнее, а подходы к разработке — из учебных постепенно приблизились к отраслевым стандартам. Согласитесь, проект в резюме для ЛизаАлерт выглядит куда солиднее, чем «делал инкубационные задачки».
Быть ментором оказалось непросто, но невероятно интересно. Мы еженедельно созваниваемся со стажёрами и обсуждаем выполненные задачи. На этих созвонах (а также в личных сообщениях) они задают вопросы по проектам, технологиям и рабочим процессам.
Помимо стажировки, Академия Лад предлагает и специализированные курсы. Не как во многих «онлайн-школах», где пытаются учить всему подряд и ничему конекретно, а наоборот — дают только профильные, действительно практические знания. И тут тоже не обойдётся без меня: начиная с 6 декабря, я буду вести практические занятия для студентов курса Python + Django. На курсе будет всё необходимое для полноценной работы:
- современные инструменты, такие как
- полный путь Django-разработчика — от моделей и шаблонов до тестирования и API;
- знакомство с инструментами деплоя:
Опыт, который я получил в Академии Лад, не раз помогал мне в профессиональном росте. И теперь я рад быть частью команды, чтобы передавать этот опыт дальше и поддерживать новых специалистов на их пути.
Если кому-то откликнулась история про стажировку и хочется похожего опыта, то вот ссылка на курс. По промокоду
Во время становления канала, два года назад, я проходил стажировку в Академии Лад на проекте «Лапа». Старожилы наверняка помнят серию статей на эту тему.
С тех пор многое изменилось, особенно рынок труда. Теперь недостаточно просто знать ответы на вопросы собеседующего — важен реальный опыт работы, навыки взаимодействия с командой и гибкость в использовании технологий.
Благодаря стажировке в Академии Лад я, на тот момент выпускник курсов GeekBrains, который почти ничего не знал о командной работе, получил массу полезного опыта. И продолжаю получать его до сих пор — и не только получать, но и передавать стажёрам в качестве ментора Python-бэкендеров.
Академия за это время также не стояла на месте — она развивалась и расширялась. Если во время моей стажировки проектов было от силы штук пять, и все они были внутренними, то сейчас многие выполняются для внешних заказчиков: например, всем известная ЛизаАлерт или Университет им. Лобачевского. Проекты стали крупнее и серьёзнее, а подходы к разработке — из учебных постепенно приблизились к отраслевым стандартам. Согласитесь, проект в резюме для ЛизаАлерт выглядит куда солиднее, чем «делал инкубационные задачки».
Быть ментором оказалось непросто, но невероятно интересно. Мы еженедельно созваниваемся со стажёрами и обсуждаем выполненные задачи. На этих созвонах (а также в личных сообщениях) они задают вопросы по проектам, технологиям и рабочим процессам.
Помимо стажировки, Академия Лад предлагает и специализированные курсы. Не как во многих «онлайн-школах», где пытаются учить всему подряд и ничему конекретно, а наоборот — дают только профильные, действительно практические знания. И тут тоже не обойдётся без меня: начиная с 6 декабря, я буду вести практические занятия для студентов курса Python + Django. На курсе будет всё необходимое для полноценной работы:
- современные инструменты, такие как
uv и pre-commit;- полный путь Django-разработчика — от моделей и шаблонов до тестирования и API;
- знакомство с инструментами деплоя:
CI/CD и Docker.Опыт, который я получил в Академии Лад, не раз помогал мне в профессиональном росте. И теперь я рад быть частью команды, чтобы передавать этот опыт дальше и поддерживать новых специалистов на их пути.
Если кому-то откликнулась история про стажировку и хочется похожего опыта, то вот ссылка на курс. По промокоду
press_any_button действует скидка в 10 000 ₽ — возможно, кому-то пригодится.🔥11❤8⚡3
Всем привет!
Смертельная зона (2021)
Если вы ещё не смотрели этот футуристический боевик, самое время наверстать! «Смертельная зона» — это история о недалёком будущем, где война идёт не только между людьми, но и с участием высокотехнологичных роботов. Главный герой — молодой лейтенант, который вместе с опытным офицером-андроидом отправляется на опасную миссию, чтобы предотвратить глобальный конфликт.
Фильм впечатляет динамичными экшен-сценами, продуманными спецэффектами и интересной идеей о том, как технологии могут изменить характер войны. Здесь есть всё: напряжённые перестрелки, моральные дилеммы и неожиданные повороты сюжета.
Особенно стоит отметить игру Энтони Маки в роли андроида — его персонаж одновременно холоден и человечен, что добавляет глубины фильму. Если вам нравятся фильмы про будущее, технологии и военные триллеры — «Смертельная зона» точно стоит вашего внимания.
Смертельная зона (2021)
Если вы ещё не смотрели этот футуристический боевик, самое время наверстать! «Смертельная зона» — это история о недалёком будущем, где война идёт не только между людьми, но и с участием высокотехнологичных роботов. Главный герой — молодой лейтенант, который вместе с опытным офицером-андроидом отправляется на опасную миссию, чтобы предотвратить глобальный конфликт.
Фильм впечатляет динамичными экшен-сценами, продуманными спецэффектами и интересной идеей о том, как технологии могут изменить характер войны. Здесь есть всё: напряжённые перестрелки, моральные дилеммы и неожиданные повороты сюжета.
Особенно стоит отметить игру Энтони Маки в роли андроида — его персонаж одновременно холоден и человечен, что добавляет глубины фильму. Если вам нравятся фильмы про будущее, технологии и военные триллеры — «Смертельная зона» точно стоит вашего внимания.
🔥4❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Когда можно спокойно идти в Yandex Cloud, а когда без онпрема и своего железа лучше даже не начинать.
Привет всем. Бизнес хочет «как ChatGPT», но живет в жесткой реальности: 152-ФЗ, Роскомнадзор, ФСТЭК, а иногда и 187-ФЗ про критическую инфраструктуру (КИИ). Игнорировать это нельзя: с 30 мая 2025 года штрафы за нарушения по персональным данным (ПД) и требования к документации (политика ПД, регламенты) выросли, и играть в рулетку уже дорого.
На этом фоне на рынке появился "зоопарк" российских LLM: от GigaChat и YandexGPT в облаке до полностью собственных, кастомных моделей на своем железе.
Главный тезис: Self-hosted - не магическое слово безопасности, а всего лишь один из режимов работы. Вопрос не в том, что лучше, а в том, какая задача и какой регулятор.
Российский рынок LLM делится на три ключевых сегмента:
Это самый простой вход:
Эти облака (включая VK Cloud) активно используются, так как дата-центры находятся в РФ, что снимает базовые вопросы по локализации. Вы платите за токены и вычисления, а не за закупку GPU и команду MLOps.
Это развертывание платформы вендора внутри вашего периметра или в отдельном закрытом сегменте.
Вы берете отечественные модели (GigaChat, YandexGPT, Cotype, T-Pro) как основу, дообучаете их и крутите на своем GPU-сервере в российском ЦОДе. Выполняете все требования 152-ФЗ к ЦОД и физической защите сами.
💻 Self-hosted без своего железа: аренда GPU в российских ЦОД
Важно понимать - self-hosted не всегда значит «купили стойку, притащили GPU и теперь страдаем с охлаждением и апгрейдами».
Есть промежуточный вариант: взять готовые GPU-серверы в аренду у российских провайдеров и крутить опенсорсные LLM уже на них. По сути получается такой компромисс:
Я, например, знаком с Selectel (не реклама): у них можно взять сервера с GPU в аренду и довольно быстро поднять свою Llama, Mistral или другую опенсорсную LLM. Без истории «ждем поставку железа три месяца, потом еще два согласуем с безопасниками». И дополнительно они сами выступают за безопасность. Посмотрим как у них получится.
Чем такой подход отличается от классического облака с готовой LLM:
Юридически и с точки зрения ИБ это ближе к self-hosted, чем к SaaS: провайдер дает ресурсы и площадку, но не лезет в ваш стек и логи. При этом входной билет сильно ниже, чем в сценарии «купили парк GPU-серверов и теперь сами за все отвечаем».
152-ФЗ и ПД: Данные с персональными данными (ПД) обязаны храниться и обрабатываться на территории РФ, особенно если вы предоставляете массовый сервис для граждан. Российское облако (Yandex Cloud, SberCloud) это не запрещает, но провайдер обязан иметь дата-центры в РФ и соответствовать 152-ФЗ, а также стандартам ISO, PCI DSS.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤2
187-ФЗ и КИИ — главная болевая точка. Если ваша компания попадает под 187-ФЗ (банки, энергетика, транспорт, крупный завод), то требования к безопасности значимых объектов КИИ сильно выше.
В таких условиях онпрем-платформа или строго изолированный контур обычно проще согласовывается с «безопасниками», чем «просто облачный SaaS».
Я думаю, что про штрафы за нарушение ФЗ мне не стоит упоминать. Там просто «космические масштабы»
⤴️ ⤴️ ⤴️ ⤴️ ⤴️ ⤴️ ⤴️ ⤴️
😋 Когда облако - это оптимальный выбор (и не геройствуем)
Self-hosted не нужен, когда:
0️⃣ Вы генерируете тексты, а не оперируете данными. Генерация маркетинговых текстов, описаний товаров, скриптов продаж - если там нет чувствительных ПД.
1️⃣ Вы делаете внутреннюю поддержку. Поддержка сотрудников в бэкофисе, аналитика, если в запросы не летят паспортные данные, медданные и прочее.
2️⃣ Вы используете RAG с очисткой. RAG по внутренним документам, где вы заранее отфильтровали ПД и секреты, или работаете с обезличенными версиями.
3️⃣ Вы - стартап. У вас нет бюджета и нет команды на свой ML-стек и ИБ. Но только соблюдайте очистку ПД.
Аргументы «за» облако:
🏃♂️ Зрелые облака (Yandex Cloud, SberCloud) уже позиционируют себя для ИИ-задач.
🏃♂️ Готовый SLA, сертификации, резервирование - много инфраструктуры «из коробки».
🏃♂️ Вход дешевле: платите за токены, а не за закупку GPU.
«Можно идти в облако, если...»:
🙂 Регулятор не требует отдельного контура и сертификации системы.
🙂 В запросах к LLM нет сырых ПД или коммерческой тайны целиком.
🙂 Вас устраивает, что частичный контроль над инфраструктурой у облачного провайдера.
⤴️ ⤴️ ⤴️ ⤴️ ⤴️ ⤴️ ⤴️ ⤴️
😐 Когда Self-hosted / Онпрем действительно нужен
Если ваша задача сопряжена с высоким риском, облако - это лотерея. Максимальная локализация необходима, когда:
🐱 Вы работаете с чувствительными доменами. Банки, страховые, медицина, госуслуги, телеком - везде, где много высокоуровневых ПД и подзаконки к 152-ФЗ.
🐱 Запрещена утечка логов. Вы не можете позволить себе, чтобы лог с сырыми запросами улетел хоть куда-то вне вашего контура.
🐱 Вы - объект КИИ. Требования ФСБ/ФСТЭК по защите инфраструктуры (сегментация, сертифицированные СЗИ) крайне жесткие. Тут онпрем-платформа (YandexGPT/GigaChat в контуре) выглядит гораздо реалистичнее, чем абстрактное облако.
🐾 Нужна тонкая кастомизация и guardrails. Если вам нужно допиливать архитектуру модели, дообучать на своих данных, контролировать версионность и встраивать собственные кастомные guardrails.
Плюсы self-hosted:
🙂 Максимальный контроль над данными, логами и контурами доступа.
🙂 Возможность выстроить архитектуру безопасности под свои стандарты и отраслевые регламенты.
🙂 Гибкость в выборе моделей, дообучении, настройке интеграции с KMS/SIEM.
🙂 Можно комбинировать: модель и данные ваши, а железо арендуете у провайдера в РФ (типа Selectel с GPU-серверами), то есть сохраняете контроль над стэком, но не строите свой мини-ЦОД.
Минусы self-hosted:
👊 Железо, GPU, ЦОД, лицензии, сопровождение - все расходы ваши.
👊 Нужна своя команда ML/DevOps/ИБ, а не «пара разработчиков».
👊 Обновления моделей и безопасность стека - ваша головная боль.
⤴️ ⤴️ ⤴️ ⤴️ ⤴️ ⤴️ ⤴️ ⤴️
🤝 Гибридный путь: не выбирать «или-или»
Самое практичное решение часто лежит посередине - сегментация трафика и сценариев.
🟡 Онпрем для чувствительного. На периметре стоит онпрем-платформа (YandexGPT в контуре). Через нее проходят чувствительные сценарии: ПД, финансы, КИИ.
🟡 Облако для легкого. Для «легких» задач (маркетинг, идеягенерация) используются облачные сервисы того же вендора, чтобы не плодить зоопарк.
🟡 Аренда GPU как буфер. Если своего железа пока нет, но команда готова тащить опенсорсные модели, можно начать с аренды GPU в российских ЦОД (Selectel и другие), а потом уже решать, идти ли в свой парк железа.
🟡 Ограничение выхода наружу. Вы лимитируете, какие подсистемы вообще могут ходить наружу, используя API-шлюзы, DLP и WAF.
Этот подход позволяет получить скорость и простоту облака там, где это безопасно, и максимальную защиту там, где это критически важно.
⤴️ ⤴️ ⤴️ ⤴️ ⤴️ ⤴️ ⤴️ ⤴️
В таких условиях онпрем-платформа или строго изолированный контур обычно проще согласовывается с «безопасниками», чем «просто облачный SaaS».
Я думаю, что про штрафы за нарушение ФЗ мне не стоит упоминать. Там просто «космические масштабы»
Self-hosted не нужен, когда:
Аргументы «за» облако:
«Можно идти в облако, если...»:
Если ваша задача сопряжена с высоким риском, облако - это лотерея. Максимальная локализация необходима, когда:
Плюсы self-hosted:
Минусы self-hosted:
Самое практичное решение часто лежит посередине - сегментация трафика и сценариев.
Этот подход позволяет получить скорость и простоту облака там, где это безопасно, и максимальную защиту там, где это критически важно.
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡2🔥2❤1
Ответьте на 5 вопросов, чтобы выбрать путь:
Выбор между облаком и Self-hosted - это выбор между скоростью внедрения/доступностью и глубиной контроля/соответствием жестким регуляторным требованиям (особенно 187-ФЗ КИИ). Не давайте LLM стать «протекающей абстракцией» для ваших критических данных.
Код на салфетке x Мозг в данных
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3⚡2❤1
Привет, друзья! 👋
Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе:
📋 Новое на канале:
🔄 Понедельник, 24.11.2025 — Дайджест
🐍 Вторник, 25.11.2025 — Смотри, какой репозиторий!, Знаете ли вы, как ускорить вставку в отсортированный список?
🎬 Пятница, 28.11.2025 — Путь от стажёра до ментора, Пятничный кинорелакс
🤖 Воскресенье, 30.11.2025 — Self-hosted против Облака: Как не дать LLM слить ваши данные в 2025 году
🔗 Будьте ближе к нам:
🌐 Читайте полные статьи на сайте
💬 Присоединитесь к обсуждению в чате
Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀
#дайджест #код #python #полезное #код_на_салфетке
Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе:
📋 Новое на канале:
🔄 Понедельник, 24.11.2025 — Дайджест
🐍 Вторник, 25.11.2025 — Смотри, какой репозиторий!, Знаете ли вы, как ускорить вставку в отсортированный список?
🎬 Пятница, 28.11.2025 — Путь от стажёра до ментора, Пятничный кинорелакс
🤖 Воскресенье, 30.11.2025 — Self-hosted против Облака: Как не дать LLM слить ваши данные в 2025 году
🔗 Будьте ближе к нам:
🌐 Читайте полные статьи на сайте
💬 Присоединитесь к обсуждению в чате
Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀
#дайджест #код #python #полезное #код_на_салфетке
🔥4⚡2
Forwarded from GitVerse News
#GitVerseКейс
Смотри, какой репозиторий!🐶
Время дайджеста! Мы продолжаем изучать крутые проекты, которые нашли среди заявок грантовой программы, и вдохновлять ими. Сегодня снова принесли вам целых три. Давайте смотреть🚀
1️⃣ Kawai-Focus — приложение для фокусировки внимания на основе техники Pomodoro. Его миссия — сделать работу человека эффективной, предотвратить выгорание и вовремя предупреждать об опасном для здоровья уровне переработки.
Какие фишки?🖱
📌 Современный и аккуратный дизайн в стиле Material Design, который оживил внешний вид приложения на Kivy благодаря обновленному форку KivyMD 2.0.0.
📌 Настраиваемые цепочки таймеров, легко подстраиваемые под индивидуальные потребности пользователя — при этом встроенные ограничения не позволят вам переусердствовать и выгореть.
📌 Приложение работает локально на ПК. Сейчас ведется работа над сборкой пакета под Linux, а также изменение дизайна к Material Design виду.
⛓️💥 Ссылка на репозиторий
2️⃣ Mlut — инструмент для верстки в подходе Atomic CSS, с которым можно создавать стили любой сложности. Что-то похожее на Tailwind, но по некоторым параметрам превосходит все популярные аналоги.
Какие преимущества?🖱
📌 Нейминг коротких классов интуитивно понятен и унифицирован, построен на популярных свойствах CSS.
📌 Мощные возможности генератора сложных стилевых комбинаций, близкие по духу к самому языку CSS.
📌 Полная поддержка препроцессора, позволяющая комбинировать собственные правила CSS с утилитами.
📌 Поддерживает кастомизацию и создание собственных дополнений.
⛓️💥 Ссылка на репозиторий
3️⃣ Orbitalika — сайт для моделирования орбит и орбитальных движений в трех плоскостях, а также визуализации траекторий в 3D пространстве. Как это работает: пользователь вводит шесть Кеплеровских элементов орбиты, и система сама строит реалистичную траекторию движения небесного тела.
Интересные факты🖱
📌 Разработка была начата студентами МГТУ имени Н.Э. Баумана в рамках программы «Инженерный класс» для наглядного представления законов небесной механики и освоения основ космической навигации.
📌 Первая версия появилась в 2024 году и получила положительные отзывы учителей физики и астрономии.
📌 Сайт написан на Python с использованием современных библиотек и инструментов, обеспечивающих высокую производительность и точность расчетов.
⛓️💥 Ссылка на репозиторий
#GitVerse_Разработчикам
Смотри, какой репозиторий!
Время дайджеста! Мы продолжаем изучать крутые проекты, которые нашли среди заявок грантовой программы, и вдохновлять ими. Сегодня снова принесли вам целых три. Давайте смотреть
Какие фишки?
Какие преимущества?
Интересные факты
#GitVerse_Разработчикам
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👎4😱1
Знаете ли вы, как использовать tox для создания матрицы сред тестирования?
Сделаем минимальную структуру проекта:
Представим себе такой
И сделаем тест, который будет вести себя по-разному в разных версиях Питона:
Варианты запуска:
При запуске:
- В py311
- В py310 модуля
Так,
tox позволяет декларативно определить и запустить тесты в матрице изолированных виртуальных окружений. Он автоматизирует создание, установку зависимостей и запуск команд для каждой комбинации версий Питона или конфигураций линтеров, обеспечивает проверку совместимости с разных сторон.Сделаем минимальную структуру проекта:
./tox.ini
./app/__init__.py
./tests/test_version_diff.py
Представим себе такой
tox.ini:[tox]
envlist = py310, py311, flake8
[testenv]
deps =
pytest
pytest-cov
commands =
pytest --cov=app tests/
[testenv:flake8]
deps = flake8
commands = flake8 app tests/
И сделаем тест, который будет вести себя по-разному в разных версиях Питона:
def test_version_diff():
import tomllib # модуль есть только в Python 3.11
data = tomllib.loads("x = 123")
assert data["x"] == 123
Варианты запуска:
# Запуск всей матрицы
tox
# Запуск конкретной версии Python
tox -e py311
tox -e py310
При запуске:
- В py311
import tomllib работает – тест пройдет.- В py310 модуля
tomllib нет – так что ModuleNotFoundError и тест падает.Так,
tox помогает проверять, каждое окружение независимо от других и от основной системы.🔥4🤯3👍2
Приветствую!
Грязная игра (2025)
Любите динамичные фильмы про ограбления с крутыми поворотами сюжета? Тогда «Грязная игра» с Марком Уолбергом — именно то, что вам нужно!
Фильм рассказывает о группе профессиональных преступников, которые планируют дерзкое ограбление с большими ставками. Главный герой — опытный лидер команды, который сталкивается с предательством, опасностями и необходимостью принимать быстрые решения, чтобы выйти из игры победителем.
«Грязная игра» — это не просто экшен, а напряжённый триллер с элементами драмы, где каждая минута на счету. Отличные сцены ограблений, продуманная режиссура и харизма Марка Уолберга создают атмосферу настоящего криминального приключения.
Если вам по душе фильмы в духе «Одиннадцати друзей Оушена» или «Пленниц», но с более жёстким и современным подходом — обязательно посмотрите «Грязную игру».
Грязная игра (2025)
Любите динамичные фильмы про ограбления с крутыми поворотами сюжета? Тогда «Грязная игра» с Марком Уолбергом — именно то, что вам нужно!
Фильм рассказывает о группе профессиональных преступников, которые планируют дерзкое ограбление с большими ставками. Главный герой — опытный лидер команды, который сталкивается с предательством, опасностями и необходимостью принимать быстрые решения, чтобы выйти из игры победителем.
«Грязная игра» — это не просто экшен, а напряжённый триллер с элементами драмы, где каждая минута на счету. Отличные сцены ограблений, продуманная режиссура и харизма Марка Уолберга создают атмосферу настоящего криминального приключения.
Если вам по душе фильмы в духе «Одиннадцати друзей Оушена» или «Пленниц», но с более жёстким и современным подходом — обязательно посмотрите «Грязную игру».
🔥6❤2
Всем привет!
Сегодня, 6 декабря, отмечается шуточный праздник — День Лентяя.
Для нас это уже почти две недели, потому что мы немного затянули со статьями… но мы исправимся 🙂
Откладывайте свои IDE-шки, проекты и задачи. Работа не всегда важнее отдыха — так почему бы не отдохнуть именно в День Лентяя?
Сегодня, 6 декабря, отмечается шуточный праздник — День Лентяя.
Для нас это уже почти две недели, потому что мы немного затянули со статьями… но мы исправимся 🙂
Откладывайте свои IDE-шки, проекты и задачи. Работа не всегда важнее отдыха — так почему бы не отдохнуть именно в День Лентяя?
👏4🎉4❤3🔥1
aiogram 3.23.0 вышел!
Только что вышло обновление библиотеки для написания Telegram-ботов aiogram 3.23.0. Которое не привносит нового функционала взаимодействия с Telegram, а концентрируется на технической стороне.
Поддержка Python 3.14
Ключевым изменением стала полная поддержка Python 3.14. Обновлены зависимости и тесты для полной совместимости.
Python 3.14 вышел совсем недавно, в ноябре 2025 года, и как обычно бывает со свежими релизами языка, далеко не все ключевые библиотеки готовы к этому сразу. В aiogram 3.22.0 на Python 3.14 были проблемы с
Прекращение поддержки Python 3.9
Обратной стороной нововведений, сталол прекращение поддержки Python 3.9. Python 3.9 вышел в ноябре 2020 года, а в ноябре 2025 года, вместе с выходом Python 3.14 он официально прекратил свой жизненный цикл.
Таким образом, минимальная совместимая версия Python стала 3.10.
В процессе отказа от поддержки 3.9, был проведён рефакторинг которой базы, включая замену аннотации типов из пакета
Установка обновления и история изменений
Для установки обновления библиотеки достаточно выполнить команду:
Полный список изменений: https://docs.aiogram.dev/en/latest/changelog.html
#python_3_14 #aiogram #aiohttp #py314 #pydantic #python #telegram #telegram_бот #библиотека #новости
Только что вышло обновление библиотеки для написания Telegram-ботов aiogram 3.23.0. Которое не привносит нового функционала взаимодействия с Telegram, а концентрируется на технической стороне.
Поддержка Python 3.14
Ключевым изменением стала полная поддержка Python 3.14. Обновлены зависимости и тесты для полной совместимости.
Python 3.14 вышел совсем недавно, в ноябре 2025 года, и как обычно бывает со свежими релизами языка, далеко не все ключевые библиотеки готовы к этому сразу. В aiogram 3.22.0 на Python 3.14 были проблемы с
aiohttp и pydantic.Прекращение поддержки Python 3.9
Обратной стороной нововведений, сталол прекращение поддержки Python 3.9. Python 3.9 вышел в ноябре 2020 года, а в ноябре 2025 года, вместе с выходом Python 3.14 он официально прекратил свой жизненный цикл.
Таким образом, минимальная совместимая версия Python стала 3.10.
В процессе отказа от поддержки 3.9, был проведён рефакторинг которой базы, включая замену аннотации типов из пакета
typing (List, Dict) на современный формат аннотирования без лишних импортов (list, dict).Установка обновления и история изменений
Для установки обновления библиотеки достаточно выполнить команду:
pip install -U aiogram
Полный список изменений: https://docs.aiogram.dev/en/latest/changelog.html
#python_3_14 #aiogram #aiohttp #py314 #pydantic #python #telegram #telegram_бот #библиотека #новости
🔥5❤4⚡3
Привет, друзья! 👋
Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе:
📋 Новое на канале:
🔄 Понедельник, 01.12.2025 — Дайджест
🐍 Вторник, 02.12.2025 — Смотри, какой репозиторий!, Знаете ли вы, как использовать tox для создания матрицы сред тестирования?
🎬 Пятница, 05.12.2025 — Пятничный кинорелакс
🤖 Воскресенье, 07.12.2025 — aiogram 3.23.0 вышел!
🔗 Будьте ближе к нам:
🌐 Читайте полные статьи на сайте
💬 Присоединитесь к обсуждению в чате
Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀
#дайджест #код #python #полезное #код_на_салфетке
Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе:
📋 Новое на канале:
🔄 Понедельник, 01.12.2025 — Дайджест
🐍 Вторник, 02.12.2025 — Смотри, какой репозиторий!, Знаете ли вы, как использовать tox для создания матрицы сред тестирования?
🎬 Пятница, 05.12.2025 — Пятничный кинорелакс
🤖 Воскресенье, 07.12.2025 — aiogram 3.23.0 вышел!
🔗 Будьте ближе к нам:
🌐 Читайте полные статьи на сайте
💬 Присоединитесь к обсуждению в чате
Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀
#дайджест #код #python #полезное #код_на_салфетке
🔥4👍3⚡1
Знаете ли вы о TOCTOU-уязвимости и как атомарные операции помогают ее избежать?
TOCTOU (Time-of-Check to Time-of-Use) – тип уязвимости, возникающий из-за race condition между моментом проверки состояния объекта (например, существует ли файл) и моментом его использования.
В многопоточных или многопроцессных средах между проверкой и использованием другой поток может изменить объект, а это приводит к непредсказуемым результатам и проблемам с безопасностью.
Частый случай этой уязвимости – создание файла. Представим функцию, которая пытается создать файл, когда его не существует:
Оба потока прошли проверку
Атомарная операция – это неделимое действие, которое либо выполняется полностью, либо не выполняется вообще, что исключает вмешательство других потоков и устраняет уязвимость TOCTOU. Посмотрим как это поможет:
Флаг
Код на салфетке x Кусочки кода
TOCTOU (Time-of-Check to Time-of-Use) – тип уязвимости, возникающий из-за race condition между моментом проверки состояния объекта (например, существует ли файл) и моментом его использования.
В многопоточных или многопроцессных средах между проверкой и использованием другой поток может изменить объект, а это приводит к непредсказуемым результатам и проблемам с безопасностью.
Частый случай этой уязвимости – создание файла. Представим функцию, которая пытается создать файл, когда его не существует:
import os
import time
import threading
def insecure_create(filename, thread_id):
if not os.path.exists(filename):
time.sleep(0.01)
with open(filename, 'w') as f:
f.write(f"Данные от потока {thread_id}")
print(f"Поток {thread_id}: файл создан")
if os.path.exists("data.txt"):
os.remove("data.txt")
t1 = threading.Thread(target=insecure_create, args=("data.txt", 1))
t2 = threading.Thread(target=insecure_create, args=("data.txt", 2))
t1.start()
t2.start()
t1.join()
t2.join()
with open("data.txt", 'r') as f:
print(f"Файл содержит: {f.read()}")
# Поток 1: файл создан
# Поток 2: файл создан
# Файл содержит: Данные от потока 2
Оба потока прошли проверку
if not os.path.exists(), но в файле остались только данные от потока 2 – он перезаписал данные потока 1. Номер потока в выводе может отличаться из-за race condition.Атомарная операция – это неделимое действие, которое либо выполняется полностью, либо не выполняется вообще, что исключает вмешательство других потоков и устраняет уязвимость TOCTOU. Посмотрим как это поможет:
import os
import errno
def atomic_create(filename, thread_id):
try:
fd = os.open(filename, os.O_CREAT | os.O_EXCL | os.O_WRONLY)
with os.fdopen(fd, 'w') as f:
f.write(f"Данные от потока {thread_id}")
print(f"Поток {thread_id}: файл создан атомарно")
except OSError as e:
if e.errno == errno.EEXIST:
print(f"Поток {thread_id}: файл уже существует")
else:
raise
if os.path.exists("data.txt"):
os.remove("data.txt")
import threading
t1 = threading.Thread(target=atomic_create, args=("data.txt", 1))
t2 = threading.Thread(target=atomic_create, args=("data.txt", 2))
t1.start()
t2.start()
t1.join()
t2.join()
with open("data.txt", 'r') as f:
print(f"Файл содержит: {f.read()}")
# Поток 1: файл создан атомарно
# Поток 2: файл уже существует
# Файл содержит: Данные от потока 1
Флаг
O_EXCL в комбинации с O_CREAT гарантирует, что os.open() создаст файл только если его не существует, иначе выдаст ошибку EEXIST. Эта операция атомарна на уровне ядра ОС.Код на салфетке x Кусочки кода
🤯4🔥3👍1
Вайбкодинг с нейросетью 1: проверяю сборку Flutter-приложения в AppImage
Автор: Eugene Kaddo
Данная статья посвящена сборке Flutter‑приложения в AppImage с помощью нейросетей GigaChat и Perplexity. Статья будет участвовать в конкурсе «Сезон ИИ в разработке» на Habr, посвящённом теме вайбкода в разработке.
Читать статью на сайте
Читать статью на Хабр
Поддержать проект через YooMoney
Поддержать проект через Tribute в Telegram
Поддержать проект через наш Telegram-бот
#Kivy #Эксперименты_с_ИИ #AppImage #Flutter
Автор: Eugene Kaddo
Данная статья посвящена сборке Flutter‑приложения в AppImage с помощью нейросетей GigaChat и Perplexity. Статья будет участвовать в конкурсе «Сезон ИИ в разработке» на Habr, посвящённом теме вайбкода в разработке.
Читать статью на сайте
Читать статью на Хабр
Поддержать проект через YooMoney
Поддержать проект через Tribute в Telegram
Поддержать проект через наш Telegram-бот
#Kivy #Эксперименты_с_ИИ #AppImage #Flutter
🔥6⚡4
Приветствую!
«Орудия» (2025)
Если хочется чего‑то странного, мрачного и не совсем привычного для хоррора, «Орудия» — отличный вариант. Формально это мистический ужастик про пропажу детей и ведьму, но по ощущениям фильм больше похож на чёрную сказку и сатиру на взрослых, власть и то, как старые правила ломают новое поколение.
В маленьком городке исчезают семнадцать шестиклассников, и взрослые в панике пытаются найти виноватого, но постепенно становится ясно, что дело не только в «зле снаружи». В центре истории — тётушка Глэдис: хрупкая старушка, которая оказывается могущественной ведьмой и превращает людей в свои «орудия», управляя ими через чёрную магию, страх и чувство вины.
«Орудия» (2025)
Если хочется чего‑то странного, мрачного и не совсем привычного для хоррора, «Орудия» — отличный вариант. Формально это мистический ужастик про пропажу детей и ведьму, но по ощущениям фильм больше похож на чёрную сказку и сатиру на взрослых, власть и то, как старые правила ломают новое поколение.
В маленьком городке исчезают семнадцать шестиклассников, и взрослые в панике пытаются найти виноватого, но постепенно становится ясно, что дело не только в «зле снаружи». В центре истории — тётушка Глэдис: хрупкая старушка, которая оказывается могущественной ведьмой и превращает людей в свои «орудия», управляя ими через чёрную магию, страх и чувство вины.
🔥4❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Помните мобильный рынок 90-х (если не помните, то вам повезло)? Хаос из кабелей, несовместимых портов и боли. До недавнего времени индустрия ИИ выглядела так же. Хочешь подключить ChatGPT к Google Диску? Пиши один «костыль» (плагин). Хочешь Claude к базе данных? Пиши другой. Локальная LLM? Третий.
Это классическая проблема «N × M», которая тормозила всю отрасль. Но в ноябре 2024 года Anthropic выкатили Model Context Protocol (MCP). Эксперты называют его «портом USB-C для нейросетей».
Но не дайте простоте названия обмануть вас. Под капотом там не просто «труба для данных», а сложная архитектура брокеров, двусторонние диалоги и новые дыры в безопасности, от которых у вашего СБ ИТ дернется глаз.
Попробуем разобраться во всём. От нейминга функций до «Теневого ИИ».
В основе MCP лежит философия разделения ответственности, так скажем - строгий протокол.
Архитектура:
Три кита функциональности (и один секрет):
Если вы назовете инструмент
tool_01 с описанием gets data, модель будет галлюцинировать или игнорировать его.Вы обязаны называть инструмент семантически точно:
get_customer_churn_rate и в описании детально разжевывать: "Используй это, когда пользователь спрашивает про отток клиентов за квартал. Принимает дату в формате YYYY-MM-DD". В MCP описание инструмента - часть исполняемого кода. Ошиблись в слове и сломали логику агента.MCP - не улица с односторонним движением («ИИ, дай команду»). Протокол намного умнее.
Что же под «капотом»?
Это киллер-фича. Обычно человек просит ИИ что-то сделать. В MCP сервер может попросить ИИ: «Эй, я вижу тут сложный лог ошибки, сгенерируй-ка мне его анализ».
Сервер использует «мозг» подключенной модели для своих внутренних задач. И выглядит это уже как не просто подключение, а делегирование (sub-agents delegation).
Механизм, позволяющий серверу сказать: «Мне не хватает данных, спроси у пользователя уточнение».
Это вводит стандартизированный Human-in-the-loop. ИИ перестает быть черным ящиком, который молча творит дичь. Если данных для SQL-запроса не хватает, сервер через протокол заставляет ИИ задать вопрос вам.
Как они общаются физически?
- Stdio: Для локальных агентов. Быстро, безопасно, все внутри одного процесса.
- SSE (Server-Sent Events): Для удаленки. Позволяет серверу самому «пинать» ИИ в реальном времени: «Эй, данные на бирже изменились, пересчитай прогноз!».
Если смотреть на MCP глазами архитектора, это реализация классических паттернов проектирования, спасающая нас от хаоса.
MCP создает центральный реестр. Агенты находят инструменты через единый стандарт. Сложность падает до линейной O(N).
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8
Шутка от СБ ИТ: буква «S» в MCP означает Security. То есть её там нет. Внедрение протокола опережает безопасность.
Наши «грабли»:
Кошмар для службы безопасности. Любой разработчик может запустить локальный MCP-сервер на ноутбуке, дать ему доступ к локальным файлам/документам и подключить к внешнему ИИ.
Поскольку канал связи (Stdio/SSE) инициируется изнутри, корпоративный фаервол этого не видит. Данные улетают в «мозг» модели легально, мимо DLP-систем. Ну если только у вас не локальная корпоративная LLM.
Мы привыкли, что
npm install - риск. Но MCP-серверы пока вообще никак не подписываются.Вы качаете сервер
weather-mcp с GitHub, а он оказывается трояном. Через Prompt Injection он заставляет вашу модель (которой вы доверяете!) слить пароли из подключенной базы данных.Компании обязаны ставить не просто серверы, а Шлюзы MCP. Это прослойка-фильтр (AI Firewall), которая:
MCP сравнивают с USB-C. Хоть это и удачная аналогия, как будто физический разъем, но чтобы устройства «поняли» друг друга, нужны протоколы выше уровнем (как TCP/IP).
MCP - база «Клиент-Сервер». Но рядом растут конкуренты и надстройки:
Мы, так сказать, в самом начале пути стандартизации.
Забудьте про «просто программистов». Для MCP нужны немного иные роли:
MCP превращает ИИ из «умного чат-бота» в реального сотрудника с доступом к рубильникам. Выглядит, вроде, мощно, но требует железной дисциплины в архитектуре и паранойи в безопасности.
ЗЫ: небольшая библиотека всяких готовых MCP. За качество не ручаюсь
https://glama.ai/mcp/servers
Код на салфетке x Мозг в данных
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤3
Привет, друзья! 👋
Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе:
📋 Новое на канале:
🔄 Понедельник, 08.12.2025 — Дайджест
🐍 Вторник, 09.12.2025 — Знаете ли вы о TOCTOU-уязвимости и как атомарные операции помогают ее избежать?
⚙️ Четверг, 11.12.2025 — Вайбкодинг с нейросетью 1: проверяю сборку Flutter-приложения в AppImage
🎬 Пятница, 12.12.2025 — Пятничный кинорелакс
🤖 Воскресенье, 14.12.2025 — ЭРА «USB-C» ДЛЯ ИИ: ПОЛНЫЙ РАЗБОР MODEL CONTEXT PROTOCOL (MCP)
🎁 Небольшой анонс:
Совсем скоро на канале стартует новогодний розыгрыш 🎄
Готовьтесь, будет интересно — и не забудьте позвать друзей, им тоже может повезти 😉
🔗 Будьте ближе к нам:
🌐 Читайте полные статьи на сайте
💬 Присоединитесь к обсуждению в чате
Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀
#дайджест #код #python #полезное #код_на_салфетке
Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе:
📋 Новое на канале:
🔄 Понедельник, 08.12.2025 — Дайджест
🐍 Вторник, 09.12.2025 — Знаете ли вы о TOCTOU-уязвимости и как атомарные операции помогают ее избежать?
⚙️ Четверг, 11.12.2025 — Вайбкодинг с нейросетью 1: проверяю сборку Flutter-приложения в AppImage
🎬 Пятница, 12.12.2025 — Пятничный кинорелакс
🤖 Воскресенье, 14.12.2025 — ЭРА «USB-C» ДЛЯ ИИ: ПОЛНЫЙ РАЗБОР MODEL CONTEXT PROTOCOL (MCP)
🎁 Небольшой анонс:
Совсем скоро на канале стартует новогодний розыгрыш 🎄
Готовьтесь, будет интересно — и не забудьте позвать друзей, им тоже может повезти 😉
🔗 Будьте ближе к нам:
🌐 Читайте полные статьи на сайте
💬 Присоединитесь к обсуждению в чате
Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀
#дайджест #код #python #полезное #код_на_салфетке
🔥5⚡4