This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Python ищет дубликаты файлов
Когда папка разрастается, дубликаты начинают тихо съедать место - особенно если ты сохраняешь одно и то же под разными именами.
Быстрый способ на Python - посчитать хеш каждого файла и собрать группы с одинаковым хешем. Так ты сразу увидишь, какие файлы реально одинаковые по содержимому, а не только по названию.
import os, hashlib
m = {}
for n in os.listdir("."):
if os.path.isfile(n):
with open(n, "rb") as f:
h = hashlib.md5(f.read()).hexdigest()
m.setdefault(h, []).append(n)
for v in m.values():
if len(v) > 1:
print("DUP:", v)
@Python_Community_ru
Когда папка разрастается, дубликаты начинают тихо съедать место - особенно если ты сохраняешь одно и то же под разными именами.
Быстрый способ на Python - посчитать хеш каждого файла и собрать группы с одинаковым хешем. Так ты сразу увидишь, какие файлы реально одинаковые по содержимому, а не только по названию.
import os, hashlib
m = {}
for n in os.listdir("."):
if os.path.isfile(n):
with open(n, "rb") as f:
h = hashlib.md5(f.read()).hexdigest()
m.setdefault(h, []).append(n)
for v in m.values():
if len(v) > 1:
print("DUP:", v)
@Python_Community_ru
🚀 RenderCV: Open-Source AI для создания CV/резюме на лету
RenderCV - это GitHub-проект, который автоматизирует генерацию профессионального резюме с помощью AI. Он берет базовые данные (например, профиль, опыт, навыки) и формирует красиво отформатированный CV с умным распределением разделов, прицелом на ATS-системы (системы автоматического трекинга резюме) и внимание к деталям.
🔍 Основные фишки
- 💡 AI-генерация контента - на основе вводимых данных автоматически создаются описания опыта, навыков и достижений
- 📄 Готовые шаблоны — вывод резюме в структурированном виде, готовом для печати или публикации
- ⚙️ Настраиваемость — легко адаптировать под свой стиль, менять поля и формат
- 🤖 Поддержка AI-логики для переработки сухих фактов в интересные, читабельные формулировки
Простой рабочий цикл:
1) Вводишь базовые данные (имя, опыт, навыки)
2) AI дописывает грамотные описания
3) Получаешь готовое резюме без лишних усилий
💡 Это особенно полезно начинающим специалистам, карьерным переходам или тем, кто не любит вручную вырезать и править резюме перед каждой подачей.
🛠 Пример использования (в духе проектов этого класса):
# Клонируем репозиторий
git clone https://github.com/rendercv/rendercv.git
# Переходим в папку
cd rendercv
# Устанавливаем зависимости и запускаем
# (инструкции могут отличаться в зависимости от реализации)
npm install
npm start
https://github.com/rendercv/rendercv
@Python_Community_ru
RenderCV - это GitHub-проект, который автоматизирует генерацию профессионального резюме с помощью AI. Он берет базовые данные (например, профиль, опыт, навыки) и формирует красиво отформатированный CV с умным распределением разделов, прицелом на ATS-системы (системы автоматического трекинга резюме) и внимание к деталям.
🔍 Основные фишки
- 💡 AI-генерация контента - на основе вводимых данных автоматически создаются описания опыта, навыков и достижений
- 📄 Готовые шаблоны — вывод резюме в структурированном виде, готовом для печати или публикации
- ⚙️ Настраиваемость — легко адаптировать под свой стиль, менять поля и формат
- 🤖 Поддержка AI-логики для переработки сухих фактов в интересные, читабельные формулировки
Простой рабочий цикл:
1) Вводишь базовые данные (имя, опыт, навыки)
2) AI дописывает грамотные описания
3) Получаешь готовое резюме без лишних усилий
💡 Это особенно полезно начинающим специалистам, карьерным переходам или тем, кто не любит вручную вырезать и править резюме перед каждой подачей.
🛠 Пример использования (в духе проектов этого класса):
# Клонируем репозиторий
git clone https://github.com/rendercv/rendercv.git
# Переходим в папку
cd rendercv
# Устанавливаем зависимости и запускаем
# (инструкции могут отличаться в зависимости от реализации)
npm install
npm start
https://github.com/rendercv/rendercv
@Python_Community_ru
🖥 PYTHON МАТЕМАТИКА КАК У ПРОФИ
Ппрофессиональный подход к математике в Python строится не вокруг «посчитать формулу», а вокруг правильного стека инструментов и воспроизводимости. Всегда разделяй символьную математику, численные методы и работу с данными.
Для аналитики и вывода формул используй SymPy, для быстрых численных расчётов - NumPy, для научных алгоритмов - SciPy, для больших таблиц экспериментов - Pandas.
Никогда не смешивай «магические числа» в коде - все параметры выноси в переменные. Работай в Jupyter или VS Code с ноутбуками, фиксируй версии библиотек и обязательно проверяй устойчивость решений через разные методы (например, интеграл численно и аналитически). Так код становится не просто расчётом, а научным инструментом.
import numpy as np
import sympy as sp
from scipy import integrate
# 1. Символьная математика
x = sp.symbols('x')
expr = sp.sin(x) / x
analytic_integral = sp.integrate(expr, (x, 1, 10))
# 2. Численная математика
f = lambda x: np.sin(x) / x
numeric_integral, error = integrate.quad(f, 1, 10)
# 3. Векторизация вместо циклов
arr = np.linspace(1, 10, 1_000_000)
fast_result = np.sin(arr) / arr
print("Analytic:", analytic_integral)
print("Numeric:", numeric_integral, "Error:", error)
@Python_Community_ru
Ппрофессиональный подход к математике в Python строится не вокруг «посчитать формулу», а вокруг правильного стека инструментов и воспроизводимости. Всегда разделяй символьную математику, численные методы и работу с данными.
Для аналитики и вывода формул используй SymPy, для быстрых численных расчётов - NumPy, для научных алгоритмов - SciPy, для больших таблиц экспериментов - Pandas.
Никогда не смешивай «магические числа» в коде - все параметры выноси в переменные. Работай в Jupyter или VS Code с ноутбуками, фиксируй версии библиотек и обязательно проверяй устойчивость решений через разные методы (например, интеграл численно и аналитически). Так код становится не просто расчётом, а научным инструментом.
import numpy as np
import sympy as sp
from scipy import integrate
# 1. Символьная математика
x = sp.symbols('x')
expr = sp.sin(x) / x
analytic_integral = sp.integrate(expr, (x, 1, 10))
# 2. Численная математика
f = lambda x: np.sin(x) / x
numeric_integral, error = integrate.quad(f, 1, 10)
# 3. Векторизация вместо циклов
arr = np.linspace(1, 10, 1_000_000)
fast_result = np.sin(arr) / arr
print("Analytic:", analytic_integral)
print("Numeric:", numeric_integral, "Error:", error)
@Python_Community_ru
Media is too big
VIEW IN TELEGRAM
🚀 Вышла интересная open-source модель - MiniCPM-o 4.5
MiniCPM-o 4.5 позиционируется как full-duplex omni-modal LLM.
Проще говоря, модель может:
- одновременно видеть (видео/изображение)
- слушать (аудио)
- говорить
и делать это в реальном времени, без режима "подожди, я сначала дослушаю". Больше похоже на живой диалог, чем на поочередные запросы.
Не только отвечает, но и проявляет инициативу
Заявлена поддержка проактивного поведения - модель может не просто реагировать на вопросы, а, например, сама инициировать напоминания или действия в рамках диалога.
По метрикам
С 9B параметрами модель показывает 77.6 на OpenCompass и, по авторам, обходит GPT-4o и Gemini 2.0 Pro в ряде vision-language задач. Для такого размера это сильный результат.
Практический момент
Главный плюс - это open-source, и всё можно крутить локально на ПК, а не только через облачные API.
https://huggingface.co/openbmb/MiniCPM-o-4_5
@Python_Community_ru
MiniCPM-o 4.5 позиционируется как full-duplex omni-modal LLM.
Проще говоря, модель может:
- одновременно видеть (видео/изображение)
- слушать (аудио)
- говорить
и делать это в реальном времени, без режима "подожди, я сначала дослушаю". Больше похоже на живой диалог, чем на поочередные запросы.
Не только отвечает, но и проявляет инициативу
Заявлена поддержка проактивного поведения - модель может не просто реагировать на вопросы, а, например, сама инициировать напоминания или действия в рамках диалога.
По метрикам
С 9B параметрами модель показывает 77.6 на OpenCompass и, по авторам, обходит GPT-4o и Gemini 2.0 Pro в ряде vision-language задач. Для такого размера это сильный результат.
Практический момент
Главный плюс - это open-source, и всё можно крутить локально на ПК, а не только через облачные API.
https://huggingface.co/openbmb/MiniCPM-o-4_5
@Python_Community_ru
🖥 Вы неправильно считываете JSON в Python.
Большинство делает так - и теряет скорость, память и контроль над данными.
Ошибка №1 - читать огромный JSON целиком
json.load() загружает ВСЁ в память. На больших файлах ты сам создаёшь себе OOM.
Ошибка №2 - не валидировать структуру
Ты думаешь, что поле есть. Прод думает иначе.
Ошибка №3 - парсить стандартным json там, где нужна скорость
Стандартный модуль медленный для high-load задач.
Как правильно:
- Большие файлы → читать потоково (ijson / построчно)
- Критичная скорость → использовать orjson
- Важные данные → сразу проверять ключи и типы
- API → оборачивать в try/except, а не надеяться
Продакшн-код работает не потому что “JSON простой”,
а потому что ты контролируешь объём, структуру и ошибки.
@Python_Community_ru
Большинство делает так - и теряет скорость, память и контроль над данными.
Ошибка №1 - читать огромный JSON целиком
json.load() загружает ВСЁ в память. На больших файлах ты сам создаёшь себе OOM.
Ошибка №2 - не валидировать структуру
Ты думаешь, что поле есть. Прод думает иначе.
Ошибка №3 - парсить стандартным json там, где нужна скорость
Стандартный модуль медленный для high-load задач.
Как правильно:
- Большие файлы → читать потоково (ijson / построчно)
- Критичная скорость → использовать orjson
- Важные данные → сразу проверять ключи и типы
- API → оборачивать в try/except, а не надеяться
Продакшн-код работает не потому что “JSON простой”,
а потому что ты контролируешь объём, структуру и ошибки.
@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
🕘 Таймер продуктивности на Python с использованием threading
Используйте библиотеку threading для создания простого таймера продуктивности, который поможет вам сосредоточиться на работе в течение заданного времени с последующим перерывом. Это поможет избежать выгорания и повысит продуктивность.
import threading
import time
def timer(duration, break_duration):
print(f"Начинаем работу на {duration} минут.")
time.sleep(duration * 60) # Длительность работы в секундах
print("Время на перерыв!")
time.sleep(break_duration * 60) # Длительность перерыва в секундах
print("Перерыв закончен, продолжайте работу!")
# Задайте длительность работы и перерыва
work_duration = 25 # в минутах
break_duration = 5 # в минутах
# Запускаем таймер
threading.Thread(target=timer, args=(work_duration, break_duration)).start()
@Python_Community_ru
Используйте библиотеку threading для создания простого таймера продуктивности, который поможет вам сосредоточиться на работе в течение заданного времени с последующим перерывом. Это поможет избежать выгорания и повысит продуктивность.
import threading
import time
def timer(duration, break_duration):
print(f"Начинаем работу на {duration} минут.")
time.sleep(duration * 60) # Длительность работы в секундах
print("Время на перерыв!")
time.sleep(break_duration * 60) # Длительность перерыва в секундах
print("Перерыв закончен, продолжайте работу!")
# Задайте длительность работы и перерыва
work_duration = 25 # в минутах
break_duration = 5 # в минутах
# Запускаем таймер
threading.Thread(target=timer, args=(work_duration, break_duration)).start()
@Python_Community_ru
👎2👍1
⚡️ Экосистема AI-агентов превратилась в настоящий джунгли.
Чем больше появляется фреймворков, тем сложнее их настраивать, дебажить и просто понимать, что происходит внутри. Поэтому особенно ценны инструменты, которые возвращают всё к простоте.
KISS Multi-Agent Evolutionary Framework 0 небольшой Python-фреймворк, который следует принципу: *Keep It Simple, Stupid*.
Что в нём интересного:
- Почти никакой магии - обычный Python и один run()
- Обычная функция с type hints автоматически становится tool через нативный function calling модели
- Без декораторов, лишних аннотаций и glue-кода
- Код читается и отлаживается как обычный Python
Агент работает по циклу ReAct:
думает → вызывает инструмент → анализирует результат → повторяет, пока не достигнет цели.
Нужно несколько агентов?
Всё просто: вызываете их последовательно в Python.
researcher → writer → editor
Можно использовать разные модели и строить пайплайны без сложной оркестрации.
Фреймворк также сохраняет trajectory-лог:
- шаги агента
- использование токенов
- время выполнения
- стоимость
Это позволяет быстро понять, где агент ошибся или начал тратить слишком много.
Но самая сильная часть — автоэволюция.
AgentEvolver
- создаёт множество вариантов агента
- применяет мутации и кроссовер
- выбирает лучшие по качеству, скорости и стоимости
GEPA (Genetic-Pareto)
- агент сам анализирует свои ответы и переписывает промпты
- используется Pareto-фронт
- сохраняется несколько оптимальных стратегий, а не одна
В итоге получается не просто агент, а самооптимизирующаяся система, которая ищет баланс между качеством и затратами.
Если устали от тяжёлых агент-фреймворков и хотите минимализм, прозрачность и контроль - KISS может стать отличной базой для ваших LLM-агентов.
https://github.com/ksenxx/kiss_ai
@Python_Community_ru
Чем больше появляется фреймворков, тем сложнее их настраивать, дебажить и просто понимать, что происходит внутри. Поэтому особенно ценны инструменты, которые возвращают всё к простоте.
KISS Multi-Agent Evolutionary Framework 0 небольшой Python-фреймворк, который следует принципу: *Keep It Simple, Stupid*.
Что в нём интересного:
- Почти никакой магии - обычный Python и один run()
- Обычная функция с type hints автоматически становится tool через нативный function calling модели
- Без декораторов, лишних аннотаций и glue-кода
- Код читается и отлаживается как обычный Python
Агент работает по циклу ReAct:
думает → вызывает инструмент → анализирует результат → повторяет, пока не достигнет цели.
Нужно несколько агентов?
Всё просто: вызываете их последовательно в Python.
researcher → writer → editor
Можно использовать разные модели и строить пайплайны без сложной оркестрации.
Фреймворк также сохраняет trajectory-лог:
- шаги агента
- использование токенов
- время выполнения
- стоимость
Это позволяет быстро понять, где агент ошибся или начал тратить слишком много.
Но самая сильная часть — автоэволюция.
AgentEvolver
- создаёт множество вариантов агента
- применяет мутации и кроссовер
- выбирает лучшие по качеству, скорости и стоимости
GEPA (Genetic-Pareto)
- агент сам анализирует свои ответы и переписывает промпты
- используется Pareto-фронт
- сохраняется несколько оптимальных стратегий, а не одна
В итоге получается не просто агент, а самооптимизирующаяся система, которая ищет баланс между качеством и затратами.
Если устали от тяжёлых агент-фреймворков и хотите минимализм, прозрачность и контроль - KISS может стать отличной базой для ваших LLM-агентов.
https://github.com/ksenxx/kiss_ai
@Python_Community_ru
🖥 Если ищете идеи и готовые решения для LLM-проектов — есть полезный репозиторий.
awesome-llm-apps - это коллекция production-готовых AI-приложений, которые можно запустить уже сегодня.
Что внутри:
→ Нужен RAG? Есть готовый код
→ Нужны AI-агенты? Есть примеры
→ Нужны multimodal-приложения? Тоже есть
→ Хотите собрать AI-SaaS? Базовая архитектура уже реализована
Главное отличие — здесь нет:
- учебных Hello World
- игрушечных демо
- упрощённых примеров
Только реальные приложения:
- с архитектурой
- интеграциями
- рабочей логикой
- которые можно доработать и задеплоить
Хороший вариант, если:
- не знаете, что строить на LLM в 2026
- хотите быстрее собрать MVP
- ищете референсы production-подходов
100% бесплатно
100% Open Source
Repo: https://github.com/Shubhamsaboo/awesome-llm-apps
@Python_Community_ru
awesome-llm-apps - это коллекция production-готовых AI-приложений, которые можно запустить уже сегодня.
Что внутри:
→ Нужен RAG? Есть готовый код
→ Нужны AI-агенты? Есть примеры
→ Нужны multimodal-приложения? Тоже есть
→ Хотите собрать AI-SaaS? Базовая архитектура уже реализована
Главное отличие — здесь нет:
- учебных Hello World
- игрушечных демо
- упрощённых примеров
Только реальные приложения:
- с архитектурой
- интеграциями
- рабочей логикой
- которые можно доработать и задеплоить
Хороший вариант, если:
- не знаете, что строить на LLM в 2026
- хотите быстрее собрать MVP
- ищете референсы production-подходов
100% бесплатно
100% Open Source
Repo: https://github.com/Shubhamsaboo/awesome-llm-apps
@Python_Community_ru
🔥2
Это репозиторий с реализацией DensePose через Wi-Fi-сигналы — то есть попытка получать плотные представления (DensePose) тела людей на основе Wi-Fi-данных, а не обычной камеры.
Такая идея может использоваться для анализа движения через радиосигналы в помещении, без видео-камер, с акцентом на приватность.
Если тебе интересны нестандартные подходы к компьютерному зрению, беспроводным сигналам и сенсорике без камер — обязательно посмотри.
🔗 Есть интересный проект: https://github.com/ruvnet/wifi-densepose
@Python_Community_ru
Такая идея может использоваться для анализа движения через радиосигналы в помещении, без видео-камер, с акцентом на приватность.
Если тебе интересны нестандартные подходы к компьютерному зрению, беспроводным сигналам и сенсорике без камер — обязательно посмотри.
🔗 Есть интересный проект: https://github.com/ruvnet/wifi-densepose
@Python_Community_ru
👎1
This media is not supported in your browser
VIEW IN TELEGRAM
LuxTTS - очень быстрый и компактный TTS с клонированием голоса
Модель со ставкой на скорость + реализм, при этом она остается лёгкой и доступной по ресурсам.
Главные фишки:
- ⚡ До 150× realtime при генерации речи
- 🎙️ Хорошая передача эмоций и естественности
- 🧬 Качественное voice cloning
- 💾 Влезает примерно в 1 ГБ VRAM
- 🖥️ Работает и на CPU - 2–6× realtime
Подходит для:
- голосовых ассистентов
- озвучки приложений
- быстрых прототипов без тяжёлой инфраструктуры
- LuxTTS работает как мульти-язычная TTS-модель, и русский входит в список языков.
Repo: https://github.com/ysharma3501/LuxTTS
Модель: https://huggingface.co/YatharthS/LuxTTS
@Python_Community_ru
Модель со ставкой на скорость + реализм, при этом она остается лёгкой и доступной по ресурсам.
Главные фишки:
- ⚡ До 150× realtime при генерации речи
- 🎙️ Хорошая передача эмоций и естественности
- 🧬 Качественное voice cloning
- 💾 Влезает примерно в 1 ГБ VRAM
- 🖥️ Работает и на CPU - 2–6× realtime
Подходит для:
- голосовых ассистентов
- озвучки приложений
- быстрых прототипов без тяжёлой инфраструктуры
- LuxTTS работает как мульти-язычная TTS-модель, и русский входит в список языков.
Repo: https://github.com/ysharma3501/LuxTTS
Модель: https://huggingface.co/YatharthS/LuxTTS
@Python_Community_ru
🤖 LingBot-VLA - это прогрессивная модель, объединяющая визуальные, языковые и действия для роботов.
Она обучена на 20,000 часов реальных данных и демонстрирует высокую эффективность и производительность в симуляциях и реальных задачах.
🚀 Основные моменты:
- Обширные данные для предобучения
- Превосходные результаты по сравнению с конкурентами
- Увеличенная скорость обучения на 1.5-2.8x
📌 GitHub: https://github.com/Robbyant/lingbot-vla
#python
@Python_Community_ru
Она обучена на 20,000 часов реальных данных и демонстрирует высокую эффективность и производительность в симуляциях и реальных задачах.
🚀 Основные моменты:
- Обширные данные для предобучения
- Превосходные результаты по сравнению с конкурентами
- Увеличенная скорость обучения на 1.5-2.8x
📌 GitHub: https://github.com/Robbyant/lingbot-vla
#python
@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Python-совет: не проверяйте длину — проверяйте объект
Python умеет проверять «пустоту» объектов напрямую - быстрее и читаемее.
Многие новички пишут так:
if len(items) > 0:
process(items)
Это лишняя операция.
Правильный способ — использовать truthiness.
Почему это лучше:
- Короче и понятнее
- Работает для списков, строк, словарей, set и других коллекций
- Соответствует Pythonic-стилю
- Не делает лишний вызов len()
Пример:
# Плохо
if len(items) > 0:
process(items)
# Хорошо
if items:
process(items)
# Проверка на пустоту
if not items:
print("Empty")
# Работает для разных типов
data = {}
if data:
print("Has data")
@Python_Community_ru
Python умеет проверять «пустоту» объектов напрямую - быстрее и читаемее.
Многие новички пишут так:
if len(items) > 0:
process(items)
Это лишняя операция.
Правильный способ — использовать truthiness.
Почему это лучше:
- Короче и понятнее
- Работает для списков, строк, словарей, set и других коллекций
- Соответствует Pythonic-стилю
- Не делает лишний вызов len()
Пример:
# Плохо
if len(items) > 0:
process(items)
# Хорошо
if items:
process(items)
# Проверка на пустоту
if not items:
print("Empty")
# Работает для разных типов
data = {}
if data:
print("Has data")
@Python_Community_ru
🚀 REAL-TIME СЕРВЕРЫ БЕЗ ЛИШНЕЙ СЛОЖНОСТИ
Если нужно быстро запускать веб-приложения с высокой производительностью и минимальной задержкой - посмотрите на WebRockets.
WebRockets — это лёгкий и быстрый фреймворк для создания веб-приложений и API с акцентом на скорость, простоту и минимальный overhead. Он подойдёт для проектов, где важны real-time взаимодействие и высокая нагрузка.
Когда полезно:
- Real-time приложения (чаты, уведомления, стриминг данных)
- Высоконагруженные API
- Dashboards и live-аналитика
- Backend для игр или trading-систем
- Любые сервисы, где важна низкая задержка
Что умеет:
- Работа через WebSocket для постоянного соединения
- Минимальная задержка и высокая пропускная способность
- Простая настройка и запуск
- Подходит для real-time архитектур
- Лёгкая интеграция в существующие backend-системы
Главная идея:
Обычный HTTP работает по принципу «запрос-ответ».
WebSocket держит постоянное соединение, позволяя серверу отправлять данные мгновенно без новых запросов — это основа современных real-time сервисов.
# Клонируем репозиторий
git clone https://github.com/ploMP4/webrockets.git
cd webrockets
# Установка зависимостей (если используется Node.js)
npm install
# Запуск сервера
npm start
# Пример простого WebSocket-сервера
const WebSocket = require("ws");
const wss = new WebSocket.Server({ port: 3000 });
wss.on("connection", (ws) => {
console.log("Client connected");
ws.send("Welcome!");
ws.on("message", (message) => {
console.log("Received:", message.toString());
ws.send(`Echo: ${message}`);
});
});
console.log("WebSocket server running on port 3000");
https://github.com/ploMP4/webrockets
@Python_Community_ru
Если нужно быстро запускать веб-приложения с высокой производительностью и минимальной задержкой - посмотрите на WebRockets.
WebRockets — это лёгкий и быстрый фреймворк для создания веб-приложений и API с акцентом на скорость, простоту и минимальный overhead. Он подойдёт для проектов, где важны real-time взаимодействие и высокая нагрузка.
Когда полезно:
- Real-time приложения (чаты, уведомления, стриминг данных)
- Высоконагруженные API
- Dashboards и live-аналитика
- Backend для игр или trading-систем
- Любые сервисы, где важна низкая задержка
Что умеет:
- Работа через WebSocket для постоянного соединения
- Минимальная задержка и высокая пропускная способность
- Простая настройка и запуск
- Подходит для real-time архитектур
- Лёгкая интеграция в существующие backend-системы
Главная идея:
Обычный HTTP работает по принципу «запрос-ответ».
WebSocket держит постоянное соединение, позволяя серверу отправлять данные мгновенно без новых запросов — это основа современных real-time сервисов.
# Клонируем репозиторий
git clone https://github.com/ploMP4/webrockets.git
cd webrockets
# Установка зависимостей (если используется Node.js)
npm install
# Запуск сервера
npm start
# Пример простого WebSocket-сервера
const WebSocket = require("ws");
const wss = new WebSocket.Server({ port: 3000 });
wss.on("connection", (ws) => {
console.log("Client connected");
ws.send("Welcome!");
ws.on("message", (message) => {
console.log("Received:", message.toString());
ws.send(`Echo: ${message}`);
});
});
console.log("WebSocket server running on port 3000");
https://github.com/ploMP4/webrockets
@Python_Community_ru
GitHub
GitHub - ploMP4/webrockets: High-performance rust powered websocket server for python
High-performance rust powered websocket server for python - ploMP4/webrockets
Python-баг, который выглядит безобидно… но ломает логику 👇
fruits = ["apple", "lime", "orange",
"pineapple", "orange"]
for f in fruits:
if f == "orange":
fruits.remove(f)
print(fruits)
Ожидание: оба orange удалятся.
Реальность: один orange остаётся.
Почему так происходит?
Ты изменяешь список во время итерации.
После удаления элементы сдвигаются, и цикл пропускает следующий элемент.
Это классический сценарий продакшн-багов:
• код выглядит правильно
• тесты могут пройти
• но данные обрабатываются неправильно
Правильный вариант:
fruits = [f for f in fruits if f != "orange"]
Мораль:
Изменяешь коллекцию во время обхода -Deploy first. Pray later.
#junior #python
@Python_Community_ru
fruits = ["apple", "lime", "orange",
"pineapple", "orange"]
for f in fruits:
if f == "orange":
fruits.remove(f)
print(fruits)
Ожидание: оба orange удалятся.
Реальность: один orange остаётся.
Почему так происходит?
Ты изменяешь список во время итерации.
После удаления элементы сдвигаются, и цикл пропускает следующий элемент.
Это классический сценарий продакшн-багов:
• код выглядит правильно
• тесты могут пройти
• но данные обрабатываются неправильно
Правильный вариант:
fruits = [f for f in fruits if f != "orange"]
Мораль:
Изменяешь коллекцию во время обхода -Deploy first. Pray later.
#junior #python
@Python_Community_ru
🚀 Погружение в алгоритмы AI без магии
no-magic — это коллекция однофайловых, независимых реализаций алгоритмов, которые лежат в основе современных ИИ. Каждый скрипт является самодостаточной программой, обучающей модель с нуля и выполняющей предсказания, без использования сложных библиотек.
🚀 Основные моменты:
- Один файл — один алгоритм, без внешних зависимостей.
- Полное обучение и предсказание в каждом скрипте.
- Читаемый код с обязательными комментариями для понимания.
- Работает на обычном CPU за разумное время.
📌 GitHub: https://github.com/Mathews-Tom/no-magic
#python
@Python_Community_ru
no-magic — это коллекция однофайловых, независимых реализаций алгоритмов, которые лежат в основе современных ИИ. Каждый скрипт является самодостаточной программой, обучающей модель с нуля и выполняющей предсказания, без использования сложных библиотек.
🚀 Основные моменты:
- Один файл — один алгоритм, без внешних зависимостей.
- Полное обучение и предсказание в каждом скрипте.
- Читаемый код с обязательными комментариями для понимания.
- Работает на обычном CPU за разумное время.
📌 GitHub: https://github.com/Mathews-Tom/no-magic
#python
@Python_Community_ru
🎥 Генерация видео с FireRed-OpenStoryline
FireRed-OpenStoryline упрощает создание видео, превращая его в интуитивный процесс общения. Система автоматически генерирует сценарии, подбирает музыку и шрифты, а также позволяет редактировать видео с помощью естественных языковых команд.
🚀 Основные моменты:
- 🌐 Умный поиск и организация медиа
- ✍️ Интеллектуальная генерация сценариев
- 🎵 Рекомендации по музыке и озвучке
- 💬 Редактирование через разговорные команды
- ⚡ Архивирование навыков редактирования
📌 GitHub: https://github.com/FireRedTeam/FireRed-OpenStoryline
@Python_Community_ru
FireRed-OpenStoryline упрощает создание видео, превращая его в интуитивный процесс общения. Система автоматически генерирует сценарии, подбирает музыку и шрифты, а также позволяет редактировать видео с помощью естественных языковых команд.
🚀 Основные моменты:
- 🌐 Умный поиск и организация медиа
- ✍️ Интеллектуальная генерация сценариев
- 🎵 Рекомендации по музыке и озвучке
- 💬 Редактирование через разговорные команды
- ⚡ Архивирование навыков редактирования
📌 GitHub: https://github.com/FireRedTeam/FireRed-OpenStoryline
@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Регулярные выражения для извлечения ссылок из HTML с помощью Python
Сохрани себе: извлечение всех ссылок со страницы с помощью регулярных выражений - это быстро и просто. Вот пример кода, который поможет тебе в этом.
import re
import requests
def extract_links(url):
response = requests.get(url)
html_content = response.text
links = re.findall(r'href=["\']?(https?://[^"\'>]+)', html_content)
return links
url = 'https://example.com'
all_links = extract_links(url)
print(all_links)
@Python_Community_ru
Сохрани себе: извлечение всех ссылок со страницы с помощью регулярных выражений - это быстро и просто. Вот пример кода, который поможет тебе в этом.
import re
import requests
def extract_links(url):
response = requests.get(url)
html_content = response.text
links = re.findall(r'href=["\']?(https?://[^"\'>]+)', html_content)
return links
url = 'https://example.com'
all_links = extract_links(url)
print(all_links)
@Python_Community_ru