Обновить
1024K+

Python *

Высокоуровневый язык программирования

492,62
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Логин через Telegram по-новому: разбираем OIDC-флоу oauth.telegram.org и собираем его на Python

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели11K

Telegram теперь полноценный OpenID-провайдер: oauth.telegram.org, JWKS, JWT, claims. Туториалы на GitHub при этом массово показывают старый виджет с HMAC от bot-token и /setdomain в BotFather. Я разобрался с новым флоу и собрал PoC на Python — рассказываю, как устроен обмен между фронтом, Telegram и бэком, чем Login library через telegram-login.js отличается от manual OIDC code flow с PKCE, что настраивать в BotFather (спойлер: не в чате, а в его mini-app), как протестировать локально через ngrok, и какая проверка id_token нужна вместо ручного HMAC.

Читать далее

AI Review не делает код лучше. И вот почему

Время на прочтение9 мин
Охват и читатели14K

Я делал AI Review как простой инженерный инструмент. Но реальный фейл оказался не в архитектуре и не в LLM — а в том, чего люди от него ждали.

Читать далее

Создаём клиентскую библиотеку ROS2. Генерация сообщений

Время на прочтение11 мин
Охват и читатели6.7K

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

Обмен данными играет в ROS2 ключевую роль. К счастью, практически все задачи, связанные с передачей и приемом сообщений берут на себя библиотеки rcl и rmw, нам «всего лишь» необходимо обеспечить возможность их создания и обработки.

Структура сообщения в ROS2 описывается в файле с расширением msg или idl. При сборке пакета выполняются следующие действия:

Читать далее

От XML-отчёта до 3D-обрезки в Revit: как я сделал сервис для управления BIM-коллизиями

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели13K

Navisworks хорошо находит BIM‑коллизии, а Revit — инструмент для исправления. Но между ними часто остаётся хаос: XML и HTML‑отчёты, Excel, переписки, ручной поиск ID и вопросы руководителей в стиле «ну как там с коллизиями?».

Я расскажу, как из этой боли вырос внутренний web‑сервис Clash Analytics: импорт XML‑отчётов Navisworks, аналитика по проектам, история коллизий, статусы, комментарии, назначение отделам и локальный Revit Bridge, который открывает проблемное место в модели за один клик.

Читать далее

Без рук: автоматизируем нагрузочное тестирование изменений в CI

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели12K

Нагрузочное тестирование — одна из самых избегаемых тем, когда речь заходит о контроле качества ПО. Корпорации, конечно, не обходят его стороной, но если говорить о продуктах меньшего масштаба, то нагрузочное тестирование часто пропускается. Команда (и, в целом, справедливо) полагает, что продукт справится с нагрузкой — на малых объёмах это обычно прокатывает. А потом внезапно наступает день, когда пользователей стало больше, а система не готова.

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

В CI/CD мы хотели простую штуку: на каждый PR запускать короткий перф‑смоук и получать ответ уровня «PASS / WARNING / DEGRADATION», а не 15 минут медитировать над CSV и тратить ценное время на анализ, который, вероятно, не пригодится в ближайшей перспективе.

Посмотрим, к чему мы в итоге пришли.

Три архитектурных решения для multi-tenant B2B SaaS, о которых я пожалел, что не узнал раньше

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели10K

Самая дорогая ошибка моего B2B SaaS имела ровно одну строчку

Самая дорогая ошибка моего B2B SaaS имела ровно одну строчку: TENANT_ID = “tenant-1” в config.py. Полтора дня поиска бага показали, почему multi-tenant архитектуру нужно закладывать с первого коммита. Разбор трёх архитектурных решений для multi-tenant SaaS в регулируемой отрасли — tenant_id helper, PostgreSQL EXCLUDE USING gist против double-booking, 152-ФЗ как код на FastAPI и SQLAlchemy.

Читать далее

Linux диванного гитариста. Часть 2. Кемпер для бедных

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели10K

Статья о том как я пришёл к DIY (самодельному по нашему) гитарному процессору. Пользуюсь им последние пару лет, с двумя разными прошивками. Расскажу как допиливал что не хватало, в том числе с помощью LLM и опишу свои впечатления и даже выложу пример звучания.

Читать далее

Полный гайд по dunder-методам в Python (от новичка до профи)

Уровень сложностиПростой
Время на прочтение23 мин
Охват и читатели9.8K

В Python всё — объект. Но как язык понимает, что делать при сложении двух классов через +, вызове len() или обращении к несуществующему атрибуту? Вся магия скрыта под капотом dunder-методов. Мы собрали полный гайд для разработчиков любого уровня: от правильной инициализации и перегрузки операторов до создания собственных дескрипторов, контекстных менеджеров и жесткой оптимизации памяти через slots. Никакой воды, только практика, живые примеры и то, что реально спрашивают на собеседованиях.

