home.social

#asyncio — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #asyncio, aggregated by home.social.

  1. Learn how to use asyncio queues for efficient AI task orchestration, including pipeline design, workload optimization, and real-world examples with Redis and Python. Master asynchronous task management for scalable AI systems.

    task orchestration

    dasroot.net/posts/2026/02/usin

  2. Меня раздражает, как объясняют асинхронность

    Если что такое параллелизм более-менее все разработчики понимают, то объяснение асинхронности через аналогии с кассирами/поварами вредно, так как вводит в очень большое заблуждение. В данной статье я разберу эту проблему на примерах Python и Go и попробую дать свою правильную аналогию.

    habr.com/ru/articles/1033914/

    #Python #Go #Backend #Asyncio #multithreading #gorutines

  3. Меня раздражает, как объясняют асинхронность

    Если что такое параллелизм более-менее все разработчики понимают, то объяснение асинхронности через аналогии с кассирами/поварами вредно, так как вводит в очень большое заблуждение. В данной статье я разберу эту проблему на примерах Python и Go и попробую дать свою правильную аналогию.

    habr.com/ru/articles/1033914/

    #Python #Go #Backend #Asyncio #multithreading #gorutines

  4. Меня раздражает, как объясняют асинхронность

    Если что такое параллелизм более-менее все разработчики понимают, то объяснение асинхронности через аналогии с кассирами/поварами вредно, так как вводит в очень большое заблуждение. В данной статье я разберу эту проблему на примерах Python и Go и попробую дать свою правильную аналогию.

    habr.com/ru/articles/1033914/

    #Python #Go #Backend #Asyncio #multithreading #gorutines

  5. Меня раздражает, как объясняют асинхронность

    Если что такое параллелизм более-менее все разработчики понимают, то объяснение асинхронности через аналогии с кассирами/поварами вредно, так как вводит в очень большое заблуждение. В данной статье я разберу эту проблему на примерах Python и Go и попробую дать свою правильную аналогию.

    habr.com/ru/articles/1033914/

    #Python #Go #Backend #Asyncio #multithreading #gorutines

  6. Пишем свой SQL query builder на Python: DSL, кеширование в Redis и защита от инъекций

    Объектный построитель SQL-запросов без ORM и моделей. Позволяет писать сложные SQL-запросы в виде цепочек Python-методов (table[‘person’].filter(…).join(…).get()) и получать результат в виде списка словарей. Под капотом — параметризованные запросы для защиты от инъекций, продуманная система кеширования с инвалидацией по таблицам (in-memory и Redis), поддержка синхронного и асинхронного кода из коробки. Для тех случаев, когда ORM избыточна, а сырой SQL небезопасен.

    habr.com/ru/articles/1029968/

    #python #sql #orm #dsl #caching #asyncio #sqlинъекция #query_cache #django #redis

  7. Пишем свой SQL query builder на Python: DSL, кеширование в Redis и защита от инъекций

    Объектный построитель SQL-запросов без ORM и моделей. Позволяет писать сложные SQL-запросы в виде цепочек Python-методов (table[‘person’].filter(…).join(…).get()) и получать результат в виде списка словарей. Под капотом — параметризованные запросы для защиты от инъекций, продуманная система кеширования с инвалидацией по таблицам (in-memory и Redis), поддержка синхронного и асинхронного кода из коробки. Для тех случаев, когда ORM избыточна, а сырой SQL небезопасен.

    habr.com/ru/articles/1029968/

    #python #sql #orm #dsl #caching #asyncio #sqlинъекция #query_cache #django #redis

  8. Пишем свой SQL query builder на Python: DSL, кеширование в Redis и защита от инъекций

    Объектный построитель SQL-запросов без ORM и моделей. Позволяет писать сложные SQL-запросы в виде цепочек Python-методов (table[‘person’].filter(…).join(…).get()) и получать результат в виде списка словарей. Под капотом — параметризованные запросы для защиты от инъекций, продуманная система кеширования с инвалидацией по таблицам (in-memory и Redis), поддержка синхронного и асинхронного кода из коробки. Для тех случаев, когда ORM избыточна, а сырой SQL небезопасен.

    habr.com/ru/articles/1029968/

    #python #sql #orm #dsl #caching #asyncio #sqlинъекция #query_cache #django #redis

  9. Пишем свой SQL query builder на Python: DSL, кеширование в Redis и защита от инъекций

    Объектный построитель SQL-запросов без ORM и моделей. Позволяет писать сложные SQL-запросы в виде цепочек Python-методов (table[‘person’].filter(…).join(…).get()) и получать результат в виде списка словарей. Под капотом — параметризованные запросы для защиты от инъекций, продуманная система кеширования с инвалидацией по таблицам (in-memory и Redis), поддержка синхронного и асинхронного кода из коробки. Для тех случаев, когда ORM избыточна, а сырой SQL небезопасен.

    habr.com/ru/articles/1029968/

    #python #sql #orm #dsl #caching #asyncio #sqlинъекция #query_cache #django #redis

  10. Опыт разработки picows: самые быстрые вебсокеты для asyncio

    Всем привет! Меня зовут Тарас, я автор библиотеки picows — ультрабыстрых вебсокетов для asyncio . В этой статье я расскажу, почему вообще появилась ещё одна библиотека для вебсокетов, покажу результаты бенчмарков и заодно порассуждаю о производительности в asyncio. Предистория В далёком-предалёком 2021 году мне довелось поучаствовать в разработке алготрейдинг-платформы для криптовалютных бирж. Выбор языка пал на Python из-за разнообразия ML-библиотек, возможность быстро собирать прототипы и проверять идеи, отсутствия этапа компиляции и в целом наличия богатой экосистемы. Если какая-то идея взлетит, критичный участок всегда можно оптимизировать, хотя бы частично переписав его на C/C++/Cython.

    habr.com/ru/articles/1025286/

    #websockets #python #asyncio #optimization #client #server #picows #aiohttp #benchmark #low_latency

  11. Опыт разработки picows: самые быстрые вебсокеты для asyncio

    Всем привет! Меня зовут Тарас, я автор библиотеки picows — ультрабыстрых вебсокетов для asyncio . В этой статье я расскажу, почему вообще появилась ещё одна библиотека для вебсокетов, покажу результаты бенчмарков и заодно порассуждаю о производительности в asyncio. Предистория В далёком-предалёком 2021 году мне довелось поучаствовать в разработке алготрейдинг-платформы для криптовалютных бирж. Выбор языка пал на Python из-за разнообразия ML-библиотек, возможность быстро собирать прототипы и проверять идеи, отсутствия этапа компиляции и в целом наличия богатой экосистемы. Если какая-то идея взлетит, критичный участок всегда можно оптимизировать, хотя бы частично переписав его на C/C++/Cython.

    habr.com/ru/articles/1025286/

    #websockets #python #asyncio #optimization #client #server #picows #aiohttp #benchmark #low_latency

  12. Опыт разработки picows: самые быстрые вебсокеты для asyncio

    Всем привет! Меня зовут Тарас, я автор библиотеки picows — ультрабыстрых вебсокетов для asyncio . В этой статье я расскажу, почему вообще появилась ещё одна библиотека для вебсокетов, покажу результаты бенчмарков и заодно порассуждаю о производительности в asyncio. Предистория В далёком-предалёком 2021 году мне довелось поучаствовать в разработке алготрейдинг-платформы для криптовалютных бирж. Выбор языка пал на Python из-за разнообразия ML-библиотек, возможность быстро собирать прототипы и проверять идеи, отсутствия этапа компиляции и в целом наличия богатой экосистемы. Если какая-то идея взлетит, критичный участок всегда можно оптимизировать, хотя бы частично переписав его на C/C++/Cython.

    habr.com/ru/articles/1025286/

    #websockets #python #asyncio #optimization #client #server #picows #aiohttp #benchmark #low_latency

  13. Опыт разработки picows: самые быстрые вебсокеты для asyncio

    Всем привет! Меня зовут Тарас, я автор библиотеки picows — ультрабыстрых вебсокетов для asyncio . В этой статье я расскажу, почему вообще появилась ещё одна библиотека для вебсокетов, покажу результаты бенчмарков и заодно порассуждаю о производительности в asyncio. Предистория В далёком-предалёком 2021 году мне довелось поучаствовать в разработке алготрейдинг-платформы для криптовалютных бирж. Выбор языка пал на Python из-за разнообразия ML-библиотек, возможность быстро собирать прототипы и проверять идеи, отсутствия этапа компиляции и в целом наличия богатой экосистемы. Если какая-то идея взлетит, критичный участок всегда можно оптимизировать, хотя бы частично переписав его на C/C++/Cython.

    habr.com/ru/articles/1025286/

    #websockets #python #asyncio #optimization #client #server #picows #aiohttp #benchmark #low_latency

  14. I am mostly known for my work, but for years I have maintained for , a substandard.

    Over a month ago, I realized there isn't the an library for , the protocol.

    It sent me down the deepest rabbit hole of my life. Dozens and dozens of decades-old RFC standards, some predating the Internet.

    Today I emerge with a first draft and a call for HELP!

    github.com/codingjoe/VoIP

  15. I am mostly known for my #Django work, but for years I have maintained #SSDP for #Python, a #UPnP substandard.

    Over a month ago, I realized there isn't the an #AsyncIO library for #SIP, the #VoIP protocol.

    It sent me down the deepest rabbit hole of my life. Dozens and dozens of decades-old RFC standards, some predating the Internet.

    Today I emerge with a first draft and a call for HELP!

    github.com/codingjoe/VoIP

  16. I am mostly known for my #Django work, but for years I have maintained #SSDP for #Python, a #UPnP substandard.

    Over a month ago, I realized there isn't the an #AsyncIO library for #SIP, the #VoIP protocol.

    It sent me down the deepest rabbit hole of my life. Dozens and dozens of decades-old RFC standards, some predating the Internet.

    Today I emerge with a first draft and a call for HELP!

    github.com/codingjoe/VoIP

  17. I am mostly known for my #Django work, but for years I have maintained #SSDP for #Python, a #UPnP substandard.

    Over a month ago, I realized there isn't the an #AsyncIO library for #SIP, the #VoIP protocol.

    It sent me down the deepest rabbit hole of my life. Dozens and dozens of decades-old RFC standards, some predating the Internet.

    Today I emerge with a first draft and a call for HELP!

    github.com/codingjoe/VoIP

  18. Почему я написал Ёбифай: свой планировщик для фоновых задач на Python

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

    habr.com/ru/articles/1018646/

    #scheduler #cron #crontab #cronjob #background_job #background_jobs #asyncio

  19. Мы сделали лучший REST фреймворк для Django

    Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же core-разработчик фреймворка Litestar, пакета django-stubs и множества других пакетов для Django. Сегодня я расскажу, как мы сделали самый быстрый и самый семантически корректный фреймворк для создания апишек на Джанго. Поговорим про конкурентов, покажу очень крутые интеграции, поделюсь своей философией и правилами, которые использовались для создания фреймоврка, ну накину на вентилятор для интереса. Если хотите похоливарить в коментах на тему того, какой фреймворк самый лучший и удобный – залетайте! Обсудим.

    habr.com/ru/articles/1017036/

    #python #django #asyncio #fastapi #sse

  20. Мы сделали лучший REST фреймворк для Django

    Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же core-разработчик фреймворка Litestar, пакета django-stubs и множества других пакетов для Django. Сегодня я расскажу, как мы сделали самый быстрый и самый семантически корректный фреймворк для создания апишек на Джанго. Поговорим про конкурентов, покажу очень крутые интеграции, поделюсь своей философией и правилами, которые использовались для создания фреймоврка, ну накину на вентилятор для интереса. Если хотите похоливарить в коментах на тему того, какой фреймворк самый лучший и удобный – залетайте! Обсудим.

    habr.com/ru/articles/1017036/

    #python #django #asyncio #fastapi #sse

  21. Мы сделали лучший REST фреймворк для Django

    Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же core-разработчик фреймворка Litestar, пакета django-stubs и множества других пакетов для Django. Сегодня я расскажу, как мы сделали самый быстрый и самый семантически корректный фреймворк для создания апишек на Джанго. Поговорим про конкурентов, покажу очень крутые интеграции, поделюсь своей философией и правилами, которые использовались для создания фреймоврка, ну накину на вентилятор для интереса. Если хотите похоливарить в коментах на тему того, какой фреймворк самый лучший и удобный – залетайте! Обсудим.

    habr.com/ru/articles/1017036/

    #python #django #asyncio #fastapi #sse

  22. Мы сделали лучший REST фреймворк для Django

    Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же core-разработчик фреймворка Litestar, пакета django-stubs и множества других пакетов для Django. Сегодня я расскажу, как мы сделали самый быстрый и самый семантически корректный фреймворк для создания апишек на Джанго. Поговорим про конкурентов, покажу очень крутые интеграции, поделюсь своей философией и правилами, которые использовались для создания фреймоврка, ну накину на вентилятор для интереса. Если хотите похоливарить в коментах на тему того, какой фреймворк самый лучший и удобный – залетайте! Обсудим.

    habr.com/ru/articles/1017036/

    #python #django #asyncio #fastapi #sse

  23. Асинхронность в Python для senior interview: от asyncio до выбора правильной реализации под задачу

    Асинхронность в Python — одна из тех тем где на собеседовании начинают плыть. Почему await не делает код параллельным? Как на самом деле работает event loop? Когда asyncio — правильный выбор, а когда лучше использовать потоки или процессы? В этой статье разберём асинхронность с прицелом на senior Python интервью: не с точки зрения API, а с точки зрения того, как всё устроено под капотом и как об этом правильно рассуждать . Материал рассчитан на тех, кто хочет не просто отвечать по документации, а уверенно объяснять поведение системы и принимать инженерные решения. Подробнее

    habr.com/ru/articles/1011544/

    #Python #asyncio #асинхронность #nonblocking_io #cooperative_multitasking #backend #event_loop

  24. Асинхронность в Python для senior interview: от asyncio до выбора правильной реализации под задачу

    Асинхронность в Python — одна из тех тем где на собеседовании начинают плыть. Почему await не делает код параллельным? Как на самом деле работает event loop? Когда asyncio — правильный выбор, а когда лучше использовать потоки или процессы? В этой статье разберём асинхронность с прицелом на senior Python интервью: не с точки зрения API, а с точки зрения того, как всё устроено под капотом и как об этом правильно рассуждать . Материал рассчитан на тех, кто хочет не просто отвечать по документации, а уверенно объяснять поведение системы и принимать инженерные решения. Подробнее

    habr.com/ru/articles/1011544/

    #Python #asyncio #асинхронность #nonblocking_io #cooperative_multitasking #backend #event_loop

  25. Асинхронность в Python для senior interview: от asyncio до выбора правильной реализации под задачу

    Асинхронность в Python — одна из тех тем где на собеседовании начинают плыть. Почему await не делает код параллельным? Как на самом деле работает event loop? Когда asyncio — правильный выбор, а когда лучше использовать потоки или процессы? В этой статье разберём асинхронность с прицелом на senior Python интервью: не с точки зрения API, а с точки зрения того, как всё устроено под капотом и как об этом правильно рассуждать . Материал рассчитан на тех, кто хочет не просто отвечать по документации, а уверенно объяснять поведение системы и принимать инженерные решения. Подробнее

    habr.com/ru/articles/1011544/

    #Python #asyncio #асинхронность #nonblocking_io #cooperative_multitasking #backend #event_loop

  26. Асинхронность в Python для senior interview: от asyncio до выбора правильной реализации под задачу

    Асинхронность в Python — одна из тех тем где на собеседовании начинают плыть. Почему await не делает код параллельным? Как на самом деле работает event loop? Когда asyncio — правильный выбор, а когда лучше использовать потоки или процессы? В этой статье разберём асинхронность с прицелом на senior Python интервью: не с точки зрения API, а с точки зрения того, как всё устроено под капотом и как об этом правильно рассуждать . Материал рассчитан на тех, кто хочет не просто отвечать по документации, а уверенно объяснять поведение системы и принимать инженерные решения. Подробнее

    habr.com/ru/articles/1011544/

    #Python #asyncio #асинхронность #nonblocking_io #cooperative_multitasking #backend #event_loop

  27. github-monitor is now forgewatch!

    I rebranded my PR monitoring daemon. The old name locked it to a single platform, but the vision has always been broader than that. "forgewatch" better reflects what the app is really about: watching over your code forge, wherever it lives.

    Why the rename? Two reasons:

    1. It's more general. The architecture doesn't depend on GitHub specifically, and I want to grow it to support GitLab, Gitea, and other forges over time.
    2. It's more descriptive. "forgewatch" tells you exactly what it does -- it watches your forge for pull requests and keeps you notified via D-Bus and desktop notifications on Linux.

    The daemon is async Python, runs as a systemd user service, and comes with an optional system tray indicator. Give it a look if you're a Linux dev who juggles PRs across repos.

    github.com/dvoraj75/forgewatch
    pypi.org/project/forgewatch/

    #forgewatch #opensource #python #linux #devtools #foss #github #gitlab #gitea #asyncio #dbus #systemd

  28. github-monitor is now forgewatch!

    I rebranded my PR monitoring daemon. The old name locked it to a single platform, but the vision has always been broader than that. "forgewatch" better reflects what the app is really about: watching over your code forge, wherever it lives.

    Why the rename? Two reasons:

    1. It's more general. The architecture doesn't depend on GitHub specifically, and I want to grow it to support GitLab, Gitea, and other forges over time.
    2. It's more descriptive. "forgewatch" tells you exactly what it does -- it watches your forge for pull requests and keeps you notified via D-Bus and desktop notifications on Linux.

    The daemon is async Python, runs as a systemd user service, and comes with an optional system tray indicator. Give it a look if you're a Linux dev who juggles PRs across repos.

    github.com/dvoraj75/forgewatch
    pypi.org/project/forgewatch/

  29. Novo artigo no blog: asyncio na prática.

    async/await não torna seu código automaticamente mais rápido. Se a tarefa é CPU-bound, você só adiciona complexidade sem ganho nenhum. A diferença aparece mesmo no I/O — e é dramática.

    O artigo mostra os dois casos com exemplos reais, explica o event loop e quando vale (ou não) usar concorrência.

    🔗 riverfount.dev.br/posts/asynci

    Você já teve bug causado por uso errado de asyncio em produção?

    #python #asyncio #concorrência #performance

  30. Novo artigo no blog: asyncio na prática.

    async/await não torna seu código automaticamente mais rápido. Se a tarefa é CPU-bound, você só adiciona complexidade sem ganho nenhum. A diferença aparece mesmo no I/O — e é dramática.

    O artigo mostra os dois casos com exemplos reais, explica o event loop e quando vale (ou não) usar concorrência.

    🔗 riverfount.dev.br/posts/asynci

    Você já teve bug causado por uso errado de asyncio em produção?

    #python #asyncio #concorrência #performance

  31. Novo artigo no blog: asyncio na prática.

    async/await não torna seu código automaticamente mais rápido. Se a tarefa é CPU-bound, você só adiciona complexidade sem ganho nenhum. A diferença aparece mesmo no I/O — e é dramática.

    O artigo mostra os dois casos com exemplos reais, explica o event loop e quando vale (ou não) usar concorrência.

    🔗 riverfount.dev.br/posts/asynci

    Você já teve bug causado por uso errado de asyncio em produção?

    #python #asyncio #concorrência #performance

  32. Novo artigo no blog: asyncio na prática.

    async/await não torna seu código automaticamente mais rápido. Se a tarefa é CPU-bound, você só adiciona complexidade sem ganho nenhum. A diferença aparece mesmo no I/O — e é dramática.

    O artigo mostra os dois casos com exemplos reais, explica o event loop e quando vale (ou não) usar concorrência.

    🔗 riverfount.dev.br/posts/asynci

    Você já teve bug causado por uso errado de asyncio em produção?

    #python #asyncio #concorrência #performance

  33. Novo artigo no blog: asyncio na prática.

    async/await não torna seu código automaticamente mais rápido. Se a tarefa é CPU-bound, você só adiciona complexidade sem ganho nenhum. A diferença aparece mesmo no I/O — e é dramática.

    O artigo mostra os dois casos com exemplos reais, explica o event loop e quando vale (ou não) usar concorrência.

    🔗 riverfount.dev.br/posts/asynci

    Você já teve bug causado por uso errado de asyncio em produção?

    #python #asyncio #concorrência #performance

  34. The article promises an #exposé on Python's #asyncio and shared state woes but instead serves up a lukewarm brew of tech buzzwords and self-promotion. 😴💤 Spoiler alert: their "observable pattern that finally works" is as elusive as #Bigfoot. 🦄
    inngest.com/blog/no-lost-updat #Python #techbuzzwords #sharedstate #HackerNews #ngated

  35. Как я устал дебажить MAX API, отреверсил их вебхуки и отучил Cursor галлюцинировать

    Как я устал дебажить MAX API, отреверсил их вебхуки и отучил Cursor галлюцинировать Когда я писал своего первого более-менее серьезного бота под Max, случилась классика. Я и мой ИИ-ассистент (Cursor) пишем код, строго опираясь на официальную документацию Max API. Запускаю — падает. Сижу по 5-6 итераций, пытаюсь отдебажить базовый функционал, который под ту же Телегу пишется с закрытыми глазами. В какой-то момент меня это достало. Я понял, что проблема не во мне и не в галлюцинациях нейронки. Я просто включил логирование всех входящих POST-запросов и стал дампить реальные вебхуки, которые прилетают от серверов Max. Открыв логи, я понял, почему мы так долго буксовали: то, что написано в документации, и то, что прилетает по факту — это две большие разницы. А слепая привычка писать архитектуру под Telegram Bot API делает только хуже. Различия с официальной документацией Max API (Docs vs Реальность) Вскрываем реальные вебхуки Max API

    habr.com/ru/articles/1005282/

    #python #template #boilerplate #chatbot #aiohttp #asyncio #maxapi #maxmessenger #telegram #telegram_bots

  36. Как я устал дебажить MAX API, отреверсил их вебхуки и отучил Cursor галлюцинировать

    Как я устал дебажить MAX API, отреверсил их вебхуки и отучил Cursor галлюцинировать Когда я писал своего первого более-менее серьезного бота под Max, случилась классика. Я и мой ИИ-ассистент (Cursor) пишем код, строго опираясь на официальную документацию Max API. Запускаю — падает. Сижу по 5-6 итераций, пытаюсь отдебажить базовый функционал, который под ту же Телегу пишется с закрытыми глазами. В какой-то момент меня это достало. Я понял, что проблема не во мне и не в галлюцинациях нейронки. Я просто включил логирование всех входящих POST-запросов и стал дампить реальные вебхуки, которые прилетают от серверов Max. Открыв логи, я понял, почему мы так долго буксовали: то, что написано в документации, и то, что прилетает по факту — это две большие разницы. А слепая привычка писать архитектуру под Telegram Bot API делает только хуже. Различия с официальной документацией Max API (Docs vs Реальность) Вскрываем реальные вебхуки Max API

    habr.com/ru/articles/1005282/

    #python #template #boilerplate #chatbot #aiohttp #asyncio #maxapi #maxmessenger #telegram #telegram_bots

  37. Как я устал дебажить MAX API, отреверсил их вебхуки и отучил Cursor галлюцинировать

    Как я устал дебажить MAX API, отреверсил их вебхуки и отучил Cursor галлюцинировать Когда я писал своего первого более-менее серьезного бота под Max, случилась классика. Я и мой ИИ-ассистент (Cursor) пишем код, строго опираясь на официальную документацию Max API. Запускаю — падает. Сижу по 5-6 итераций, пытаюсь отдебажить базовый функционал, который под ту же Телегу пишется с закрытыми глазами. В какой-то момент меня это достало. Я понял, что проблема не во мне и не в галлюцинациях нейронки. Я просто включил логирование всех входящих POST-запросов и стал дампить реальные вебхуки, которые прилетают от серверов Max. Открыв логи, я понял, почему мы так долго буксовали: то, что написано в документации, и то, что прилетает по факту — это две большие разницы. А слепая привычка писать архитектуру под Telegram Bot API делает только хуже. Различия с официальной документацией Max API (Docs vs Реальность) Вскрываем реальные вебхуки Max API

    habr.com/ru/articles/1005282/

    #python #template #boilerplate #chatbot #aiohttp #asyncio #maxapi #maxmessenger #telegram #telegram_bots

  38. Как я устал дебажить MAX API, отреверсил их вебхуки и отучил Cursor галлюцинировать

    Как я устал дебажить MAX API, отреверсил их вебхуки и отучил Cursor галлюцинировать Когда я писал своего первого более-менее серьезного бота под Max, случилась классика. Я и мой ИИ-ассистент (Cursor) пишем код, строго опираясь на официальную документацию Max API. Запускаю — падает. Сижу по 5-6 итераций, пытаюсь отдебажить базовый функционал, который под ту же Телегу пишется с закрытыми глазами. В какой-то момент меня это достало. Я понял, что проблема не во мне и не в галлюцинациях нейронки. Я просто включил логирование всех входящих POST-запросов и стал дампить реальные вебхуки, которые прилетают от серверов Max. Открыв логи, я понял, почему мы так долго буксовали: то, что написано в документации, и то, что прилетает по факту — это две большие разницы. А слепая привычка писать архитектуру под Telegram Bot API делает только хуже. Различия с официальной документацией Max API (Docs vs Реальность) Вскрываем реальные вебхуки Max API

    habr.com/ru/articles/1005282/

    #python #template #boilerplate #chatbot #aiohttp #asyncio #maxapi #maxmessenger #telegram #telegram_bots

  39. Анатомия WebSocket: человечный разбор RFC 6455

    Как правило, работа с веб-сокетами сводится к паре строк: connect() и send() . Удобные абстракции библиотек превратили этот протокол в магическую трубу, по которой летают данные в обе стороны. Но магия заканчивается ровно в тот момент, когда соединение молча отваливается с кодом 1006 , балансировщик рвет коннект, а в логах появляются странные ошибки фрагментации. В этой статье мы спустимся с небес высокоуровневых фреймворков на уровень байтов и битовых масок. Мы пройдем полный путь WebSocket-соединения, опираясь на RFC 6455: от генерации ключа на стороне клиента до обмена закрывающими фреймами. Попутно разберем весь необходимый понятийный аппарат: что такое фреймы, какими они бывают, зачем их маскируют и фрагментируют и т.д. Цель не в том, чтобы научиться пользоваться конкретной библиотекой, а в том, чтобы понять, как протокол работает изнутри независимо от языка и реализации. Для иллюстраций по тексту статьи даны сниппеты на Python. Погружаемся

    habr.com/ru/articles/1004772/

    #websocket #вебсокет #asyncio #сети #база