TGViewer
Channel Public Channel
About Python [ru]

About Python [ru]

@python_tesst

Пишем на Python, создаём нейросети и ИИ-агентов.
Алгоритмы, задачи и вайбкодинг.

Личный блог автора - @just_genych
По вопросам рекламы или разработки: @g_abashkin
Subscribers
6.45K
Photos
470
Videos
13
Links
2.1K

Showing posts older than #2912 · Back to latest

Older Posts 20 shown
Post #2910 671
🤣 Промптил тренер. А это продакт, который присвоил все заслуги себе)

✖️ xCode Journal
Post #2908 781
😎 Anthropic выпустила официальный гайд по работе с новенькой Claude Opus 5

Главный совет — перестаньте микроменеджить модель. Opus 5 лучше работает, если просто дать ей полное ТЗ и не просить лишний раз перепроверять себя.

Ещё один нюанс: если хотите короткие ответы, теперь это нужно писать явно, так как по умолчанию модель стала гораздо многословнее.

✖️ xCode Journal
Post #2906 676
🤯 Автор «Чистого кода» больше не читает код, написанный ИИ-агентами

73-летний Дядя Боб признался, что теперь вообще не проверяет код. Вместо этого он обкладывает агентов юнит-тестами, QA, метриками качества и жёсткими ограничениями. И если вайбкод прошёл всю эту систему проверок, то и читать его необязательно.

«Это единственный способ, которым я могу воспользоваться их продуктивностью.»


✖️ xCode Journal
  • 👍 2
Post #2904 557
🦊 Camoufox — модифицированный Firefox, заточенный под автоматизацию, парсинг и ИИ-агентов, которые не боятся антибот-систем. Заменяет обычные Playwright/Selenium там, где сайты банят скрипты по цифровому отпечатку.

Фичи: маскирует автоматизацию внутри Firefox, подменяет отпечаток устройства, настраивает WebGL, экран, локаль, таймзону и гео. Совместим с кодом Playwright. Подходит для сбора открытых данных, мониторинга цен, парсинга каталогов, SEO-аналитики, браузерных агентов и тестирования собственных антибот-систем.

Установка: pip install -U "camoufox[geoip]" и python -m camoufox fetch. Пример:
from camoufox.sync_api import Camoufox
with Camoufox(fingerprint_preset=True) as browser:
page = browser.new_page()
page.goto("https://example.com", wait_until="domcontentloaded")
title = page.locator("h1").first.text_content()
print(title)


GitHub/Инструкция
#python #soft #github

👉 About Python
  • 🔥 1
Post #2903 456
🛡 Anthropic запустили официальный плагин для поиска уязвимостей

Можно отправить Claude Security проверить изменения перед коммитом или просканировать всю репу.

Он найдет дыры и предложит, что можно и нужно исправить

✖️ xCode Journal
Post #2901 491
OpenFb: зрение + контроллеры = жизнь боль стала проще

В июле подвезли свежую версию OpenFB — опенсорсной тулы, которая умеет запускать IEC 61499 и писать под эту тему на Python. Задача у неё простая: тащить компьютерное зрение и ML-алгоритмы прямо в АСУ ТП.

Авторы накидали пример — как воткнуть базовые CV-штуки в систему управления.

Ткни сюда

👉 About Python
Post #2900 474
Захостил fluxcast.dev и раздаю поддомены за бесплатно через PR в GitHub

Не так давно прикупил fluxcast.dev. Основной домен просто так простаивать не годится, так что родил свой реестр халявных поддоменов на Python. Расписываю, на какие грабли наступил с DNS, Cloudflare и Git.

Тык сюда

👉 About Python
  • 👍 2
Post #2899 474
🥲 Зарплаты айтишников растут медленнее инфляции

Это показало новое исследование на 45+ тысяч зарплат специалистов. Изучаем главное, чтобы быть готовыми к рынку:
- Медианная зарплата в IT в первой половине 2026 года составила 191 000 ₽ — это всего на 4% больше, чем полгода назад. При этом прогнозируемая годовая инфляция — 4,5–5,5%.

- Самый щедрый по офферам город, разумеется, Москва. Там медиана по зп — 235 тысяч, в регионах же всего 160.

- Топ-5 самых высокооплачиваемых специальностей в IT: на первом месте — разработчики, дальше идут менеджеры, администраторы, специалисты по информационной безопасности и аналитики.

- Самые высокие зарплаты среди языков при этом у Objective-C — этим гигачадам предлагают 400 000 ₽. Следом идут Elixir (348к), Swift и Golang с 326 и 325 тысячами рублей.


✖️ xCode Journal
Post #2897 477
🔔 Выпуск #744: CPython ABI, CLAUDE.md, шпаргалка по itertools и прочее (21.07.2026)

Чё там по Python 3.15
• Замутили стабильное ABI под названием abi3t — разработчикам на заметку.
• Выкатили Python 3.15.0 Beta 4.
• Приняли PEP 838 (пихает python-version в pyvenv.cfg) и PEP 840 (разрешение имён в пространствах имён классов).

