Crypto Orderbook или Биржевой стакан на криптобирже: взгляд изнутри, часть 1

Как устроены биржи? Откуда берется рыночная цена и чем лимитный ордер отличается от рыночного? Что такое стакан, спред, bid и offer? Разберемся на Python

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

Как устроены биржи? Откуда берется рыночная цена и чем лимитный ордер отличается от рыночного? Что такое стакан, спред, bid и offer? Разберемся на Python

В Python разработчик редко задумывается об освобождении памяти. Объекты создаются, используются и будто бы исчезают сами. Это создает ощущение, что памятью «занимается Python», и на этом можно не фокусироваться. На практике понимание того, как именно работает сборка мусора, помогает писать более стабильный, предсказуемый и эффективный код.

В момент выхода протокола MCP нас очень заинтересовали его возможности. Нам хотелось использовать этот протокол для того, чтобы внутренние пользователи могли обращаться к базе данных в свободной форме и получать данные в течение нескольких минут. MCP для этого выглядел очень хорошо: пользователь может сформировать запрос на удобном для него языке, а LLM поймет, что нужно сделать и сделает это.
На первый взгляд MCP в связке с LLM полностью закрывал данные проблемы, однако с ростом объема данных стало заметно, что LLM не удается обрабатывать их быстро и качественно, а написание SQL запросов для нее не всегда легкая задача (даже если примеры этих запросов у нее есть в промпте). В итоге мы получили потерю контроля над контекстом модели и непредсказуемый результат.
В этой части я расскажу про интеграцию с Open WebUI и какая архитектура модели позволила победить вышеуказанные проблемы. Следующие статьи расскажут о реализации MCP таким, каким он позволяет выполнять наши задачи (но не финальной версии). Эта статья может быть полезна всем, кто строит свои модели на основе Open WebUI или еще только выбирает фреймворк, на котором предстоит строить будущую модель

tl dr:
• итеративный constitution.md
• промтинг фич с помощью md-файлов
• модификация скриптов speckit
• ChatOps с уведомлениями в Telegram
• git-ветки для контроля урона
• вычитка документации вручную
• авто-кодинг с код-ревью финального mr.
На скрине случайно получившаяся сегодня гармоничная композиция из того, чем себя можно занять, пока агент в IDE коптит.
Привет, Хабр. Я Вадим, QA-инженер.
Все мы знаем, как работает найм. Твое резюме может быть идеальным, но если в нем нет нужного ключевого слова или оно не понравилось алгоритму первичного отсева (ATS) — ты в пролете.
Я решил взломать эту систему. Инженерно.
Я написал софт, который берет на себя весь цикл: мониторинг вакансий, анализ требований и генерацию сопроводительного письма, которое должно продать меня лучше, чем я сам.
Ниже — краткий лог разработки: как мы боролись с «машинным акцентом», почему нейросети врут про опыт и удалось ли мне обмануть рекрутеров.

Каждый разработчик рано или поздно упирается в парадокс: чтобы расти и развивать продукт, нужно показывать код, но показывать его страшно. Разбираемся, откуда берется этот барьер и как построить процесс публикации так, чтобы спать спокойно.
Современные WAF — это крепости, которые открывают ворота любому, кто знает секретное рукопожатие. Я переписал свой Red Team сканер с Python на Go и обнаружил, что топовые защиты сдаются и отдают бинарные данные, принимая бота за легитимный браузер. История о том, как uTLS и правильный ClientHello ломают логику "защитников". Код, бенчмарки и (конечно) тесты, проведенные строго на внутренних полигонах.

Если ваш API-клиент выглядит как башня декораторов — вы уже в зоне инженерной боли. Рассказываю, как я из этого выбрался.

Claude AI + Python + pandas = экономия 85% времени. Полный разбор архитектуры, кода и подводных камней.

Каждый раз, когда кто-то говорит про запуск LLM, возникает вопрос: "А где взять GPU?" Облачные GPU стоят денег, локальные видеокарты стоят ещё больших денег, а бесплатные GPU-тиры исчезают быстрее, чем появляются.
Но что если можно запустить полноценного AI-ассистента вообще без GPU? На обычном CPU. Бесплатно. С хорошей поддержкой русского языка. И развернуть его за 15-20 минут.
В этой статье рассказывается, как запустить Qwen2.5-3B на бесплатном CPU-тире Hugging Face Spaces, создать веб-интерфейс с помощью Gradio и получить работающего ассистента с поддержкой русского языка. Никаких глубоких знаний не требуется — только базовый Python и аккаунт на Hugging Face.
Если вы устали искать бесплатный GPU или просто хотите поэкспериментировать с LLM без лишних затрат — эта статья для вас.

Всем привет! Я Никита, Principal Engineer в стартапе AG2, мейнтейнер одноименного фреймворка для разработки AI агентов (AG2), автор фреймворка FastStream и просто опенсорс и AI энтузиаст.
И, как любой разработчик, я иногда запускаю пет-проекты.
Один из таких проектов, который я запустил после новогодних праздников - это AI ассистент по подбору подарков (с интегрированным вишлистом) Дарий
На его примере я хочу рассказать о протоколе AG-UI и на практике показать, как разработать ChatGPT-like агентное приложение за пару минут. Рассмотрим как бекенд (python), так и фронтенд (NextJS).
Важное уточнение: это реальный проект, с которым вы можете взаимодействовать. Это не разбор искусственных hello-world примеров.
После прочтения статьи у вас будет подробное руководство по разработке интерактивных chat-based приложений с элементами Generative UI.

