52807
по всем вопросам @haarrp @itchannels_telegram - 🔥 best it channels @ai_machinelearning_big_data -ML @ArtificialIntelligencedl -AI @datascienceiot - ml 📚 @pythonlbooks -📚books
Inside ML: индустриальные секреты машинного обучения
Онлайн-магистратура «Искусственный интеллект» от Вышки запускает мини-курс, где разберём, как ML работает в индустрии: от Computer Vision и AutoML до LLM и мультиагентных систем.
Что вас ждёт:
— 5 вебинаров от практиков из Avito, Сбера, Ozon
— Кейсы: как выигрывают Kaggle AutoML Grand Prix, запускают CV-системы и внедряют LLM в бизнес
— Q&A с экспертами: можно спросить о задачах и карьерном треке в ML
Для кого:
— IT-специалистам, которые хотят перейти в ML или усилить свою экспертизу
— Тем, кто хочет понять, что востребовано сейчас на рынке
— Тем, кто планирует сделать шаг в сторону applied ML или сменить специализацию внутри IT
Когда: до 15 июля, 19:00 (по МСК)
🔗 Зарегистрироваться
⚙️ Подменяй любые импорты в Python “на лету” — без изменения кода
Если ты хочешь протестировать модуль, подменить зависимость, замокать внешний сервис или обмануть импорт — не обязательно редактировать исходники. Python позволяет перехватывать импорты прямо во время выполнения, через sys.modules.
Вот минимальный приём, который делает это прозрачно:
import sys
import types
# Создаём фейковый модуль
fake = types.SimpleNamespace()
fake.get_data = lambda: "подмена работает"
# Подменяем импорт
sys.modules['external_service'] = fake
# Теперь даже import будет работать
import external_service
print(external_service.get_data()) # → "подмена работает"
🌟 Odigos — распределенный трейсинг без модификации кода. Этот open-source проект меняет правила игры в observability-инструментах. Инструмент умеет автоматически генерировать распределенные трейсы для приложений на Java, Python, .NET, Node.js и Go без необходимости правки исходного кода.
Под капотом используется eBPF для низкоуровневой инструментации, что особенно ценно для скомпилированных языков вроде Go. Трейсы сразу экспортируются в формате OpenTelemetry, что позволяет интегрироваться с любыми совместимыми системами мониторинга.
🤖 GitHub
@pythonl
🧠 Как превратить любой Python-объект в читаемый словарь — даже если это класс с кучей вложенных полей
Когда работаешь с API, логами или дебажишь сложные объекты — хочется увидеть весь объект как словарь, без .__dict__, без сериализации, без ручного разбора.
Вот приём, который делает это рекурсивно, красиво и гибко — с помощью dataclasses и asdict, даже если объект не был dataclass изначально.
python
from dataclasses import dataclass, asdict, is_dataclass
from types import SimpleNamespace
def deep_to_dict(obj):
if isinstance(obj, dict):
return {k: deep_to_dict(v) for k, v in obj.items()}
elif isinstance(obj, list):
return [deep_to_dict(i) for i in obj]
elif is_dataclass(obj):
return asdict(obj)
elif isinstance(obj, SimpleNamespace):
return deep_to_dict(vars(obj))
elif hasattr(obj, '__dict__'):
return deep_to_dict(vars(obj))
else:
return obj
🪶 DotDotGoose — open-source инструмент для ручного подсчёта объектов на изображениях
Нужен простой способ разметить объекты на фото — вручную и без лишних настроек? DotDotGoose — идеальный выбор. Это десктоп‑приложение, написанное на Python, для учёта объектов путём простого "тыкания" точек.
🔧 Возможности:
- Быстрое добавление точек и классов объектов
- Зум, панорама, тёмная тема
- Экспорт в CSV, JSON и изображения с разметкой
- Поддержка пользовательских метаданных
- Готовые билды под Windows и macOS
Установка: git clone https://github.com/persts/DotDotGoose
python3 -m venv ddg-env
source ddg-env/bin/activate
python -m pip install --upgrade pip
python -m pip install -r ./DotDotGoose/requirements.txt
👨🔬 Для всех, кому нужен точный ручной подсчёт на изображениях.
🔗 GitHub:
@pythonl
⚡ Ускорь Python без переписывания — скомпилируй код в .so через Cython
Нужно ускорить медленные куски Python-кода (циклы, численные вычисления, парсинг)?
Не обязательно лезть в C или переписывать всё под NumPy. Можно взять свой .py`-файл, добавить одну строчку и превратить его в бинарный .so`‑модуль через Cython — без изменения логики.
# 1. Устанавливаем Cython и компилятор
pip install cython
sudo apt install build-essential
# 2. Переименовываем файл
mv myscript.py myscript.pyx
# 3. Создаём setup.py
echo '
from setuptools import setup
from Cython.Build import cythonize
setup(ext_modules=cythonize("myscript.pyx"))
' > setup.py
# 4. Компилируем
python3 setup.py build_ext --inplace
# 5. Используем как обычный модуль
python3 -c 'import myscript; myscript.main()'
👾 GREMLLM — теперь у ваших багов есть сознание
GREMLLM — это необычный Python-класс, в котором все методы и свойства создаются динамически с помощью LLM. Вы описываете, *что за объект вы хотите*, и дальше GREMLLM сам решает, что должно происходить при вызове методов или обращении к полям.
📦 Установка:
pip install gremllm
from gremllm import Gremllm
counter = Gremllm('counter')
counter.value = 5
counter.increment()
print(counter.value) # → 6?
print(counter.to_roman_numerals()) # → VI?
📊 Vizro — low-code инструмент для создания дашбордов на Python. Интересный проект для аналитиков и дата-инженеров, позволяющий собирать интерактивные дашборды буквально в несколько строк кода. Основан на связке Plotly + Dash + Pydantic, но скрывает сложность за простым декларативным синтаксисом в JSON/YAML/Python-словарях.
Библиотека имеет встроенные best practices по визуализации данных и возможность кастомизировать всё через Python/JS, когда low-code возможностей недостаточно. Готовые дашборды выглядят профессионально и сразу готовы к продакшену.
🤖 GitHub
@pythonl
🔥 CAI — ИИ для поиска багов от Alias Robotics
Что это такое?
CAI — лёгкий фреймворк для создания AI-агентов, которые помогают автоматизировать поиск и проверку уязвимостей.
Как это работает?
- Загружаете YAML-конфиги
Опишите сценарии поиска багов, тестов и отчётов в простых текстовых файлах.
- LLM-агенты
AI-модель эмулирует протоколы (SSH, HTTP, TCP и другие) и взаимодействует с целевыми системами как настоящий тестировщик.
- Генерация и «разогрев» данных
Создавайте синтетические запросы для обучения и быстро запускайте агента на своих данных.
- Оффлайн-оценка
Собирайте результаты тестов и анализируйте их без постоянного подключения к интернету.
Зачем использовать CAI?
- Ускоряет подготовку и запуск тестов безопасности
- Позволяет гибко настраивать шаги проверки
- Повышает прозрачность и повторяемость отчётов о найденных уязвимостях
Установка и запуск:
git clone https://github.com/aliasrobotics/cai.git
cd cai
# отредактируйте config.yaml и запустите агента
⚡️ PyOpenCL — ускоряем Python вычисления на GPU. Этот проект даёт доступ к технологии OpenCL прямо из Python, позволяя задействовать не только видеокарты, но и любые параллельные вычислительные устройства. Он сочетает низкоуровневый контроль с автоматической обработкой ошибок и привязкой жизненного цикла объектов.
Инструмент имеет обширную документацию с примерами: от простого поэлементного умножения массивов до сложных алгоритмов с использованием локальной памяти GPU. Проект работает с реализациями OpenCL от Apple, AMD и Nvidia, а установка через Conda занимает буквально пару команд.
🤖 GitHub
@pythonl
🔟 однострочных функций, полезных для продвинутых Python-разработчиков:
1. Разворачиваем вложенных списков любой глубины
flatten = lambda lst: [x for sub in lst for x in (flatten(sub) if isinstance(sub, list) else [sub])]
memoize = lambda f: (lambda *args, _cache={}, **kwargs: _cache.setdefault((args, tuple(kwargs.items())), f(*args, **kwargs)))
chunked = lambda lst, n: [lst[i:i+n] for i in range(0, len(lst), n)]
uniq = lambda seq: list(dict.fromkeys(seq))
deep_get = lambda d, *keys: __import__('functools').reduce(lambda a, k: a.get(k) if isinstance(a, dict) else None, keys, d)
pretty_json = lambda obj: __import__('json').dumps(obj, ensure_ascii=False, indent=2)
tail = lambda f, n=10: list(__import__('collections').deque(open(f), maxlen=n))
sh = lambda cmd: __import__('subprocess').run(cmd, shell=True, check=True, capture_output=True).stdout.decode().strip()
path_join = lambda *p: __import__('os').path.join(*p)
group_by = lambda seq, key: {k: [d for d in seq if d.get(key) == k] for k in set(d.get(key) for d in seq)}
🚦 premier — удобный инструмент для ограничения частоты вызовов в Python
Что это такое: premier — это библиотека для контроля скорости вызовов функций в Python. Она помогает ограничить нагрузку на API, базу данных или любой другой ресурс, чтобы не получить отказ или блокировку.
📌 Возможности:
• Поддержка популярных алгоритмов: token bucket, fixed window, leaky bucket
• Работает как с обычными, так и с асинхронными функциями
• Поддерживает Redis и другие хранилища для распределённого ограничения
• Гибкая настройка: лимиты, ключи, длительность окна, своя логика
• Простое применение через декораторы
🧪 Пример:
from premier import throttler, ThrottleAlgo, RedisHandler
@throttler.fixed_window(quota=3, duration=5)
def request(url: str):
# максимум 3 вызова каждые 5 секунд
...
@throttler.token_bucket(quota=5, duration=60)
async def async_request(...):
# асинхронный токен-бакет
...
🛠️ Copier — удобный инструмент для создания и обновления проектов из шаблонов. Эта Python-утилита умеет работать как с локальными путями, так и с Git-репозиториями, подставляя переменные в файлы любого формата. Главная фишка Copier — это аккуратная работа с существующими файлами: он не перезаписывает их без явного указания.
Инструмент будет полезен тем, кто часто создаёт однотипные проекты или хочет автоматизировать их обновление. Шаблоны поддерживают сложную логику через Jinja2, а настройки задаются в простом YAML-формате. Для начала работы достаточно установить Copier через pipx или pip. Проект развивается при поддержке сообщества и доступен под лицензией MIT.
🤖 GitHub
@pythonl
📦 InvenTree — умная система учета для мастерских и инженерных проектов. Этот open-source инструмент — достойная замена Excel, которая поможет вам перестать страдать от перегруженных корпоративных систем.
Инструмент предлагает продуманный баланс между простотой и функциональностью: отслеживание деталей, управление несколькими складами, работа с партиями и серийными номерами — всё в одном месте.
📌 Особенности проекта:
— Гибкая интеграция через REST API и Python-модули
— Мобильные приложения для iOS/Android со сканированием штрих-кодов
— Плагинная система для кастомизации под конкретные нужды
— Простой деплой — от Docker до однострочной установки на Linux
🤖 GitHub
@pythonl
🌟 alphaXiv —выпустили расширение для хрома
alphaXiv упрощает работу с научными статьями (arXiv, bioRxiv, PDF):
● чат с ИИ прямо в документе: выделение текста открывает диалог
● ссылки на другие статье через “@” для быстрого вызова статей
● позволяет генерировать блог одним кликом: иллюстрации к статьям, ключевые идеи, перевод
● закладки и автоматические BibTeX-цитаты для хранения и ссылок
https://chromewebstore.google.com/detail/alphaxiv-understand-resea/liihfcjialakefgidmaadhajjikbjjab
@pythonl
🐍 Часть2: ещё 20 полезных Python-однострочников для тех, кто пишет в прод
Первая часть зашла — вот ещё 20 трюков, которые реально экономят время и делают код лаконичнее и чище:
1. 📥 Считать все строки из файла, убрав перевод строки
lines = Path('file.txt').read_text().splitlines()
hash = hashlib.sha256(b"your text").hexdigest()
s = ','.join(map(str, numbers))
raise SystemExit("Done")
print(sys.getsizeof(obj))
flat = [i for sub in nested for i in sub]
inv_mask = ~mask
seen = set(); uniq = [x for x in lst if not (x in seen or seen.add(x))]
result = func(**params)
top_n = dict(Counter(lst).most_common(5))
s_trunc = s[:n] + '…' if len(s) > n else s
binary = [random.randint(0, 1) for _ in range(n)]
today = date.today().isoformat()
size_mb = os.path.getsize(path) / 1024**2
shuffled = dict(random.sample(d.items(), len(d)))
with contextlib.redirect_stdout(io.StringIO()): exec('code')
chunks = [lst[i:i+n] for i in range(0, len(lst), n)]
ok = socket.create_connection((host, port), timeout=2)
s = s.replace('from', 'to', 1)
is_all_numbers = all(isinstance(x, (int, float)) for x in lst)
👩💻 Всем программистам посвящается!
Вот 17 авторских обучающих IT каналов по самым востребованным областям программирования:
Выбирай своё направление:
👩💻 Python — t.me/python_ready
🤔 InfoSec & Хакинг — t.me/hacking_ready
🖥 SQL & Базы Данных — t.me/sql_ready
🤖 Нейросети — t.me/neuro_ready
👩💻 C/C++ — /channel/cpp_ready
👩💻 C# & Unity — t.me/csharp_ready
👩💻 Linux — t.me/linux_ready
📖 IT Книги — t.me/books_ready
👩💻 Frontend — t.me/frontend_ready
📱 JavaScript — t.me/javascript_ready
👩💻 Backend — t.me/backend_ready
📱 GitHub & Git — t.me/github_ready
👩💻 Java — t.me/java_ready
👩💻 Весь IT — t.me/it_ready
👩💻 Bash & Shell — t.me/bash_ready
🖼️ DevOps — t.me/devops_ready
🖥 Design — t.me/design_ready
📌 Гайды, шпаргалки, задачи, ресурсы и фишки для каждого языка программирования!
🐍 20 реально полезных однострочных функций на Python — для тех, кто пишет в прод
Забудь про [::-1] и lambda x: x*2. Вот подборка, где однострочники реально ускоряют работу, убирают лишний код и улучают читаемость кода:
1. 📁 Получить все файлы с расширением .py рекурсивно
files = list(Path('.').rglob('*.py'))
timeit(lambda: your_func(), number=1000)
[m for m in dir(obj) if not m.startswith('_')]
df_clean = df.dropna()
list(ThreadPoolExecutor().map(func, iterable))
dict(Counter(my_list))
dups = [x for x, c in Counter(lst).items() if c > 1]
None
filtered = list(filter(None, data))
try: foo() except Exception as e: logging.exception(e)
pd.DataFrame(list_of_dicts)
inv = {v: k for k, v in d.items() if list(d.values()).count(v) == 1}
start = time(); result = fn(); print(f'{time() - start:.2f}s')
sample = random.sample(big_list, k=100)
max(data, key=lambda x: x.score)
dedented = textwrap.dedent(multiline_string)
[func() for _ in range(5) if not success()][-1]
data = json.loads(Path('file.json').read_text())
v /= np.linalg.norm(v)
print('\n'.join(f'{k}={v}' for k, v in sorted(os.environ.items())))
query = urlencode(params)
🔍Открытое собеседование на Python-бекендера с разработчиком из Avito и Яндекс в четверг
10 июля(уже в четверг!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.
Как это будет:
📂 Савва Демиденко, ТехЛид с опытом в Яндексе и Авито, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Савва будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Савве
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot
Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqwZX5NF
🧠 Ускорь import в Python-проектах с помощью lazy loading — без изменения логики
Если у тебя проект с тяжёлыми модулями (`pandas`, torch, tensorflow`), но они не всегда нужны — не загружай их зря. Python позволяет **отложить импорт до первого использования**, через встроённый `importlib.
Вот как это выглядит на практике:
import importlib
# Обёртка для ленивого импорта
def lazy_import(name):
return importlib.util.LazyLoader(importlib.import_module(name))
# Использование
np = lazy_import('numpy')
# numpy ещё не загружен
# Теперь загрузится:
print(np.array([1, 2, 3]))
ML-инженеры, какая встреча!
19 июля в Москве снова пройдет Turbo ML Conf от группы Т-Технологий. В этом году — еще масштабнее!
В программе 5 тематических потоков, продовые кейсы и технологии.
Среди спикеров — эксперты Т-Банка, Сбера, Яндекса и других ведущих специалистов.
Будет много нетворкинга, прикладные доклады, настольные игры, лимитированный мерч. Участие бесплатное.
Успейте оставить заявку
📓🦙 NotebookLlama — open-source альтернатива NotebookLM!
Практически полный функционал NotebookLM — в опенсорсе.
✔️ Собирает базу знаний из документов — с точным разбором через LlamaCloud
✔️ Автоматически пишет резюме и строит mind map-графы
✔️ Позволяет генерировать подкасты (работает на базе ElevenLabs)
✔️ Позволяет вести чат с агентом по документам
✔️ Метрики и аналитика через opentelemetry
🛠 Всё в открытом репо — можешь форкать, кастомизировать, заменять компоненты под себя.
Установка:
git clone https://github.com/run-llama/notebookllama
⚡️ Почему лучшие разработчики всегда на шаг впереди?
Потому что они знают, где брать настоящие инсайд!
Оставь “программирование в вакууме” в прошлом, выбирай свой стек — подпишись и погружайся в поток идей, лайфхаков и знаний, которые не найдёшь в открытом доступе.
ИИ: t.me/ai_machinelearning_big_data
Python: t.me/pro_python_code
Linux: t.me/linuxacademiya
Devops: t.me/DevOPSitsec
Базы данных: t.me/sqlhub
Мл собес t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
МЛ: t.me/machinelearning_ru
Data Science: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/java_library
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: /channel/gamedev
Физика: t.me/fizmat
SQL: t.me/databases_tg
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: /channel/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: /channel/addlist/mzMMG3RPZhY2M2Iy
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
🖥 Chatgpt для кода в тг: @Chatgpturbobot -
📕Ит-книги: /channel/addlist/BkskQciUW_FhNjEy
💼ИТ-вакансии t.me/addlist/_zyy_jQ_QUsyM2Vi
Подпишись, чтобы всегда знать, куда двигаться дальше!
🧩 Задача для разминки
Что выведет этот код? Попробуй догадаться без запуска.
class Sneaky:
def __eq__(self, other):
print("Comparing!")
return True
a = Sneaky()
b = [a]
print(a in b)
print(a == b[0])
print(b.count(a))
⚔️ LIEF — мощная библиотека для работы с исполняемыми файлами, которая поддерживает ELF, PE и MachO-форматы. Этот проект позволяет не только анализировать структуру бинарников, но и модифицировать их — добавлять секции, менять символы или даже работать с Objective-C метаданными.
Инструмент выделяется кроссплатформенностью и мультиязычным API (Python, Rust, C++). Библиотека умеет дизассемблировать код под разные архитектуры и интегрируется с Ghidra/BinaryNinja. Будет полезно для реверс-инжиниринга, анализа вредоносного ПО или кастомной линковки.
🤖 GitHub
@pythonl
🎯 Хочешь следить за загрузкой своей GPU прямо из Python?
Вот простой скрипт, который показывает текущую загрузку видеокарты NVIDIA (через `nvidia-smi`). Подходит для мониторинга в ML-задачах, инференсе и просто для интереса.
📦 Зависимости: установленный nvidia-smi и Python 3.6+
🧠 Код:
import subprocess
def get_gpu_utilization():
try:
result = subprocess.check_output(
['nvidia-smi', '--query-gpu=utilization.gpu,memory.used,memory.total',
'--format=csv,nounits,noheader'],
encoding='utf-8'
)
lines = result.strip().split('\n')
for idx, line in enumerate(lines):
gpu_util, mem_used, mem_total = map(str.strip, line.split(','))
print(f"🖥 GPU {idx}: {gpu_util}% load | {mem_used} MiB / {mem_total} MiB")
except FileNotFoundError:
print("❌ nvidia-smi not found. Make sure NVIDIA drivers are installed.")
except Exception as e:
print(f"⚠️ Error: {e}")
get_gpu_utilization()
GPU 0: 23% load | 412 MiB / 8192 MiB
🖥 5 необычных Python‑проекта для продвинутых разработчиков — которые можно собрать за выходные
Хочешь не просто пописать код, а взорвать мозг? Вот 5 уникальных идей, которые объединяют ИИ, терминальные интерфейсы, сетевое взаимодействие и системное программирование. Каждый проект можно собрать за 1–2 дня, если знаешь, с какой стороны подойти.
🧠 1. Self-Healing CLI‑агент (автоматический отладчик ошибок)
🔹 Идея: Напиши CLI-инструмент, который анализирует ошибки в Python‑скриптах и предлагает (или вносит) правки к коду автоматически с помощью LLM.
🔧 Как реализовать:
• Используй subprocess для запуска целевого скрипта и перехвата stderr
• Извлеки traceback → отправь в OpenAI / LM Studio через API
• Получи фикс → распарси результат и применяй его к AST с помощью RedBaron или ast
• Верифицируй: перезапусти код и проверь, исчезла ли ошибка
• Добавь флаг --auto-fix и интерактивный режим
🧩 Применение: автопомощник в CI/CD, дебагер в редакторах, обучающий инструмент
📡 2. P2P-блокнот с mesh-синхронизацией
🔹 Идея: Заметки, которые синхронизируются без облака — через локальную сеть или Bluetooth, используя ZeroConf.
🔧 Как реализовать:
• zeroconf для автоматического обнаружения других устройств
• sqlite как локальное хранилище + watchdog для отслеживания изменений
• pynacl для шифрования трафика
• Используй TCP/UDP сокеты для передачи изменений
• Можно добавить визуальный CLI с urwid или textual
🧩 Применение: приватные P2P‑заметки, оффлайн-заметки в экспедициях, лайтовый knowledge base
🧬 3. AI‑отладчик чужого репозитория
🔹 Идея: Инструмент, который загружает чужой репозиторий, строит граф зависимостей и автоматически находит баги, недочёты, недокументированный код — и объясняет их.
🔧 Как реализовать:
• gitpython для клонирования проекта
• networkx или pydeps для визуализации модульной структуры
• mypy, flake8, pylint и bandit для анализа
• Сводка отправляется в LLM (например, OpenAI API) для пояснений: "вот потенциально уязвимый участок, вот почему"
• Визуализируй через rich, graphviz, или в браузере через streamlit
🧩 Применение: ревью чужого кода, onboarding новых участников в open-source
🎮 4. CLI-игра с live‑физикой прямо в терминале
🔹 Идея: Реализуй рогалик или простую 2D-игру с настоящей физикой (гравитацией, столкновениями) в терминале.
🔧 Как реализовать:
• curses или blessed для отрисовки
• pymunk или box2d для физики (адаптируй под 2D-сцену)
• Все объекты — текстовые символы
• События обрабатываются через asyncio, и всё должно работать в real‑time
• Можно добавить оружие, отскоки, ловушки и интерактивные зоны
🧩 Применение: визуальное развлечение, обучение физике, красивое демо для хакатона
🕵️ 5. AI-инспектор Linux-системы
🔹 Идея: Создай скрипт, который в реальном времени следит за файлами, сетями, процессами, и при странной активности — показывает, почему это может быть подозрительно (с пояснением от ИИ).
🔧 Как реализовать:
• Используй psutil, inotify, socket, netifaces
• Собирай метрики: кто пишет в /tmp, кто открывает нестандартные порты, кто занимает слишком много CPU
• Фильтруй необычные события → формируй контекст → передавай в LLM
• ИИ объясняет: "этот процесс пытается слушать порт 4444 в фоне — это может быть реверс‑шелл"
• CLI-интерфейс через rich или textual
🧩 Применение: оффлайн-альтернатива Falcon / CrowdStrike, полезный тул
💡 Всё это можно собрать за 1–2 дня, если уже умеешь работать с Python-инструментами, API и системными вызовами. И каждый проект можно расширять в полноценный open-source продукт.
@pythonl
#python #weekendprojects #ai #cli #sysadmin #funprojects #hackathon #opensource
🎭 Playwright MCP: AI-доступ к браузеру через Model Context Protocol
Playwright MCP — это сервер Model Context Protocol поверх Microsoft Playwright, который позволяет LLM управлять полноценным браузером через структурированные данные, а не по скриншотам.
• Доступ к accessibility tree
– MCP-клиенты получают иерархию элементов страницы (кнопки, поля, ссылки) вместо изображений, что делает навигацию быстрой и детерминированной :contentReference[oaicite:0]{index=0}
• Множественные подключения
– Поддержка нескольких клиентов к одной сессии: одновременное тестирование, отладка и мониторинг без лишних запусках браузера :contentReference[oaicite:1]{index=1}
• AI-автогенерация тестов
– В режиме Agent Mode Playwright MCP может самостоятельно исследовать приложение и писать готовые тесты на основе его поведения :contentReference[oaicite:2]{index=2}
• Высокая производительность
– Обходится без тяжёлых компьютерного зрения и OCR, экономит ресурсы и снижает флакущие ошибки сравнения скриншотов
• Простая настройка
– Установка через npm/yarn и запуск:
npm install playwright
npx playwright launch --server
const { chromium } = require('playwright');
const browser = await chromium.connectOverCDP('ws://localhost:PORT');
🖥 Как написать ещё более ужасный Python-код: часть 2
Первая часть - Как написать худший возможный Python-код здесь.
Если тебе показалось, что хуже уже некуда — ты просто не включал всё сразу.
Вот продолжение правил, которые гарантируют страдания будущих читателей твоего кода.
14. Используй side‑effects везде
Изменяй список внутри функции, возвращай None, пусть никто не знает, что произошло.
def corrupt(data):
for i in range(len(data)):
data[i] = None
def handle_user_request(request):
log_request(request)
try:
response = requests.post(...)
save_to_db(json.loads(response.text)["data"])
except:
retry_later(request)
def outer():
def middle():
def inner():
print("deep")
inner()
middle()
from somewhere.unknown import *
import random
def calculate_discount():
return random.choice([0, 5, 10, 50])
user = {
"name": "Alice",
"age": "27",
"is_active": "true",
"joined": "2023-12-01"
}
try:
do_critical_operation()
except:
pass
print("entering loop")
print("value of x:", x)
print("loop end")
DEBUG_MODE = True
RETRY_COUNT = 3
import time
async def fetch_data():
time.sleep(3)
return "data"
def main():
# 600 строк бизнес-логики
pass
🐍 Python-задача: что выведет этот код с вложенными генераторами?
gen = (x for x in range(3))
def wrap(g):
return (x * 2 for x in g)
gen2 = wrap(gen)
print(list(gen))
print(list(gen2))
[0, 1, 2], [0, 2, 4] [0, 1, 2], [] [], [0, 2, 4] [0, 1, 2], Ошибкаitertools.tee для разветвления итератора.