Статьи и гайды
• Как наваять CLAUDE.md для Claude Code — с примерами под Python на глобальном, проектном и локальном уровнях.
• Шпаргалка по itertools с визуальными схемами.
• Гайд по Git для дата-специалистов: ветки для экспериментов, откат косяков, разбор merge vs rebase.
• Мысль: не шарить кодовую базу в больших проектах — абсолютно нормально.
• Реализация push-уведомлений для Django через сервис-воркер и фоновую задачу Huey.
• Разбор 12 000+ JPEG-снимков с миссии Artemis II с пошаговыми инструкциями.
• django-orjson — ускоряем JSON в Django с помощью Rust.
• Как заменить длинные if-else цепочки на словари с указателями на функции.
• Разбираемся с миксинами в Python.
• Делаем презентации прямо в терминале через инструмент Spiel.

Проекты и код
• kademlia-dynamic: распределённая хеш-таблица Kademlia.
• userharbor: управление юзерами без привязки к фреймворку.
• balance: работа со смещёнными выборками данных.
• fstache: быстрый типизированный рендерер Mustache.
• bounty-check: проверка, не забрали ли ещё баунти-тикет на GitHub.

Ивенты
• 22 июля — Q&A Real Python Office Hours (онлайн).
• 24–26 июля — PyData PyCon Armenia 2026.
• 25 июля — PyDelhi User Group Meetup.
• 28 июля — Python Sheffield.
• 29 июля — Python Southwest Florida (PySWFL).

🔗 Все ссылки — в оригинальном выпуске.

👉 About Python
Post #2895 506
DE. Как файл путешествует по слоям

Изначально в orders.csv было 11 записей. До BI-витрины добралось 7, а сумма 4720.30 после всех бизнес-правил превратилась в 2200.30 выручки. Четыре строки не потерялись — каждая улетела в rejects с четкой причиной.

На этом конкретном кейсе покажут полный маршрут данных через RAW, STG, CORE и MARTS. Разложат по полочкам, где ломаются строки и суммы, как не облажаться при повторной загрузке файла и какие проверки спасут твой дашборд от фейла. Внутри: MinIO, Postgres и Airflow.

Читать далее

👉 About Python
  • 👍 1
Post #2893 546
micro F1 = 0.9358 на 15 классах — звучит как победа, да?

Ну да, обучил multi-label классификатор для модерации Discord-сообщества, выкатил метрику — и можно смело закрывать задачу, похлопав себя по плечу.

Но стоит копнуть глубже и глянуть на precision с recall по каждому классу в отдельности, как картина резко меняется. По TOXIC recall еле-еле 0.78, а для части редких меток test split вообще никакой — положительных примеров кот наплакал.

Подробности — тут на Хабре.

👉 About Python
Post #2891 524
Что каждый Python-разработчик должен выкупать про CPython ABI

Разбираем ABI (Application Binary Interface) в CPython — тема, без которой никуда, если пишешь C-расширения или юзаешь пакеты с нативным кодом.

Обычный Python ABI (он же ABI3) стыкует расширения между разными версиями CPython, начиная с Python 3.2. Это значит, можно собрать один wheel, который полетит на любой версии Python 3 без пересборки. В народе такие называют "abi3 wheels".

Но не каждый модуль прокатит с ABI3 — только те, что работают через ограниченный API Python (Limited API). Это стоит запомнить, когда публикуешь пакеты с нативными расширениями.

Детали — в статье: https://labs.quansight.org/blog/python-abi-abi3t

👉 About Python
Post #2889 537
django-orjson — натягиваем orjson поверх Django, с Rust внутри

Адам Джонсон выкатил пакет под названием django-orjson. Суть простая: он выпиливает штатный json из Django и втыкает вместо него orjson — сериализатор, который на самом деле написан на Rust.

Баблишн на PyPI уже есть. А все детали автор разложил в своём блоге: https://adamj.eu/tech/2026/07/15/introducing-django-orjson/

👉 About Python
adamj.eu Django: introducing django-orjson - Adam Johnson Just as cars painted red are known to be faster, libraries implemented in Rust are also known to be faster. Today’s example is orjson, a Rusty replacement for Python’s built-in json module, boasting 10x faster serialization and 2x faster deserialization.
Post #2885 508
Собираю своего кодинг‑агента на базе моделей OpenAI

Наваял базовый агентный цикл сам через Pydantic AI — и оно сразу взлетело. Но потом вылезли проблемные места: как ужать раздутый контекст, как не заставить агента переделывать то, что уже сделано, и как понять, что он реально допёр, а не просто сдулся.

На каждом таком этапе я тупил и шёл подсматривать, как это делают профи. Хорошо, что сорцы Codex, OpenCode и Pi открыты, а по архитектуре Claude Code Anthropic сам всё разжевал. Выяснилось: кодинг‑агенты отличаются не тем, какая модель внутри или какой список фич на лендинге. Их разделяет то, как собрана обвязка — и это видно прямо в исходниках.

