Пишем быстрые API-автотесты без флаков, стендов и боли: изоляционный подход в CI/CD

Большинство API-тестов бесполезны: они флакают и тормозят CI. Показываю альтернативу — изоляционные тесты без стендов и боли.

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

Большинство API-тестов бесполезны: они флакают и тормозят CI. Показываю альтернативу — изоляционные тесты без стендов и боли.
Ввиду серьёзных ограничений, которые могут быть введены для Telegram, а также возможной блокировки сервиса, я решил сделать простой скрипт для сохранения информации из диалогов. В первую очередь — из Saved Messages (Избранное).
У меня хранится довольно много ссылок и полезной информации в избранных сообщениях, и терять доступ к этим данным не хочется. Поэтому возникла идея сделать небольшой инструмент для резервного копирования.

Делюсь методологией артефактно-ориентированной разработки с AI-ассистентами. Метод решает проблему ограничений контекста в LLM через двустороннюю синхронизацию проекта и сжатых артефактов. Эксперимент на реальном проекте (портфолио с нуля, 36 файлов) показал: 18× меньше файлов для загрузки, 30× ускорение подготовки контекста, 100% воспроизводимость.

Сайт на Тильде есть, трафик идет, но 20% заказов теряются в Telegram, а менеджеры работают вслепую. Покупать дорогую CRM или писать свой бэкенд?

Как я заменил Excel-сводные на Telegram-бота и ускорил контроль потерь на складе
Я автоматизировал рутинный процесс, который постоянно отъедал время: сбор выгрузок, построение сводных в Excel, перенос результатов в Google Sheets и ручной контроль повторений. Теперь всё делается одной кнопкой в Telegram: бот берёт последний файл из папки на Яндекс.Диске, обрабатывает данные и выкладывает готовую витрину в Google Sheets. Отдельно он показывает товар, который начнёт списываться в ближайшие 24 часа — это стало не просто ускорением, а новым инструментом управления потерями.

Всем привет. В ходе этого материала вы узнаете:
1. Как сделать простой рендер на c# в MonoGame
2. Что использовать, чтобы вызвать python из c#
3. Почему пункт 2 - это плохая идея
4. Как MonoGame игру сбилдить в web/html с помощью его форка KNI
Пристёгивайтесь, будет весело!

Модель не обязана отвечать всегда. На мультиклассовой табличке (letter) я сравнил 3 способа отказа для CatBoost: maxprob, entropy/margin и conformal APS. Результаты — в risk–coverage кривых и таблице «coverage → ошибка», чтобы быстро понять, какой метод лучше “отбрасывает” ошибки отказами.

Когда разработчики приходят в Python из Java или C++, у них часто случается культурный шок. Они безуспешно ищут модификаторы private или protected и задают логичный вопрос: «А как здесь вообще прятать данные?»
Добро пожаловать в мир, где язык вам доверяет, а Гвидо ван Россум говорит: «Мы здесь все взрослые люди». В новой статье разбираем архитектурный дзен Python:
🔹 Почему двойное подчеркивание (__) — это не аналог private (и как его взломать в одну строчку).
🔹 Почему классические геттеры и сеттеры в Python — это антипаттерн.
🔹 Как элегантно защитить данные с помощью @property, дескрипторов и slots.
Никаких заезженных метафор про пульты от телевизора. Только суровая (и красивая) реальность Python-way.
Привет, Хабр! Меня зовут… хотя какая разница. Важно другое: я программист, и у меня есть неприятная особенность — вместо того чтобы нормально отдыхать, я начинаю писать код. Обычно это заканчивается каким-нибудь полурабочим скриптом, который потом пылится на гитхабе. Но в этот раз получилось нечто большее. Возможно, даже полезное.
Всё началось с того, что клиент попросил создать 50 поддоменов для своего интернет-магазина на OpenCart. Ну, знаете, эти мультимагазины: spb.akarius.ru, msk.akarius.ru, nsk.akarius.ru и так далее. Вручную создавать каждый — это 50 раз заполнить одну и ту же форму, 50 раз привязать категории, товары, производителей, 50 раз скопировать SEO-урлы. При этом важно не ошибиться в путях к логотипам, не забыть про SSL и прочую ерунду. Я прикинул: если на один магазин тратить 15 минут, то на 50 — больше 12 часов чистой, монотонной, убивающей мозг работы.
И тут я понял: либо я сейчас напишу скрипт, либо уволюсь к чертям. Пальцы сами потянулись к клавиатуре. В итоге родилась программа, которую я скромно назвал DataGrip-style OpenCart Store Generator. Звучит пафосно, но на самом деле это просто генератор SQL-запросов, который берет данные из Excel и дампа существующего магазина, а на выходе дает готовый скрипт для вставки в базу.

