50319
Всё самое интересное из мира Python Сотрудничество, реклама: @devmangx Работаем с @Spiral_Yuri РКН: https://clck.ru/3GMMF6
Чёрт… хакеры это точно оценят.
Кто-то выложил в опенсорс универсальный тулкит для взлома, который объединяет все основные инструменты пентеста в одно CLI-меню.
Ставишь один раз — и сразу получаешь доступ к инструментам из всех категорий: анонимность, сбор информации, атаки на беспроводные сети, подбор паролей, сканирование веба, фреймворки эксплуатации, генерация полезной нагрузки и т.д.
Называется HackingTool.
→ Одно меню запускает Tor, Anonsurf, Macchanger и цепочки прокси за секунды
→ Включает Nmap, Dracnmap, RED HAWK и ReconSpider для полной разведки сети
→ Содержит SQLMap, XSStrike, WPScan и SecretFinder для эксплуатации веба
→ Есть John the Ripper, Hashbuster и BruteX для атак на пароли
51K звёзд. Работает на любом Linux-дистрибутиве.
Полностью опенсорс.
👉 @PythonPortal
F = q(E + v \times B)
Наблюдать, как сила Лоренца из абстракции из учебника превращается в 30 000 об/мин в реальном времени — чистый дофамин.
В какой-то момент поток магнитного поля уже воспринимается как физическое размытие.
Большинство видит «крутящуюся игрушку», но по факту это векторное произведение скорости и магнитного поля, дающее силу, создающую момент на якоре. Это и есть практическое проявление уравнений Максвелла — не формулы, а реальная физика в работе.
Это демонстрация базового принципа работы коллекторных электродвигателей постоянного тока.
👉 @PythonPortal
Райан — лучший, делает божью работу
👉 @PythonPortal
Совет на 2026 год — переходите в ML.
Пока обычные разрабы конкурируют с ИИ-копилотами, ML-инженеры эти самые нейронки создают.
В эпоху нейростей это самые востребованые люди в мире программирования. Зарплаты мидлов начинаются от 250 000 ₽, а у сеньоров в BigTech доходят до 700 000 ₽.
А чтобы освоить его всего за 4 месяца без лишней суеты — изучите канал Артема Алехина.
Его бэкграунд: Руководитель команды в Сбере, валютная удаленка. К 22 годам вышел на доход 1 000 000+ ₽ в месяц.
На канале вы найдёте:
— Всё про самые востребованные стеки(Python, ИИ-агенты, NLP) и почему математика — это не страшно, если учить только нужное.
— Как оформить резюме, чтобы оно пролетало через любые LLM-фильтры и ATS-системы прямо к тимлидам.
— Скрипты переговоров, которые помогли его ученикам прыгнуть с 0 до 360к всего за 8 месяцев.
Во времена острой нехватки ML-разработчиков, это лучшее время, чтобы перекатиться. Переходи и изучай: /channel/+w33eYYK1a2kwOWI6
HTML заходит в 3D? Или наоборот?
С новым HTML in Canvas от WICG теперь можно напрямую размещать нативные DOM-элементы внутри сцен WebGL / WebGPU. Пока это экспериментальная фича, но потенциал для 3D-интерфейсов и визуальных эффектов значительный.
Этот демо-проект собран на Three.js и Omma AI (инструмент от Spline). Новый способ посмотреть, на что способен веб.
Интересно посмотреть демо?
👉 @PythonPortal
Редакторы Markdown — это текстовые инструменты, которые позволяют быстро форматировать контент с помощью простого синтаксиса — широко используются как де-факто язык для структурирования промптов и вывода в AI 😎
👉 @PythonPortal
Сталкивался с тем, как безопасно шарить API-ключи внутри команды?
Файл .env хранит конфигурацию вроде API-ключей и URL базы данных в открытом виде.
Поэтому коммит в git приводит к утечке всех секретов. Обычно файл добавляют в .gitignore, а креды раздают вручную через Slack или менеджеры паролей.
Со временем секреты расползаются по разным местам без единого источника истины.dotenvx решает это, шифруя .env через криптографию с открытым ключом.
Можно коммитить зашифрованный файл в git, а команде нужен только приватный ключ (хранится в .env.keys, который в .gitignore) для расшифровки при запуске приложения.
Ключевые возможности:
• Работает с Python, Node, Go, Ruby, Rust и другими через единый CLI
• Шифрует .env с использованием той же криптографии, что и Bitcoin (secp256k1)
• Разделяет окружения через .env.production, .env.staging и .env.ci
👉 @PythonPortal
Быстрый совет по Code, о котором ты можешь не знать: содержимое скобок и строк можно выделить простым двойным кликом 🖱
👉 @PythonPortal
Как работает DNS за 60 секунд:
Что такое DNS: система доменных имён.
Ты вводишь http://xyz.com в браузере. Но интернет не понимает доменные имена — он работает с IP-адресами.
Вот что происходит под капотом:
1. Браузер спрашивает: «Где находится http://xyz.com?»
2. Резолвер DNS у провайдера проверяет кэш. Если запрос уже был — отвечает сразу. Если нет — начинает опрос.
3. Запрос к корневому серверу имён → «Не знаю, спроси у сервера зоны .com»
4. Запрос к серверу зоны .com → «Не знаю, спроси у авторитетного сервера для http://xyz.com»
5. Авторитетный сервер отвечает: «http://xyz.com = 203.0.113.47»
6. Резолвер кэширует ответ и возвращает его браузеру
7. Браузер подключается к 203.0.113.47 — сайт загружается
Всё это происходит за миллисекунды. Каждый раз при открытии сайта.
И когда DNS ломается — не работает ничего. Ни сайты, ни приложения. Даже если сервер полностью исправен.
Поэтому фраза «всегда виноват DNS» — одна из самых часто повторяемых в ИТ.
👉 @PythonPortal
Нашли репозиторий с большим количеством шпаргалок по Python на русском языке 😮
Есть PDF-ки по:
- типам данных;
- функциям;
- декораторам;
- итераторам и генераторам;
- различным модулям;
- ООП и многому другому.
⛓ Ссылка: тык
👉 @PythonPortal
Ты: безупречное резюме/CV/рекомендации с прошлого места работы, десятки топовых проектов за плечами
Требования HR:
👉 @PythonPortal
Docker Tip
Вот как можно проанализировать, что раздувает образ.
Как известно, каждый Docker-образ состоит из слоёв.
Каждый слой добавляется отдельной строкой в Dockerfile.
Эти слои позволяют понять, почему образ большой, медленно собирается или плохо кэшируется.
Вот как можно проинспектировать слои и посмотреть, что изменилось в каждом из них.
Можно использовать утилиту dive.
Она даёт визуальное представление:
✅ всех созданных слоёв
✅ какие файлы были добавлены или изменены
✅ сколько места занимает каждый слой
При анализе слоёв образа можно определить:
- какая команда добавляет лишний объём
- как оптимизировать Dockerfile для более компактных и эффективных сборок
Также утилита показывает метрику эффективности образа, которая отражает, сколько данных дублируется или расходуется впустую между слоями.
👉 @PythonPortal
(Я не читаю почту и не открываю жиру)
👉 @PythonPortal
GitHub-репозитории, чтобы прокачать Python
- Веб-разработка с Django — https://github.com/django/django
- Инструментарий для Data Science — https://github.com/rasbt/python-machine-learning-book
- Алгоритмические задачи — https://github.com/TheAlgorithms/Python
- Рецепты машинного обучения — https://github.com/ageron/handson-ml2
- Лучшие практики тестирования — https://github.com/pytest-dev/pytest
- Скрипты для автоматизации — https://github.com/soimort/you-get
- Продвинутые концепции Python — https://github.com/faif/python-patterns
MIT сделал ход, который ставит под сомнение ставки индустрии на рост контекстного окна.
Они решили проблему памяти не увеличением «окна», а сменой модели работы с данными.
Проблема.
У любой модели есть предел — контекстное окно. При его переполнении возникает деградация качества: факты теряются, связи между частями текста исчезают, ответы становятся хуже.
Это называют «деградацией контекста».
Что делали раньше.
RAG (генерация с извлечением):
- документ режется на чанки
- хранится во внешнем хранилище
- перед запросом извлекаются «релевантные» куски
Проблемы:
- извлечение делает предположение до чтения
- ошибки в выборе → модель не видит нужные данные
- связи между частями документа разрушаются
Подход MIT.
Документ не помещается в контекст вообще.
Он хранится вне модели, например как переменная.
Модели сообщается, что данные существуют и как к ним обращаться.
Дальше модель:
- пишет код для поиска
- использует регулярные выражения
- извлекает нужные фрагменты
- подгружает только релевантные части
Ключевой момент.
Обработка становится рекурсивной:
- модель находит релевантные участки
- запускает подзадачи (сабагенты) для их анализа
- агрегирует результат
Нет сжатия, нет потерь, нет переполнения контекста.
Результаты.
- обработка до ~10 млн токенов
- значительный прирост качества на задачах с длинным контекстом
- стоимость сопоставима с обычными запросами
Вывод.
Фокус смещается:
не «сколько текста держать в голове»,
а «как эффективно к нему обращаться».
Модель начинает работать как разработчик с доступом к данным:
поиск → извлечение → анализ → агрегация.
Ссылки:
- Статья: http://arxiv.org/abs/2512.24601
- Код: http://github.com/alexzhang13/rlm
👉 @PythonPortal
Разработчик на Rust фактически «убил» Headless Chrome.
Проект называется Obscura — браузер без графического интерфейса с открытым исходным кодом, изначально заточенный под ИИ-агентов и масштабный скрейпинг.
Chrome vs Obscura:
- Память: 200MB+ → 30MB
- Бинарник: 300MB+ → 70MB
- Загрузка страницы: 500ms → 85ms
- Старт: 2s → мгновенно
- Антидетект: отсутствует → встроен
Один бинарник. Без Node, без Chrome, без зависимостей.
Стелс-режим:
→ Рандомизация отпечатка на каждую сессию (GPU, canvas, аудио, батарея)
→ 3 520 трекер-доменов заблокированы по умолчанию
→ navigator.webdriver замаскирован под реальный Chrome
→ Маскирование нативных функций, чтобы детекторы не могли их определить
Подменяет Puppeteer и Playwright через протокол отладки Chrome. Без изменений кода.
Если используются агенты или серьёзный скрейпинг в масштабе — репозиторий даёт прямую выгоду.
Полностью open source.
👉 @PythonPortal
Набор из 54 компонентов анимации загрузки в терминальном стиле для React Native и Expo, реализованных полностью на тексте без нативных зависимостей.
Разделены на четыре категории: Braille, ASCII, стрелки и Emoji. Работают только на Text и setInterval, без использования нативных модулей. Можно просто скопировать нужный компонент из src/components/spinners — подходит для сценариев вроде стриминга вывода ИИ-агентов, интерфейсов в стиле CLI и подобных задач. ❤️❤️
👉 @PythonPortal
GPT Image 2 + Codex: или как сделать так, чтобы Codex не был слаб в UI.
Шаг 1: Сгенерировать изображение интерфейса (это нативно поддерживается в Codex)
Шаг 2: Попросить Codex реализовать UI по этому референсу
Шаг 3: Гонять итерации, пока результат не будет максимально совпадать с изображением
Codex слабо справляется со стартовым UI, но хорошо реализует интерфейс по референс-дизайну. Поэтому рабочий подход такой: сначала делаешь несколько итераций через модель генерации изображений, потом Codex уже нормально собирает UI по готовому референсу.
👉 @PythonPortal
Стек AI/ML — это многослойный набор инструментов, покрывающий полный воркфлоу разработки моделей 😎
👉 @PythonPortal
Бывший исследователь MIT Исаак Фримен бросил PhD и выложил роадмап на 50 000 GPU H100 для эмуляции полноценного человеческого мозга.
Он описал полный путь — от червя с 302 нейронами до человека с 86 миллиардами нейронов. Стоимость коннектомики сейчас оценивается примерно в $100 за нейрон, и основным узким местом остаётся сбор данных с помощью продвинутых микроскопов — у «цифровых людей» появился реалистичный таймлайн.
https://pdf.isaak.net/thesis
👉 @PythonPortal
Google DeepMind выпустили, пожалуй, самый тревожный отчёт по кибербезопасности за год.
Они описали поверхность атак, о которой почти не говорят в контексте ИИ.
Сайты уже умеют определять, что к ним пришёл агент, и отдавать ему совсем другой контент, чем человеку.
- скрытые инструкции в HTML
- вредоносные команды в пикселях изображений
- джейлбрейки, зашитые в PDF
Эта «асимметрия детекции» означает: пользователю показывается нормальный контент, а агенту — скрытый и вредоносный.
Агент не понимает, что его обманывают. Он просто обрабатывает вход и действует.
Вот поверхность атак, о которой мало говорят:
→ косвенные веб-инъекции: инструкции, спрятанные в HTML-комментариях, CSS-трюках или тексте «белым по белому»
→ мультимодальная стеганография: команды, закодированные прямо в пикселях изображений, невидимые человеку, но читаемые моделями зрения
→ джейлбрейки в документах: инструкции, спрятанные глубоко в PDF, таблицах и календарных событиях
→ отравление памяти: внедрение ложных данных, которые сохраняются и влияют на будущие сессии
→ атаки на утечку данных: агент вынуждается отправлять приватную информацию на контролируемые атакующим эндпоинты
→ каскады между агентами: худший сценарий — агент A скомпрометирован, передаёт «яд» агенту B, затем C, и заражается весь пайплайн из-за доверия между агентами
Самая отрезвляющая часть отчёта: защита серьёзно отстаёт.
Санитизация входа не работает — пиксели нельзя «очистить».
Инструкции уровня промпта вроде «игнорируй подозрительные команды» не помогают — атаки маскируются под легитимные.
Человеческий контроль невозможен на скоростях и масштабах, на которых работают агенты.
Если агенту поручить анализ 50 сайтов, невозможно проверить, одинаковый ли контент получил агент и пользователь.
👉 @PythonPortal
MCP и Skills для AI-агентов — разбор без путаницы.
Разработчики часто воспринимают MCP и Skills как одно и то же.
Это ошибка.
Смешивание этих понятий — один из самых частых фейлов при переходе к серьёзной разработке AI-агентов.
Разберём с нуля.
До появления MCP подключение модели к внешним инструментам требовало писать кастомную интеграцию каждый раз.
Например, 10 моделей и 100 инструментов давали 1000 отдельных коннекторов, которые нужно поддерживать.
MCP решает это через общий протокол взаимодействия.
Инструменты становятся частью “сервера”, который экспонирует возможности. Каждый агент — это “клиент”, который умеет делать запросы. Общение идёт через структурированные JSON-сообщения по чётко заданному интерфейсу.
Например, можно один раз реализовать MCP-сервер для GitHub, и он будет работать с Claude, ChatGPT, Cursor или любым другим агентом с поддержкой MCP. Ключевая ценность — одна интеграция, многократное использование.
MCP решает проблему подключения, но не решает проблему использования.
Агент может иметь 50 корректно подключённых MCP-инструментов и при этом работать слабо, если не понимает:
- когда вызывать инструмент
- в каком порядке
- с каким контекстом
Этот разрыв закрывают Skills.
Skill — это переносимый пакет процедурных знаний.
Файл SKILL.md не просто описывает доступные инструменты, а задаёт, как именно их применять в рамках конкретной задачи.
- Skill для написания текста включает гайд по тону и шаблоны вывода
- Skill для код-ревью включает паттерны проверок и правила
MCP даёт агенту доступ к инструментам. Skills формируют устойчивые паттерны их использования.
Вместе это полный стек возможностей продакшен-агента:
- MCP — слой подключения инструментов
- Skills — слой знаний и выполнения задач
- Агент — оркестрация через контекст и рассуждение
Поэтому продвинутые конфигурации используют оба подхода: MCP-серверы для интеграций и SKILL.md для доменной экспертизы.
👉 @PythonPortal
Запуск open-source платформы PostgreSQL в Kubernetes с использованием copy-on-write для ветвления данных объёмом в терабайты за считанные секунды и автоматической гибернацией при простое для экономии ресурсов — подходит для компаний, которые строят внутренние базы данных или быстро поднимают окружения для разработки и тестирования.
Xata — это open-source облачная платформа PostgreSQL, которая умеет одновременно управлять большим количеством инстансов Postgres в Kubernetes. Ключевые возможности: создание веток данных объёмом в терабайты за секунды и автоматическое масштабирование до нуля при простое с последующим пробуждением при новых подключениях.
На уровне инфраструктуры используется CloudNativePG для управления и обслуживания Postgres и OpenEBS для хранения, а на верхнем уровне доступны встроенные SQL-шлюз, управление ветками, REST API и CLI. Компании могут использовать её для построения внутренних платформ баз данных или быстро выделять отдельную копию данных для каждого разработчика и каждого тестового запуска с последующей автоматической гибернацией для экономии ресурсов и затрат.
100% опенсорс
👉 @PythonPortal
Знал ли ты, что Python может открыть вкладку браузера?
Без фреймворков. Всего одна строка.
Вот как запустить URL — удобно для создания утилит, повышения продуктивности или автоматического открытия документации из скриптов.
Попробуй сам. 🙂
👉 @PythonPortal
Как использовать borb для создания простого PDF на Python
from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout
from borb.pdf.canvas.layout.text.paragraph import Paragraph
from borb.pdf.document import Document
from borb.pdf.page.page import Page
from borb.pdf.pdf import PDF
def main(pdf_path):
pdf = Document()
# Добавляем пустую страницу в PDF
page = Page()
pdf.append_page(page)
# Создаём лэйаут для размещения текста
layout = SingleColumnLayout(page)
# Добавляем текст с помощью класса Paragraph
layout.add(Paragraph("Hello from borb!"))
with open(pdf_path, "wb") as pdf_fh:
PDF.dumps(pdf_fh, pdf)
if __name__ == "__main__":
main("demo.pdf")