Привет, Хабр!
Решил вот написать не продвижения ради, а для конструктивной обратной связи, чтобы продолжить пилить проект, т.к. сейчас выбираю, что же дальше и во что это может вырасти.
Сразу предупрежу: делал с ИИ, так что, если кого-то это триггерит, можно скипнуть статью.
Да, очередной бот, но тема мне близка и хотелось сделать что-то свое.
Что имеем as is - пет‑проект о том, как я с нуля собрал и выкатил в прод Telegram‑бота, который напоминает о фокусе дня, считает выполнения, дает ачивки, мягко мотивирует, работает по таймзонам и крутится на VDS под systemd.

На днях у Кирилла Мокевнина вышел пост про то, как он разлюбил динамическую типизацию. Мысль понятная: на больших кодовых базах отсутствие типов начинает дорого стоить.
Хочу дополнить аргументом, который в 2026 году уже стал прям must-have: статанализ и типы — это лучший self-check для AI-агента.
Современные агенты для разработки (Claude Code на Opus 4.5 и ChatGPT Codex 5.2 High) хорошо пишут код. Ошибок уровня «переменная не объявлена», «импорт забыл», «опечатка в имени метода» по сути уже почти нет.
Основные промахи чаще про другое:

Принято считать, что стеганография в аудио умирает, как только файл пережимают в MP3. Классический метод LSB (замена младших битов) действительно не выдерживает встречи с психоакустической моделью сжатия — данные просто стираются как «неслышимый мусор».
Но что, если подойти к задаче не как к замене битов, а как к радиосвязи? В этой статье мы напишем приложение ChameleonLab на Python (PyQt6 + NumPy). Мы откажемся от хрупких методов в пользу военной технологии DSSS (расширение спектра), применим криптографию AES-256 и научим наш сигнал выживать даже при перекодировании в 128kbps. Разберем математику корреляции, борьбу с рассинхронизацией ffmpeg и почему иногда шум — это хорошо.
Давайте честно. Все эти конференции про "Цифровые Двойники" и "AI на производстве" - это красиво только на слайдах в PowerPoint.
В реальности, когда ты приходишь к главному технологу и просишь данные для обучения модели (например, чтобы предсказывать прогар футеровки), происходит одно из двух:

Современное машиностроительное производство требует высокой точности планирования технологических процессов и оценки трудоёмкости операций. Эти оценки напрямую влияют на формирование себестоимости, планирование загрузки оборудования и назначение цен на продукцию и услуги.
В последние годы руководители IT-подразделений всё чаще рассматривают методы анализа данных и машинного обучения как универсальный инструмент, способный «автоматически» решить задачу расчёта норм времени. Иногда — с избыточным оптимизмом. Часто при этом забывается простая, но важная мысль: если существующий процесс расчёта неточен и данные в нём некачественные, то автоматизация такого процесса лишь ускоряет распространение ошибок. Особенно если применять вероятностные модели к накопленным за годы «грязным» данным.
Именно с такой реальностью нам (мне и коллегам) и пришлось столкнуться.

Я чувстовал себя клоуном подключая 5ю библиотеку для написания устойчивого к ошибкам API клиента. После этого я написал библиотеку объединяющую все воедино. Мотивация и история архитектурных решений.

Машинное обучение обычно ассоциируется с датасетами, метриками и бесконечными экспериментами в ноутбуках. Но в какой-то момент для нас ML перестал быть абстрактной технологией - и стал маршрутом. Причём буквально. Эта история о том, как модели, гипотезы и пара неочевидных решений привели нас не только к рабочему результату, но и на самый настоящий остров Парамушир (северные Курилы).
Попытка улететь на вертолёте из Петропавловска-Камчатского в Северо-Курильск сразу превратилась в маленькое приключение: местные хором пугали погодой и перспективами — «можете не прилететь, а если вдруг прилетите, то потом не улетите». Камчатка в этом смысле честна и беспощадна, особенно к планам. Но желание полетать на вертолёте здесь перевешивало все разумные доводы — уж слишком манила сама идея увидеть полуостров с воздуха, да ещё и недорого (у вертолетных экскурсии на Камчатке кусачие цены). На вопрос "как не играть в рулетку с погодой" - ответ очевиден, ML.
P.S. хоть Хабр и не про туризм, но вдруг кому интересно, на Парамушире есть и свои достопримечательности, такие как действующий вулкан Эбеко и аэродромное плато (бывшие японские ангары) поэтому не только ради дешевого полета на вертолете мы оказались в Северо-Курильске.

Представьте, что вы объясняете ребёнку, что такое «яблоко». Вы покажете картинку, дадите попробовать, расскажете, что оно круглое, сладкое, растёт на дереве, а теперь попробуйте объяснить это нейросети. Она не видит, не пробует, но она понимает только числа.
Как же тогда заставить машину понять, что «яблоко» ближе к «груше», чем к «трактору»? Ответ на самом деле кроется в элегантном приёме, который произвёл революцию в NLP- векторных представлениях слов, или эмбеддингах.
Проблема «слепого» кодирования: почему one-hot не работает
Самый наивный подход- это пронумеровать все слова в словаре и закодировать каждое вектором из нулей и одной единицы:
MCPHero - новая библиотека/проект для Python для использования MCP tools как native tools в ИИ библиотеках типа openai, которые не поддерживают MCP сами по себе.