Python/ django
по всем вопросам @haarrp @itchannels_telegram - 🔥 все ит каналы @ai_machinelearning_big_data -ML @ArtificialIntelligencedl -AI @datascienceiot - 📚 @pythonlbooks РКН: clck.ru/3FmxmM
Показати більше📈 Аналітичний огляд Telegram-каналу Python/ django
Канал Python/ django (@pythonl) у мовному сегменті Російська є активним учасником. На даний момент спільнота об'єднує 60 075 підписників, посідаючи 2 192 місце в категорії Технології та додатки та 10 214 місце у регіоні Росія.
📊 Показники аудиторії та динаміка
З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 60 075 підписників.
За останніми даними від 05 червня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на -562, а за останні 24 години на -8, загальне охоплення залишається високим.
- Статус верифікації: Не верифікований
- Рівень залученості (ER): Середній показник залученості аудиторії становить 6.76%. Протягом перших 24 годин після публікації контент зазвичай збирає 3.58% реакцій від загальної кількості підписників.
- Охоплення публікацій: В середньому кожен допис отримує 4 065 переглядів. Протягом першої доби публікація в середньому набирає 2 153 переглядів.
- Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 15.
- Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як github, claude, контекст, архитектура, api.
📝 Опис та контентна політика
Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
“по всем вопросам @haarrp
@itchannels_telegram - 🔥 все ит каналы
@ai_machinelearning_big_data -ML
@ArtificialIntelligencedl -AI
@datascienceiot - 📚
@pythonlbooks
РКН: clck.ru/3Fmxm...”
Завдяки високій частоті оновлень (останні дані отримано 07 червня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.
def paradox(n):
def f(x):
return ((x * x) % n + x) % n
slow = fast = 0
while True:
slow = f(slow)
fast = f(f(fast))
if slow == fast:
return slow
print(paradox(31337))
На первый взгляд — простой цикл с двумя указателями: slow и fast.
Но на деле это алгоритм Флойда ("заяц и черепаха"), используемый для нахождения цикла в псевдослучайной последовательности.
📌 Функция f(x):
Простая квадратичная функция, по сути — генератор псевдослучайных чисел по модулю n.
📌 Что происходит:
slow движется на 1 шаг за итерацию: f(x)
fast — на 2 шага: f(f(x))
Как только slow == fast, цикл найден — значит, последовательность начала повторяться.
🔍 Почему это парадокс?
Потому что вы начинаете с 0, вычисляете кучу якобы "случайных" значений, и внезапно обнаруживаете цикличность в хаосе.
Вы не знаете длину цикла, период или точку входа, но находите пересечение без хранения всей истории.
💡 Эта техника используется в:
криптографии (Pollard's rho для факторизации),
генерации чисел,
распознавании псевдопериодов,
хаотических системах.
🎯 Челлендж для продвинутых:
Измените f(x) на pow(x, 3, n) — как это повлияет на цикл?
Реализуйте поиск начала цикла и длины периода, используя Флойда + Брента.
Придумайте, как использовать это для взлома слабых генераторов случайных чисел.
🧠 Эта задача не просто про числа — она про границу между случайным и детерминированным..env
• В PyPI появились клоны requests, urllib3 и др., с вредоносными вставками
• В RubyGems — более 700 пакетов, использующих тайпосквоттинг (`activesupportt`, httpartyy и т.д.)
🎯 Цель — разработчики. Пакеты собирают:
– мнемоники
– приватные ключи
– конфиги AWS/GCP
– системную информацию
🛡 Что делать:
– Проверяй названия пакетов (тайпосквоттинг — главный приём)
– Запускай pip audit, npm audit, bundler audit
– Используй виртуальные окружения и минимум прав
– Подпиши зависимости, где это возможно (например, через Sigstore)
📌 Подробнее.env
• В PyPI появились клоны requests, urllib3 и др., с вредоносными вставками
• В RubyGems — более 700 пакетов, использующих тайпосквоттинг (`activesupportt`, httpartyy и т.д.)
🎯 Цель — разработчики. Пакеты собирают:
– мнемоники
– приватные ключи
– конфиги AWS/GCP
– системную информацию
🛡 Что делать:
– Проверяй названия пакетов (тайпосквоттинг — главный приём)
– Запускай pip audit, npm audit, bundler audit
– Используй виртуальные окружения и минимум прав
– Подпиши зависимости, где это возможно (например, через Sigstore)
📌 Подробнее
@pythonl
pip install -r requirements.txt
Затем можно запустить нужный скрипт напрямую, например:
python gravity_sim.py
Каждый файл представляет отдельную симуляцию, сопровождаемую визуализацией с помощью Pygame.
📌 Github
@pythonl.exe (PE-файлов) и визуализирует их структуру в удобной форме.
🧩 Что умеет ExeRay:
✅ Анализировать PE-файл и извлекать:
- Заголовки, секции, импорты/экспорты
- Таблицы ресурсов
- Используемые API и библиотеки
- Suspicious patterns и аномалии
✅ Генерировать отчёт в HTML
✅ Работает полностью офлайн
✅ Поддержка анализа несколькими методами (pefile + custom парсеры)
📦 Пример использования:
python main.py -f malware.exe
После чего ты получаешь красивый и подробный отчёт по всем ключевым параметрам PE-файла.
💻 Технологии:
- Python 3
- pefile, matplotlib, pyvis для графов зависимостей
- Простая CLI и понятный код — легко расширить под свои задачи
🧠 Кому подойдёт:
- Reverse Engineers
- Malware Analysts
- Red/Blue Teams
- Python-разработчикам, интересующимся PE-структурой и безопасностью
🔥 Если ты работаешь с .exe, и хочешь быстро понять, что внутри — ExeRay сэкономит часы ручного анализа.
📁 Репозиторий:
@pythonl
def log_event(event, metadata={}):
metadata["event"] = event
print(metadata)
На первый взгляд — всё работает. Но при многократных вызовах функции происходит что-то странное:
log_event("start")
log_event("stop")
log_event("error", {"code": 500})
log_event("retry")
👀 Вывод:
{'event': 'start'}
{'event': 'stop'}
{'code': 500, 'event': 'error'}
{'code': 500, 'event': 'retry'}
🔍 Что пошло не так? Почему code: 500 появляется там, где его быть не должно?
🧩 Задача:
1. Найди и объясни источник бага
2. Почему Python не выбрасывает ошибку?
3. Как проверить, что дефолтный аргумент сохраняет состояние между вызовами?
4. Как это исправить безопасно и "по питоновски"?
5. Где ещё может проявиться аналогичный эффект?
🛠 Разбор и решение:
🔸 Причина:
Изменяемое значение (`dict`) используется как значение по умолчанию.
В Python значения по умолчанию вычисляются один раз при определении функции, а не при каждом вызове.
То есть metadata={} создаётся один раз и сохраняется между вызовами, если параметр не передан.
🔸 Проверка:
def f(d={}):
print(id(d))
d["x"] = 1
print(d)
f()
f()
Вы увидишь одинаковые id(d) — значит, используется тот же объект.
🔸 Решение (правильный способ):
def log_event(event, metadata=None):
if metadata is None:
metadata = {}
metadata["event"] = event
print(metadata)
Теперь при каждом вызове создаётся новый словарь, и code: 500 не "протекает" в следующие вызовы.
🔸 Где ещё встречается:
- Списки: items=[]
- Множества: visited=set()
- Объекты пользовательских классов
📌 Вывод:
Изменяемые значения по умолчанию — одна из самых частых ошибок в Python. Она не вызывает исключений, но может незаметно повредить данные. Всегда используй None + инициализацию внутри функции для изменяемых типов.
@pythonlos — работа с файловой системой, путями, переменными окружения
https://docs.python.org/3/library/os.html
🔸 subprocess — запуск внешних команд и управление ими
https://docs.python.org/3/library/subprocess.html
🔸 psutil — мониторинг процессов, ресурсов, дисков, сети
https://pypi.org/project/psutil/
🔸 platform — информация об ОС, архитектуре, версии Python
https://docs.python.org/3/library/platform.html
🔸 socket — сетевые соединения и сокеты
https://docs.python.org/3/library/socket.html
🔸 pwd — доступ к информации о пользователях Unix
https://docs.python.org/3/library/pwd.html
🔸 pathlib — удобная работа с путями в ООП-стиле
https://docs.python.org/3/library/pathlib.html
🔸 shutil — копирование, удаление, архивация файлов и директорий
https://docs.python.org/3/library/shutil.html
🔸 tarfile — создание и извлечение `.tar`-архивов
https://docs.python.org/3/library/tarfile.html
📦 Эти модули — основа для написания удобных и мощных CLI-утилит, скриптов и системных инструментов.
@pythonl
git clone https://github.com/ReisCook/Voice_Extractor.git
cd Voice_Extractor
pip install -r requirements.txt
python extract_voice.py --file_path your_audio_file.mp3
📎 GitHub: https://github.com/ReisCook/Voice_Extractor
@pythonldict — доступ по ключу
• работает как list — доступ по индексу
• сохраняет порядок вставки
• поддерживает .index(key) и .key_at(i)
📌 Задача: Реализуй класс IndexedDict, который делает всё это.
🔍 Пример использования:
d = IndexedDict()
d["a"] = 10
d["b"] = 20
d["c"] = 30
print(d["a"]) # 10
print(d[0]) # 10
print(d[1]) # 20
print(d.key_at(1)) # "b"
print(d.index("c")) # 2
for k in d:
print(k, d[k]) # перебор по ключам
⚠️ Подвох:
• Просто наследовать dict не получится — d[0] будет интерпретироваться как ключ, а не индекс
• Придётся реализовать двойную логику доступа вручную
• Нужно корректно поддержать __iter__, __getitem__, __len__ и др.
✅ Решение:
```python
from collections.abc import MutableMapping
class IndexedDict(MutableMapping):
def __init__(self):
self._data = {}
self._keys = []
def __getitem__(self, key):
if isinstance(key, int):
real_key = self._keys[key]
return self._data[real_key]
return self._data[key]
def __setitem__(self, key, value):
if key not in self._data:
self._keys.append(key)
self._data[key] = value
def __delitem__(self, key):
if key in self._data:
self._keys.remove(key)
del self._data[key]
def __iter__(self):
return iter(self._keys)
def __len__(self):
return len(self._data)
def index(self, key):
return self._keys.index(key)
def key_at(self, idx):
return self._keys[idx]
```
📈 Зачем это нужно:
• Отличная тренировка на переопределение магических методов
• Часто встречается в фреймворках (Pandas, SQLAlchemy)
• Тестирует знание ABC-классов (`collections.abc.MutableMapping`)
• Полезно для построения кастомных структур данных
Хочешь версию с `__contains__`, `__reversed__`, типизацией и сериализацией — пиши 💬
@pythonlconfig.yaml: логин/пароль или токен VK + данные Telegram API
• Поддерживает прокси (SOCKS5) — для обхода блокировок
• Гибко настраиваемый интервал проверки новых постов (по умолчанию — 1 час)
• Фильтрует записи по чёрному списку и стоп-словам
• Добавляет заголовки и футеры с поддержкой Markdown
• Работает в Docker — легко разворачивается на сервере
TG_AutoPoster — готовое решение для автоматического кросспостинга из ВК в Telegram 💬
▪ Github
@pythonl
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