«Вайбкодинг» ‑ это просто ролевая игра для парней, которые хотят чувствовать себя хакерами, не делая сложной работы, или это мощный инструмент, меняющий процессы даже ML‑инженера? Я думал, что это просто игрушка, пока не попробовал.
Привет, меня зовут Марк, я ML-инженер уже более 4-х лет и за несколько дней я навайбкодил приложение не зная ни языка ни технологий. А еще я навайбкодил кучу техдолга и получил неочевидные трансформации личности.
Я не буду учить тебя пользоваться нейросетями, но я разобрался, где вайб уместен, где запрещен и какие скрытые минусы тебя ожидают при длительной работе с AI-агентами.

Я бывший фронтенд-разработчик, который уже семь лет работает корпоративным юристом. Устал копировать одни и те же реквизиты в десятки типовых форм. Пробовал автоматизировать через Excel, мечтаю о React-приложении, но в итоге остановился на Python-скрипте, который штампует документы за секунды.
Рассказываю про путь от идеи до реализации и почему для небольших юридических команд до сих пор нет нормальных инструментов.

Введение
Данный проект, является логическим продолжением развития темы "Солнечный трекер на Arduino".
Используя базу солнечного трекера (его конструкцию) и web-камеру можно собрать роботизированную конструкцию, которая будет отслеживать в режиме реального времени назначенный маркер или группу маркеров в определённой области пространства.
Распознавать маркеры можно по разным критериям: выбранному цвету, текстуре, форме и т.д.
Я выбрал второй вариант. Делаю фото объекта web-камерой, с выбранным однородным цветом, которую буду использовать на роботе.
Подготовка ПО
Для корректной работы программы вам нужно:
1. Установить Python https://www.python.org/
2. Установить модули numpy, opencv и pyserial используя инструмент pip https://pypi.org/project/numpy/
https://pypi.org/project/opencv-python/
https://pypi.org/project/pyserial/
3. Установить Arduino ide
https://learnlange.blogspot.com/p/blog-page_28.html
Сборка робота
Система представляет стационарную установку с двумя степенями свободы, которые позволяют вращаться в пространстве цилиндрической формы. На верхней части системы закреплена USB web-камера (её можно заменить на smart камеру или ip камеру).
Для быстрого создания прототипа использую образовательный набор КЛИК: базовый и ресурсный
Поворотные механизмы реализованы с использованием DC моторов с понижающей передачей.

Мне 34, из них больше десяти лет я в коммерческой разработке. И примерно столько же я женат. Каждый год 7 марта я ловил себя на мысли, что стою в торговом центре с пустым взглядом, пытаясь угадать с подарком. В этом году я решил подойти к проблеме не как муж в панике, а как инженер.
Я прочитал книгу Гэри Чепмена «Пять языков любви», поймал пару инсайтов и за 5 вечеров написал сервис-переводчик для пар. Внутри: Flask, Vanilla JS (да, в 2025 году, и я объясню почему), DeepSeek API для генерации карточек в стиле «Love is…» и алгоритм матчинга, который понимает мою жену лучше, чем я за 10 лет брака. Под катом — история о том, как код помогает чинить баги в коммуникации.

Менеджер памяти CPython — одна из тех частей интерпретатора, о которых часто слышат, но редко понимают, как они устроены на самом деле.
Каждый объект Python — число, строка, список или словарь — должен где-то жить в памяти. Интерпретатор создаёт миллионы таких объектов и так же быстро их уничтожает. Чтобы это работало эффективно, CPython использует собственный аллокатор памяти и несколько уровней оптимизации.
В этой статье мы пошагово спроектируем менеджер памяти CPython, начиная с самой простой модели и постепенно приходя к архитектуре:
Arena → Pool → Block → Reference Counting → Cycle GC