👉 About Python
Post #2882 443
Astral вливается в OpenAI

OpenAI только что пригрел Astral — тех самых ребят, что сделали uv, Ruff и ty. Если твой первый вопрос звучал как «ну всё, uv теперь труба?», то поверь, ты такой не один. Talk Python потрещал с Чарли Маршем, и они разобрали, как проходила эта сделка и почему кода сейчас шлёпают больше, чем когда-либо.

Подробнее

👉 About Python
talkpython.fm Astral joins OpenAI OpenAI just acquired Astral, the company behind uv, Ruff, and ty. And if your first thought was 'wait, is uv toast?', you are not alone. But here's the twist Charlie Marsh shared with me: he thinks they may ship more open source at OpenAI than they ever did…
Post #2881 444
Strict-режим активирован, схема вроде ок, ответ на ура парсится — и тут бац, в проде вылезают None, ограничения куда-то делись, а аргументы у инструментов не того типа, как договаривались.

В статье разобрали пять ситуаций, когда Structured Outputs создают ложную иллюзию, что всё под контролем. Автор честно прошелся по ним и подсветил, какие проверки реально стоит воткнуть в LLM-пайплайн, чтобы не обжигаться.

Текст на Habr

👉 About Python
Post #2879 472
Рынок труда в 2026. Что там на самом деле?

Где-то полтора месяца назад я села и наваляла кабинетное исследование про то, что сейчас происходит на рынке. Спойлер: не от хорошей жизни — сама искала работу, и чтобы не тыкаться вслепую, пришлось раскурить тему детально.

Вопросы сыпались один за другим, и в итоге выстрелила целая простыня размером с курсовик.

Читать далее

👉 About Python
Post #2873 470
Ага, еще один кейс, когда инженеры перемудрили с архитектурой, а потом одумались. История про сервис логирования для Discord-серверов: сначала там была адская связка из MySQL, PHP и Python. Боль и страдание. А потом пришли к простому решению — Python + SQLite, завёрнутые в один Docker-контейнер.

Ребята упростили стек и не прогадали. Всё, как мы любим: меньше геморроя, больше пользы.

Читать на Habr

👉 About Python
Post #2872 451
Серьезно, нам таки нужны эти code agents?

Давай накинем: LLM как главный движок кода — это пиздец для ревью, когнитивка летит к чертям, да и кто вообще должен отвечать за весь этот код?

Читать далее

👉 About Python
Post #2871 460
⁣Проектирование in-process брокера сообщений на multiprocessing.shared_memory с lock-free очередью и zero-copy для обхода GIL

Когда вы передаете большие данные между процессами через multiprocessing.Queue, каждое сообщение копируется, сериализуется через pickle и блокирует GIL. Для видео, аудио или numpy-массивов это становится узким горлом. Многие разработчики ошибочно уходят в asyncio в одном процессе, теряя возможность использовать многоядерность.

Идея zero-copy через shared memory
Используйте multiprocessing.shared_memory для выделения пула буферов. Данные кладутся без копирования, а очередь строится как кольцевой буфер с атомарными head и tail через ctypes.Value. Это SPMC (single producer, multiple consumers) без мьютексов.

Пример реализации ring buffer
from multiprocessing import shared_memory, Value
import numpy as np

class RingBuffer:
def __init__(self, size=4, shm_name='my_shm'):
self.size = size
self.buf = shared_memory.SharedMemory(
name=shm_name, create=True, size=4096)
self.head = Value('i', 0)
self.tail = Value('i', 0)

def push(self, data: np.ndarray):
offset = self.head.value * 1024
self.buf.buf[offset:offset + len(data.tobytes())] = data.tobytes()
self.head.value = (self.head.value + 1) % self.size

def pop(self) -> np.ndarray:
while self.tail.value == self.head.value:
pass # spinlock (production: use futex)
offset = self.tail.value * 1024
raw = self.buf.buf[offset:offset + 1024]
self.tail.value = (self.tail.value + 1) % self.size
return np.frombuffer(raw, dtype=np.uint8)


Типичная ошибка и trade-off
Основная ошибка - игнорирование фиксированного размера сообщений и отсутствие защиты от перезаписи. Если producer запишет больше данных, чем буфер, данные молча перетрутся. Также spinlock в pop() нагружает CPU - для production используйте pthread_cond_wait через ctypes.

Когда это оправдано
Для тяжелых данных: видеофреймы, аудио, большие матрицы в ETL или ML-инференсе. Выигрыш по сравнению с multiprocessing.Queue + pickle может достигать 3-10x на больших блоках. Для мелких сообщений overhead shared memory не оправдан.

Вывод: Lock-free очередь на shared_memory с zero-copy дает радикальный прирост производительности для больших данных между процессами, но требует аккуратного управления размером буфера и синхронизации.
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →