Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Вышел ZCode - аналог Claude code
Вышел ZCode — десктопный аналог Claude Code от разработчиков GLM-5.2. Работает с API от Anthropic, поддерживает SSH-деплой на сервер, в том числе Linux.
Вместо пошаговых скриптов — система целеполагания Goal: закидываешь сложный промт, агент сам разбивает задачу и выполняет. Плюс управление через Telegram-бота.
Но главная фича — мультиагентность…
➡️ Читайте на сайте: https://aff.top/blog/vyshel-zcode-analog-claude-code
🧠 Ещё больше инсайтов → в канале AFF.top
Вышел ZCode — десктопный аналог Claude Code от разработчиков GLM-5.2. Работает с API от Anthropic, поддерживает SSH-деплой на сервер, в том числе Linux.
Вместо пошаговых скриптов — система целеполагания Goal: закидываешь сложный промт, агент сам разбивает задачу и выполняет. Плюс управление через Telegram-бота.
Но главная фича — мультиагентность…
➡️ Читайте на сайте: https://aff.top/blog/vyshel-zcode-analog-claude-code
🧠 Ещё больше инсайтов → в канале AFF.top
FastAPI ломается не на роутинге, а на границе входных данных и зависимостей
В проектах на FastAPI почти всегда всплывают одни и те же места:
— слишком тонкие Pydantic-схемы, где обязательные поля проверяются уже в бизнес-логике;
— зависимости, которые тянут БД, кэш и внешний API в один слой;
— асинхронные обработчики, внутри которых внезапно живёт блокирующий код.
Есть наблюдение которое стоит проверить: чем раньше запрос превращается в валидированную структуру, тем меньше ветвится код дальше. Для этого полезно держать отдельные схемы для входа, ответа и внутреннего контракта, а не переиспользовать один модельный класс везде. Так меньше магии при рефакторинге и проще ловить несовместимость между ручкой и сервисом.
Ещё одна частая ошибка — делать dependency injection “по привычке”, а не по границам ответственности. Если зависимость только достаёт пользователя, она не должна знать про скидки, очереди и бизнес-правила. Как только dependency начинает разрастаться, тесты становятся дорогими, а ручка — неочевидной.
И отдельно про async: если внутри endpoint’а есть тяжёлый sync-код, его лучше вынести в пул или в отдельный воркер. Иначе FastAPI выглядит асинхронным только на бумаге, а под нагрузкой упирается в блокировки.
Если держать схемы, зависимости и async-границы раздельно, FastAPI остаётся быстрым не только на бенчмарке, но и в сопровождении.
В проектах на FastAPI почти всегда всплывают одни и те же места:
— слишком тонкие Pydantic-схемы, где обязательные поля проверяются уже в бизнес-логике;
— зависимости, которые тянут БД, кэш и внешний API в один слой;
— асинхронные обработчики, внутри которых внезапно живёт блокирующий код.
Есть наблюдение которое стоит проверить: чем раньше запрос превращается в валидированную структуру, тем меньше ветвится код дальше. Для этого полезно держать отдельные схемы для входа, ответа и внутреннего контракта, а не переиспользовать один модельный класс везде. Так меньше магии при рефакторинге и проще ловить несовместимость между ручкой и сервисом.
Ещё одна частая ошибка — делать dependency injection “по привычке”, а не по границам ответственности. Если зависимость только достаёт пользователя, она не должна знать про скидки, очереди и бизнес-правила. Как только dependency начинает разрастаться, тесты становятся дорогими, а ручка — неочевидной.
И отдельно про async: если внутри endpoint’а есть тяжёлый sync-код, его лучше вынести в пул или в отдельный воркер. Иначе FastAPI выглядит асинхронным только на бумаге, а под нагрузкой упирается в блокировки.
Если держать схемы, зависимости и async-границы раздельно, FastAPI остаётся быстрым не только на бенчмарке, но и в сопровождении.
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Cloudeflare грозит Google блокировкой трафика
Cloudflare объявил: с 15 сентября 2026 года ИИ-краулеры будут заблокированы по умолчанию на всех сайтах с рекламой — включая Googlebot, Applebot и Bingbot.
Главная претензия — к Google: один и тот же бот индексирует страницы и собирает данные для обучения нейросетей, что даёт поисковику нечестное преимущество.
Но есть нюанс, который меняет всю к…
➡️ Читайте на сайте: https://aff.top/blog/cloudeflare-grozit-google-blokirovkoi-trafika
🧠 Ещё больше инсайтов → в канале AFF.top
Cloudflare объявил: с 15 сентября 2026 года ИИ-краулеры будут заблокированы по умолчанию на всех сайтах с рекламой — включая Googlebot, Applebot и Bingbot.
Главная претензия — к Google: один и тот же бот индексирует страницы и собирает данные для обучения нейросетей, что даёт поисковику нечестное преимущество.
Но есть нюанс, который меняет всю к…
➡️ Читайте на сайте: https://aff.top/blog/cloudeflare-grozit-google-blokirovkoi-trafika
🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Гайд: как заработать первые деньги на Pornhub
Pornhub — самый посещаемый адалт-сайт в мире, и на нём действительно можно зарабатывать. Но схема устроена иначе, чем кажется.
Автор залил ролики, набрал 16 000 просмотров — и получил 47 центов встроенной монетизации. Реальные деньги были в другом.
Есть нюансы с верификацией, голосом в роликах и законодательством РФ, которые ломают большинство с…
➡️ Читайте на сайте: https://aff.top/blog/gaid-kak-zarabotat-pervye-dengi-na-pornhub
🧠 Ещё больше инсайтов → в канале AFF.top
Pornhub — самый посещаемый адалт-сайт в мире, и на нём действительно можно зарабатывать. Но схема устроена иначе, чем кажется.
Автор залил ролики, набрал 16 000 просмотров — и получил 47 центов встроенной монетизации. Реальные деньги были в другом.
Есть нюансы с верификацией, голосом в роликах и законодательством РФ, которые ломают большинство с…
➡️ Читайте на сайте: https://aff.top/blog/gaid-kak-zarabotat-pervye-dengi-na-pornhub
🧠 Ещё больше инсайтов → в канале AFF.top
Автоматизация ломается не на коде, а на неучтённых входных данных и побочных эффектах
Если скрипт «работает у меня», это не признак готовности. В автоматизации обычно падают не алгоритмы, а края: пустые поля, дубликаты, таймауты, смена порядка колонок, неожиданный HTML, битые UTF-8 строки.
Перед запуском в проде проверь базу:
— есть ли идемпотентность, чтобы повторный запуск не плодил дубликаты;
— что делать при частичном успехе: откат, повтор, ручная очередь;
— где хранится состояние, чтобы процесс можно было продолжить после падения;
— какие ошибки считаются нормальными, а какие сразу стопят пайплайн.
Отдельно смотрите на логирование. Если в логах нет входных данных, идентификатора задачи и причины отказа, отладка превращается в угадайку. Для фоновых задач полезно писать не только traceback, но и короткий контекст: источник, шаг, размер пачки, время ответа.
Ещё один частый провал — скрытые зависимости: локальный путь на диске, переменная окружения без значения, внешний сервис с неявным лимитом, cron без блокировки параллельного запуска. Скрипт должен либо явно проверять такие вещи на старте, либо падать сразу и понятно.
Автоматизация живёт долго только там, где каждый шаг можно повторить, остановить и безопасно запустить снова.
Если скрипт «работает у меня», это не признак готовности. В автоматизации обычно падают не алгоритмы, а края: пустые поля, дубликаты, таймауты, смена порядка колонок, неожиданный HTML, битые UTF-8 строки.
Перед запуском в проде проверь базу:
— есть ли идемпотентность, чтобы повторный запуск не плодил дубликаты;
— что делать при частичном успехе: откат, повтор, ручная очередь;
— где хранится состояние, чтобы процесс можно было продолжить после падения;
— какие ошибки считаются нормальными, а какие сразу стопят пайплайн.
Отдельно смотрите на логирование. Если в логах нет входных данных, идентификатора задачи и причины отказа, отладка превращается в угадайку. Для фоновых задач полезно писать не только traceback, но и короткий контекст: источник, шаг, размер пачки, время ответа.
Ещё один частый провал — скрытые зависимости: локальный путь на диске, переменная окружения без значения, внешний сервис с неявным лимитом, cron без блокировки параллельного запуска. Скрипт должен либо явно проверять такие вещи на старте, либо падать сразу и понятно.
Автоматизация живёт долго только там, где каждый шаг можно повторить, остановить и безопасно запустить снова.
7 привычек Python-кода, которые экономят часы на поддержке проекта
Если Python-проект начал «стареть», чаще всего проблема не в архитектурной магии, а в мелочах: непонятных именах, скрытых сайд-эффектах и разъехавшихся слоях. За неделю в репах обычно всплывают одни и те же вещи.
— Имена функций и переменных должны объяснять намерение, а не хранить исторический след. `process_data` хуже, чем `build_invoice_rows`.
— Не смешивайте I/O, бизнес-логику и форматирование ответа в одном модуле. Когда всё в одном файле, тесты превращаются в боль.
— Любой код с сетью, БД или файловой системой держите на границе системы, а не внутри вычислений.
— Если функция длиннее экрана, сначала ищите лишнюю ответственность, а не «нехватку комментариев». Комментарий не спасает от хаоса.
Есть наблюдение которое стоит проверить: чем меньше скрытого состояния, тем дешевле отладка. Передавать данные явно почти всегда лучше, чем тащить их через глобалы, singleton’ы и неочевидные импорты. Это особенно заметно в скриптах, которые внезапно стали «мини-сервисами».
Ещё один маркер зрелого кода — предсказуемые ошибки. Вместо голого `except:` ловите конкретные исключения и возвращайте понятный контекст: какой файл, какой пользовательский ввод, какой шаг упал. Тогда лог перестаёт быть детективом.
Если хочется быстрый аудит, начните с трёх вопросов: можно ли это протестировать без БД, можно ли это прочитать за минуту, и можно ли назвать это точнее. Обычно после этого половина «техдолга» становится видна без линтера.
Если Python-проект начал «стареть», чаще всего проблема не в архитектурной магии, а в мелочах: непонятных именах, скрытых сайд-эффектах и разъехавшихся слоях. За неделю в репах обычно всплывают одни и те же вещи.
— Имена функций и переменных должны объяснять намерение, а не хранить исторический след. `process_data` хуже, чем `build_invoice_rows`.
— Не смешивайте I/O, бизнес-логику и форматирование ответа в одном модуле. Когда всё в одном файле, тесты превращаются в боль.
— Любой код с сетью, БД или файловой системой держите на границе системы, а не внутри вычислений.
— Если функция длиннее экрана, сначала ищите лишнюю ответственность, а не «нехватку комментариев». Комментарий не спасает от хаоса.
Есть наблюдение которое стоит проверить: чем меньше скрытого состояния, тем дешевле отладка. Передавать данные явно почти всегда лучше, чем тащить их через глобалы, singleton’ы и неочевидные импорты. Это особенно заметно в скриптах, которые внезапно стали «мини-сервисами».
Ещё один маркер зрелого кода — предсказуемые ошибки. Вместо голого `except:` ловите конкретные исключения и возвращайте понятный контекст: какой файл, какой пользовательский ввод, какой шаг упал. Тогда лог перестаёт быть детективом.
Если хочется быстрый аудит, начните с трёх вопросов: можно ли это протестировать без БД, можно ли это прочитать за минуту, и можно ли назвать это точнее. Обычно после этого половина «техдолга» становится видна без линтера.
Pydantic ломает проекты не валидацией, а неявными допущениями в моделях
Частая ошибка — считать модель «контейнером для полей». На деле Pydantic задаёт контракт между JSON, сервисом и БД. Если контракт размыт, потом всплывают сюрпризы: пустая строка вместо None, лишний ключ в payload, тихо склеившийся тип int/str.
Проверь базовые места:
— включай строгую валидацию там, где ошибка дороже автоприведения;
— разделяй входные и выходные схемы, не переиспользуй одну модель везде;
— явно помечай optional-поля, не надейся на «и так понятно»;
— для вложенных структур держи отдельные модели, а не dict на всё подряд.
Ещё один источник боли — дефолты и алиасы. Дефолт должен быть безопасным, а alias — стабильным контрактом, а не косметикой. Если поле приходит из внешнего API, лучше сразу описать его имя, формат и ограничения, чем потом ловить баги на сериализации.
Хорошее правило: модель должна объяснять, какие данные разрешены, а не маскировать чужие ошибки. Тогда Pydantic начинает экономить часы на отладке, а не добавлять их.
Частая ошибка — считать модель «контейнером для полей». На деле Pydantic задаёт контракт между JSON, сервисом и БД. Если контракт размыт, потом всплывают сюрпризы: пустая строка вместо None, лишний ключ в payload, тихо склеившийся тип int/str.
Проверь базовые места:
— включай строгую валидацию там, где ошибка дороже автоприведения;
— разделяй входные и выходные схемы, не переиспользуй одну модель везде;
— явно помечай optional-поля, не надейся на «и так понятно»;
— для вложенных структур держи отдельные модели, а не dict на всё подряд.
Ещё один источник боли — дефолты и алиасы. Дефолт должен быть безопасным, а alias — стабильным контрактом, а не косметикой. Если поле приходит из внешнего API, лучше сразу описать его имя, формат и ограничения, чем потом ловить баги на сериализации.
Хорошее правило: модель должна объяснять, какие данные разрешены, а не маскировать чужие ошибки. Тогда Pydantic начинает экономить часы на отладке, а не добавлять их.
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Сбер запустит свой криптокошелёк
Сбер готов запустить криптокошелёк — инфраструктура уже есть. Ждут только закона о регулировании крипты, который планируют принять к 1 сентября 2026 года.
Хранить и, судя по всему, обменивать крипту можно будет прямо в приложении — без сторонних обменников.
Но есть один нюанс, из-за которого обменники никуда не денутся. 🔍
➡️ Читайте на сайте: https://aff.top/blog/sber-zapustit-svoi-kriptokoshelek
🧠 Ещё больше инсайтов → в канале AFF.top
Сбер готов запустить криптокошелёк — инфраструктура уже есть. Ждут только закона о регулировании крипты, который планируют принять к 1 сентября 2026 года.
Хранить и, судя по всему, обменивать крипту можно будет прямо в приложении — без сторонних обменников.
Но есть один нюанс, из-за которого обменники никуда не денутся. 🔍
➡️ Читайте на сайте: https://aff.top/blog/sber-zapustit-svoi-kriptokoshelek
🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Индия потребовала от Telegram удалять пиратский контент
Индия потребовала от Telegram удалять пиратский контент — претензия в том, что платформа не ограничивает размер файлов, что позволяет свободно распространять фильмы.
Дуров ответил, что Telegram годами работает в Индии без какой-либо коммерческой выгоды для себя.
Почему давление началось именно сейчас — вопрос открытый. Возможный ответ — в блоге.
➡️ Читайте на сайте: https://aff.top/blog/indiia-potrebovala-ot-telegram-udaliat-piratskii-kontent
🧠 Ещё больше инсайтов → в канале AFF.top
Индия потребовала от Telegram удалять пиратский контент — претензия в том, что платформа не ограничивает размер файлов, что позволяет свободно распространять фильмы.
Дуров ответил, что Telegram годами работает в Индии без какой-либо коммерческой выгоды для себя.
Почему давление началось именно сейчас — вопрос открытый. Возможный ответ — в блоге.
➡️ Читайте на сайте: https://aff.top/blog/indiia-potrebovala-ot-telegram-udaliat-piratskii-kontent
🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Google ads меняет стратегию по конверсиям
Google меняет логику автоматических стратегий ставок: с 17 августа 2026 года кампании будут строже придерживаться указанного целевого CPA, а не давать лиды по минимально возможной цене.
Если сейчас твоя кампания даёт лиды по $5, а цель стоит $10 — после обновления алгоритм «поднимет» фактическую стоимость лида к целевой, зато отдаст больше трафик…
➡️ Читайте на сайте: https://aff.top/blog/google-ads-meniaet-strategiiu-po-konversiiam
🧠 Ещё больше инсайтов → в канале AFF.top
Google меняет логику автоматических стратегий ставок: с 17 августа 2026 года кампании будут строже придерживаться указанного целевого CPA, а не давать лиды по минимально возможной цене.
Если сейчас твоя кампания даёт лиды по $5, а цель стоит $10 — после обновления алгоритм «поднимет» фактическую стоимость лида к целевой, зато отдаст больше трафик…
➡️ Читайте на сайте: https://aff.top/blog/google-ads-meniaet-strategiiu-po-konversiiam
🧠 Ещё больше инсайтов → в канале AFF.top
Pydantic ломают не типы, а привычка валидировать «на глаз»
Если модель в Pydantic ведёт себя странно, обычно проблема не в библиотеке, а в схеме. Частые ошибки:
— поле объявили как str, а в payload прилетает int и где-то дальше это молча приводится;
— вложенные модели не описали явно, поэтому структура расползается по dict;
— optional-поля смешали с дефолтами и потом ловят неожиданные None.
Для API это особенно больно: один кривой вход превращается в баг, который сложно поймать в коде. Pydantic хорош тем, что делает контракт явным: входной payload либо проходит, либо падает сразу. Это экономит время и в Django-проектах, и в FastAPI-сервисах, и в скриптах, где данные приходят из CSV, очереди или внешнего API.
Есть три правила, которые почти всегда окупаются:
• описывать вложенность через отдельные модели;
• не прятать обязательность полей за слишком мягкими типами;
• отдельно валидировать бизнес-условия, а не пытаться запихнуть всё в одну строку аннотации.
Если нужно преобразование, делайте его явно: до модели или через валидаторы. Иначе схема начнёт «прощать» лишнее, а потом это вылезет в проде в самом неудобном месте.
Лучший Pydantic-код — это не самый умный, а самый предсказуемый.
Если модель в Pydantic ведёт себя странно, обычно проблема не в библиотеке, а в схеме. Частые ошибки:
— поле объявили как str, а в payload прилетает int и где-то дальше это молча приводится;
— вложенные модели не описали явно, поэтому структура расползается по dict;
— optional-поля смешали с дефолтами и потом ловят неожиданные None.
Для API это особенно больно: один кривой вход превращается в баг, который сложно поймать в коде. Pydantic хорош тем, что делает контракт явным: входной payload либо проходит, либо падает сразу. Это экономит время и в Django-проектах, и в FastAPI-сервисах, и в скриптах, где данные приходят из CSV, очереди или внешнего API.
Есть три правила, которые почти всегда окупаются:
• описывать вложенность через отдельные модели;
• не прятать обязательность полей за слишком мягкими типами;
• отдельно валидировать бизнес-условия, а не пытаться запихнуть всё в одну строку аннотации.
Если нужно преобразование, делайте его явно: до модели или через валидаторы. Иначе схема начнёт «прощать» лишнее, а потом это вылезет в проде в самом неудобном месте.
Лучший Pydantic-код — это не самый умный, а самый предсказуемый.
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
В Codex внедрят GPT-5.6 Ultra
OpenAI добавит в Codex эксклюзивную версию GPT-5.6 Sol Ultra — не ту, что выйдет в паблик, а отдельную, усиленную модель.
Два ключевых режима: расширенные рассуждения (модель думает дольше) и мульти-агентная работа с параллельными субагентами. Релиз ожидается 7–9 июля 2026.
Но есть один нюанс, который OpenAI пока не раскрывает 👀 Подробности — в …
➡️ Читайте на сайте: https://aff.top/blog/v-codex-vnedriat-gpt-5-6-ultra
🧠 Ещё больше инсайтов → в канале AFF.top
OpenAI добавит в Codex эксклюзивную версию GPT-5.6 Sol Ultra — не ту, что выйдет в паблик, а отдельную, усиленную модель.
Два ключевых режима: расширенные рассуждения (модель думает дольше) и мульти-агентная работа с параллельными субагентами. Релиз ожидается 7–9 июля 2026.
Но есть один нюанс, который OpenAI пока не раскрывает 👀 Подробности — в …
➡️ Читайте на сайте: https://aff.top/blog/v-codex-vnedriat-gpt-5-6-ultra
🧠 Ещё больше инсайтов → в канале AFF.top