В Python хватает инструментов для работы с временными рядами, но обычно приходится жонглировать тремя-четырьмя пакетами с разными API. Darts — библиотека, которая собирает всё в одном месте: статистические модели, градиентный бустинг, нейросети — и работает по знакомой схеме fit() / predict(). Сегодня разберём её подробно: что умеет, где удобна, как использовать в задачах.
По данным Stack Overflow Developer Survey, pandas — самая ищемая Python-библиотека. Разбираем четыре топовых вопроса: итерация по строкам, переименование колонок, удаление NaN и фильтрация. Для каждого — несколько способов с бенчмарком и рекомендацией «как надо делать в 2026».
Всем привет!
Традиционное вступление в стиле "плач Ярославны": GlobalPlatform, ISO 7816, JavaCard и прочие смежные стандарты - боль. Тонна материала написанная сухим языком так и навивает мысль, что авторы этого всего не инженеры, а юристы. Для примера скажу, что каждый стандарт ETSI начинается со смысловых определений глаголов "shall", "shall not", "should", "should not" и т.д. Нет, в канцелярском стиле ничего плохого нет. Плохо становится когда он плавно переходит поросячью латынь - и это одно из самых терпимых определений. Это же додуматься надо "размазать" требования к несчастной SMS-ске между пятью стандартами (ETSI 102-223/-225/-226 и 131-111/-115).
Ну вот ты преодолел пучины стандартов, затем засел за написание JavaCard-апплета, с чем тоже успешно справился, ну а дальше начинается квест "найди все тулзы". Инструментарий от Oracle для сборки .cap-файлов недоступен из России, благо есть один удобный в открытом доступе. Там же рядышком лежит тулза для установки/удаления апплетов (да и вообще управления жизненным циклом карты).
Итак, ты скомпилировал и загрузил апплет на карту. Классно! А дальше? А дальше поговорим в статье.

Heartbeat-мониторинг — единственный способ проверить cron-задачи, фоновые процессы и устройства за NAT. Рассказываю, как работает эта технология в PingZen, и почему она проще и надежнее self-hosted решений.

Если вы все еще считаете, что покупка «качественных» прокси или использование дефолтных настроек антидетект-браузера — это гарантия того, что ваш бот или скрипт не улетит в бан через 15 минут после запуска, у меня для вас плохие новости. Современные антифрод-системы (от Google и Meta до Cloudflare) уже давно перестали смотреть только на ваш IP-адрес.
Сегодня ваш «цифровой отпечаток» — это сложная нейросетевая модель. Они анализируют всё: от скорости отрисовки WebGL-контекста до того, как именно (с точностью до миллисекунд) ваш курсор перемещается по экрану.
В этой статье я не буду предлагать вам «волшебную таблетку». Я покажу, как выглядит современная лаборатория автоматизации «изнутри». Мы разберем, почему классические Selenium-фермы сегодня — это «красная тряпка» для систем защиты, и как через связку Python + Local API конкретного инструмента (в моем случае — AdsPower) выстроить систему, которую нейросети систем защиты будут принимать за реального, «офисного» пользователя.
Мы идем дальше, чем просто «создать профиль». Мы идем в сторону инженерной автоматизации.

Привет, Хабр! На фоне ажиотажа вокруг нейросетей все чаще встает вполне приземленный вопрос — сколько стоит содержать собственную LLM.
Современные ИИ-агенты уровня Claude, ChatGPT и DeepSeek уже давно перестали быть «чатами для развлечения». Это сложные системы, которые перед тем как выдать ответ, тратят десятки тысяч токенов на внутренние рассуждения, вызывают внешние функции, взаимодействуют с MCP-серверами и даже работают напрямую с интерфейсом ОС.
В продакшене — особенно при использовании нескольких агентов, собственных инструментов и фоновых задач — потребление токенов растет лавинообразно. При плотной нагрузке счет за API легко превращается в постоянную и плохо прогнозируемую статью расходов, от которой уже сложно отмахнуться.
В статье я покажу практичный компромисс: как развернуть собственную облачную LLM, которая укладывается в 16 ГБ видеопамяти, поддерживает инструменты и вызов функций, интегрируется с MCP-серверами и может использоваться как полноценный API-сервис для бэкенд-задач.