Читать далее

Ваш Telegram-бот на базе LLM уязвим. Я написал сканер, чтобы доказать это на популярном Open Source проекте

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели11K

TL;DR: Я создал BarkingDog — ИИ-сканер безопасности с открытым исходным кодом для Telegram-ботов и веб-приложений на базе LLM. Затем я натравил его на реального, широко используемого опенсорсного Telegram-бота.

Он написал работающий кейлоггер. Подтвердил, что отбеливатель лечит COVID-19. Выдал пошаговую инструкцию по взлому корпоративной сети с указанием конкретных хакерских утилит.

Затем я пропатчил системный промпт. Оценка: 97/100. Никакой смены модели. Никаких изменений в коде. Всего шесть строк текста.

Читать далее

Kaiten → коробочный Bitrix24: как мы переносили не задачи, а память команды

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели9.4K

На первый взгляд миграция из Kaiten в Bitrix24 выглядит как обычная интеграционная задача: прочитать данные из одного REST API и записать в другой REST API.

Но это впечатление быстро проходит, когда начинаешь переносить не демо-доску, а живую проектную систему.

В Kaiten уже накоплены пользователи, пространства, карточки, комментарии, файлы, ссылки внутри описаний, пользовательские поля, стадии, архивные задачи, связи между карточками и исторический контекст работы команды. Если перенести только названия карточек, формально миграция состоится. Но для бизнеса это будет потеря памяти.

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

В этой статье расскажу, как мы построили мигратор на Python, где помог асинхронный подход, почему маппинг ID оказался центральной частью архитектуры, какие ограничения обнаружились в коробочном Bitrix24 и почему часть задач пришлось решать не только через REST API, но и через отдельные серверные скрипты.

Репозиторий с кодом: https://github.com/vlikhobabin/kaiten-to-bitrix

Как перенести память команды за выходные

Telegram Bot API 10.0: Взамодействие ботов и бесплатные ассистенты

Время на прочтение5 мин
Охват и читатели13K

Всем привет!

Не знаю, как вы, а я всегда жду новых обновлений Bot API от Telegram. Мне любопытно, что же такого нестандартного нам подкинут в этот раз. Иногда они радуют, как в случае с недавним добавлением цветных кнопок, а иногда откровенно расстраивают, когда весь апдейт сосредоточен на мишуре вроде подарков. Однако обновление, которое выкатили разработчики на этот раз, оказалось поистине неожиданным.

Вчера был представлен релиз Bot API 10.0, который вносит, я бы сказал, серьёзнейшие изменения в саму механику работы ботов и их взаимодействие между собой. Давайте разберём это обновление подробнее.

Если вам интересны подобные материалы и разработка в целом, подписывайтесь на Telegram-канал «Код на салфетке».

Читать далее

Резервный канал связи для робота через ВК: учебный пример для полигона

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели12K

Представьте ситуацию: у вас есть робот на колёсах, небольшой дрон или просто симулятор телеметрии на учебном стенде. Wi-Fi поблизости нет, радиоканал нестабилен, а из связи — только SIM-карта с минимальным интернетом. Возникает логичный вопрос: как передавать координаты или телеметрию без SMS, звонков и специализированного оборудования?

Один из самых неожиданных вариантов — использовать обычные сообщения во ВКонтакте.

Звучит странно, но как учебный эксперимент это работает удивительно неплохо. В этой статье разберём идею резервного канала связи для робототехнического полигона, где микроконтроллер отправляет координаты через сообщения ВК, а наземная станция принимает и расшифровывает их. Речь не о «секретной связи», а о демонстрации принципов IoT и телеметрии в условиях ограниченной инфраструктуры.

Читать далее

Вайбкодинг vs Программист. Почему не стоит вайбкодить, если вы ничего не понимаете в программировании

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели21K

Многим из нас нужны различные ИТ продукты, и сейчас, во времена ИИ бума и вайбкодинга, многие уверены, что запросто могут создать необходимый им софт с помощью ИИ и вайбкодинга, не разбираясь даже в основах программирования. В этой статье я вам подробно расскажу и покажу, почему это не так, и для многих задач вам все же придется нанять программиста.

Недавно я наткнулась на такой интересный сервис как Lovable. Это нейросеть, предназначенная специально для написания полноценных проектов по промптам. Я решила ее протестировать, и да, действительно она работает хорошо и для мини-проектов это отличный вариант. Но вот если ваш проект уже хоть немного не укладывается в слово «мини», этого будет недостаточно.Вот как я проверила Lovable: я написала ему простой промпт «создай мини блог на FastAPI с авторизацией» (FastAPI - фреймворк для веб разработки на Python).

Читать далее

Ближайшие события

Cобрать агента для XAI и никогда больше не быть онлайн

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели9.9K

Привет, друзья! Я, похоже, наконец пережила кризис пришествия агентов в нашу жизнь. Мне всегда безумно нравился процесс решения задач — этакий личный, удивительный мир, даже когда ты уже знаешь правило Лопиталя/Modus ponens/выберите то, которое заставило вас смеяться больше всего при изучении.

А теперь, чтобы не выпасть из жизни, задачи просто приходится решать с кем-то. И этот кто-то LLM-Agent.

По жизни я — XAI Researcher, так что эта статья, среди прочих, будет практическим туториалам для решения задачи "собрать агента для интепретируемости ML моделей и больше никогда не смотреть в экран, думая о коэффициентах логистической регрессии".

Или всё-таки подумать придётся?
Весь код туториала лежит здесь: https://github.com/SadSabrina/XAI-open_materials/tree/main/naive_agent_and_xai

Читать далее

Streamlit для внутренних GUI: быстрый и гибкий low-code инструмент

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели9.5K

В эпоху вайбкодинга удивить кого‑то базовым веб‑интерфейсом сложно. Но сделать его понятным и простым в поддержке — другой вопрос. Если вы хотите обернуть свои скрипты\автоматизацию в красивую обертку, а также сделать это быстро и просто — я нашел для вас классную библиотеку на python.

Цель статьи — поделиться классным инструментом и замотивировать вас к созданию нового. Поехали!

Читать далее

Модуль collections в Python: ваш чит-код для решения алгоритмических задач

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели9.8K

Пишете list.pop(0) и удивляетесь, почему решение на LeetCode отваливается по Time Limit? Пора перестать изобретать велосипед.

Модуль collections — это легальный чит-код, который уже встроен в Python. В статье разбираем три главных инструмента (deque, Counter, defaultdict), которые покроют 90% ваших потребностей в алгоритмических задачах, избавят от лишних циклов и покажут интервьюерам, что вы действительно знаете стандартную библиотеку.

Читать далее

Как устроен словарь в CPython: compact dict, key sharing и что с ним делает free-threading

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели11K

У dict в Python слишком простая внешность: положили ключ, достали значение, пошли дальше. Но за этим стоит один из самых вылизанных участков CPython — с компактным хранением, сохранением порядка вставки, общими ключами для экземпляров классов, оптимизациями доступа к атрибутам и новыми компромиссами из-за free-threading.

В статье разберём, почему обычный словарь давно перестал быть «просто хеш-таблицей», как его устройство влияет на память и скорость кода, и какие привычки Python-разработчика могут незаметно ломать быстрый путь интерпретатора.

Разобрать dict

Вредоносный PyTorch Lightning сливал пароли через скрытый JavaScript

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели14K

30 апреля на PyPI обнаружили новую версию PyTorch Lightning, которая при импорте скачивала Bun и запускала 11,4 МБ опасного JavaScript-вора. Цель — браузеры, облачные API, GitHub-токены. Всего одна строчка импорта: import lightning — и все ваши API-ключи и данные будут скомпрометированы! Полный разбор инцидента внутри.

Разобрать инцидент

Обновления функциональности GigaIDE за апрель 2026

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели8.9K

Как и в предыдущие месяцы, по итогам апреля мы решили рассказать про то, как изменилась GigaIDE за прошедший месяц. Ниже краткий обзор обновлений PRO-функциональности GigaIDE, который можно найти на нашем маркетплейсе.

Читать далее

Cпециальное предложение для разработчиков нейросетей:

Уровень сложностиПростой
Время на прочтение1 мин
Охват и читатели7.6K

ПО для ПК дорого уже потому, что нужен ПК, да еще и с такой же дорогой видеокартой(ами). ПК проигрывает и в надежности, и в обслуживании, в тысячи раз проигрывает в работе без электропитания.

Спецлаб предоставляет разработчикам Non-PC-based устройство по цене оборудования с возможностью имплантации собственных нейронных сетей – поддерживается семейство ONNX.

FPGA продвинутого типа является универсальным устройством для большого круга задач. В нем есть место и распознаванию объектов, и контролю физических величин, и управлению устройствами, и промтовой логике, и архивам хранения, и аппаратным кодерам с декодерами в рамках разрешения 8К, и всем компьютерным интерфейсам.

В отличие от других, видеоблейзер имеет климатику с уровнем защищенности IP66, что делает его применимым в сложных погодных условиях.

Получить предложение...