pythonportal | Unsorted

Telegram-канал pythonportal - Python Portal

58174

Всё самое интересное из мира Python Связь: @devmangx РКН: https://clck.ru/3GMMF6

Subscribe to a channel

Python Portal

Языки программирования и их создатели по возрасту 😎

👉 @PythonPortal

Читать полностью…

Python Portal

Перевод текста с экрана в реальном времени теперь с открытым исходным кодом.

Он считывает и переводит текст из игр, видео, субтитров — вообще всего, что у тебя на экране. Мгновенно.

Раньше: сделать скриншот → скопировать → вставить → ждать обработки.
Теперь: просто работает в фоне. Я читаю японские питч-деки в реальном времени.

Ноль затрат на API. Всё работает локально. Open source.

👉 @PythonPortal

Читать полностью…

Python Portal

Самый полный список видеокурсов по Computer Science в интернете.

cs-video-courses — 78K+ звёзд.

MIT.
Stanford University.
University of California, Berkeley.
Harvard University.
Carnegie Mellon University.
Indian Institutes of Technology.
Princeton University.
California Institute of Technology.

Всё бесплатно. Все лекции — в формате видео. Всё собрано в одном репозитории.

Темы:

→ Структуры данных и алгоритмы
→ Операционные системы
→ Распределённые системы
→ Системы баз данных
→ Компьютерные сети
→ Машинное обучение
→ Глубокое обучение
→ Обработка естественного языка (NLP)
→ Компьютерное зрение
→ Компьютерная графика
→ Безопасность
→ Квантовые вычисления
→ Робототехника
→ Блокчейн

От начального уровня (CS50) до продвинутого (6.824 Distributed Systems).

Учебная программа бесплатная. 🤙

👉 @PythonPortal

Читать полностью…

Python Portal

Люди — корень всех проблем. 😆

👉 @PythonPortal

Читать полностью…

Python Portal

Практики, которые раздражают других инженеров данных

Отсутствие аннотаций типов — это неуважение к себе и к другим, кто использует ваши пайплайны. Код, который вы пишете, не только для выполнения, но и для коммуникации.

В инженерии данных аннотации типов служат контрактом между шагами пайплайна, чётко определяя, какой тип данных функция ожидает и какой тип данных она вернёт. Это делает пайплайны более предсказуемыми и проще для отладки, так как каждая функция заранее сообщает свои требования.

Это выглядит нормально, но...

def enrich_user_names(df, user_lookup=None):
pass


Это не говорит, что такое df, какого типа user_lookup, или что функция должна вернуть. Теперь представьте, что это часть производственного пайплайна с 10+ участниками. Такая неопределённость становится багом.

Вот так будет лучше:

def enrich_user_names(
df: pd.DataFrame,
user_lookup: Optional[Dict[int, str]] = None
) -> pd.DataFrame:
pass


Чёткая коммуникация с самого начала. Каждый, кто увидит эту функцию, точно будет знать, что ожидать. Вот что значит чёткая коммуникация. Аннотации типов — в помощь

👉 @PythonPortal

Читать полностью…

Python Portal

👉 @PythonPortal

Читать полностью…

Python Portal

Кто-то сейчас делает веб-браузер с нуля.

Не форкает Chromium
Не использует WebKit
Не заимствует ничего из Gecko

С нуля.

Вот почему это почти безумная затея.

Практически все браузеры, которыми вы пользуетесь сегодня — Chrome, Edge, Brave, Opera, Arc, Samsung Internet — работают на Chromium. Safari работает на WebKit, от которого в своё время произошёл Chromium. Firefox — единственный независимый движок, и его доля рынка снижается уже больше десяти лет.

Браузерный движок — одна из самых сложных систем, о которой большинство людей даже не задумывается. Он парсит HTML, исполняет JavaScript, реализует CSS, обрабатывает криптографию, декодирует изображения, воспроизводит видео, управляет памятью — и всё это одновременно, для каждой вкладки, при этом поддерживая границу безопасности между вашей машиной и интернетом.

Создать такой движок с нуля — это то, что никому не удавалось успешно сделать уже больше десяти лет.

И всё же Ladybird это делает.

Более 1200 контрибьюторов. Каждый слой написан с нуля:

> LibWeb — движок рендеринга
> LibJS — JavaScript-движок
> LibWasm — WebAssembly
> LibCrypto / LibTLS — криптография
> LibGfx — графика
> LibMedia — аудио и видео

Каждая вкладка работает в отдельном sandboxed-процессе. Сетевые соединения и декодирование изображений вынесены в отдельные процессы, чтобы вредоносная страница не могла добраться до остальной системы.

Пока это pre-alpha. Релизов ещё нет. Но уже более 61K звёзд.

Когда один движок контролирует веб, одна компания фактически решает, каким будет интернет.

Именно эту проблему и пытается решить Ladybird.

👉 @PythonPortal

Читать полностью…

Python Portal

RAG не работает в 2026 году, если вы всё ещё используете старые подходы.

Да, многие компании до сих пор фейлятся с RAG — не потому что делают его неправильно, а потому что застряли на устаревших техниках.

Обычно всё происходит так: большинство компаний начинают с чат-бота / chat-приложения, когда говорят про внедрение AI. И здесь RAG становится ключевым — чтобы подключить свои данные через базу и дать чат-приложению возможность доставать релевантные документы.

Но сегодня RAG уже не ограничивается только чатами. Применения RAG практически безграничны и это хорошо.

RAG по-прежнему остаётся базой для всего, что вы строите на LLM и AI-агентах. Изменилось только одно — сами техники RAG. Старый подход больше не работает, нужны более продвинутые техники — то, что сейчас называют advanced RAG.

Суть RAG — обогащать систему своими данными через базу, чтобы она могла находить релевантные документы или их части. Результаты при этом простые и зачастую «окей», особенно если документы хорошо структурированы и их немного.

Но когда документы неструктурированы и важно получать не просто точные документы, а ещё и правильный контекст, в дело вступают продвинутые техники:

- декомпозиция запроса (query decomposition)
- обогащение метаданными (metadata enrichment)
- гибридная индексация (hybrid indexing)
- reranking
- слияние контекста (context fusion)

Эти подходы позволяют RAG-системе находить и генерировать более точные и контекстно релевантные ответы.

Поэтому advanced RAG — это важно. RAG не умер и не может умереть. Просто используйте более умные техники.

👉 @PythonPortal

Читать полностью…

Python Portal

🙂🙂🙂

👉 @PythonPortal

Читать полностью…

Python Portal

😂😂😂

👉 @PythonPortal

Читать полностью…

Python Portal

3 года назад, чувак создал браузер на базе Chromium, который полностью работает прямо в терминале.

Он называется Carbonyl и умеет отображать реальные веб-страницы прямо в командной строке. Самое крутое — в режиме простоя он использует 0% CPU.

- Полноценный движок Chromium прямо в терминале.
- В режиме ожидания — ровно 0% загрузки CPU.
- Быстрый, лёгкий и полностью нативный для терминала.

На 100% с открытым исходным кодом.

👉 @PythonPortal

Читать полностью…

Python Portal

Вот несколько полезных библиотек Python для разработки сетевых приложений 😎

👉 @PythonPortal

Читать полностью…

Python Portal

Все надоело и пропал интерес, чувствуешь себя амебой и хочется только залипать в телефоне. Бывает?

Homo Manifestans — канал для айтишников, у которых периодически опускаются руки и отключается мозг, ибо переработки и постоянная тревожность не приводят к другим исходам 🤗

✓ Как научиться отвлекаться от работы и отдыхать?
✓ Как совместить кучу рабочих задач и время с семьей?
✓ Как справиться с прокрастинацией?
✓ Как не растерять запал, даже если начальник и коллеги 💩 и кажется, что ничего не выходит?

Подписывайтесь на канал @vadimpetrovpsi и научитесь работать без упахивания, выгорания и ущерба для личной жизни!

Псс. Заходите в закреп — там много полезного, и даже бесплатный мини-курс по выходу из апатии:
👉 /channel/+ou2-l5lmzUU3NTQy

Читать полностью…

Python Portal

Никуда вам от меня не деться

👉 @PythonPortal

Читать полностью…

Python Portal

Китай заопенсорсил крупный Python-фреймворк для создания AI-агентов.

Он называется AgentScope — это Python-фреймворк, построенный вокруг Agent-Oriented Programming, который позволяет визуально собирать AI-агентов с использованием MCP-инструментов, памяти, RAG и возможностей reasoning.

На 100% open source.

👉 @PythonPortal

Читать полностью…

Python Portal

Свойства и методы

Если вы хотите узнать свойства и методы объекта или модуля, используйте функцию dir(). Ниже мы проверяем свойства и методы строкового объекта.

my_str = 'I love Python'
print(dir(my_str))


['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__',
'__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__',
'__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__',
'__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__repr__',
'__setattr__', '__sizeof__', '__str__', '__subclasshook__',
'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith',
'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha',
'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join',
'lower', 'lstrip', 'replace', 'rfind', 'rstrip', 'split',
'startswith', 'strip', 'upper']


Вы также можете использовать функцию dir(), чтобы посмотреть свойства и методы модулей. Например, если вы хотите узнать свойства, методы, атрибуты, классы и функции, доступные в модуле collections, можно использовать следующий код:

import collections
print(dir(collections))


['ChainMap', 'Counter', 'OrderedDict', 'UserDict', 'UserList',
'UserString', '__all__', '__builtins__', '__cached__', '__doc__',
'__file__', '__loader__', '__name__', '__package__', '__path__',
'__spec__', '_chain', '_collections_abc', '_count_elements',
'_eq', '_iskeyword', '_itemgetter', '_proxy', '_recursive_repr',
'_repeat', '_starmap', '_sys', '_tuplegetter', 'abc',
'defaultdict', 'deque', 'namedtuple']


Один из эффективных способов использования функции dir() — проверить, доступен ли конкретный атрибут у объекта. Например, с помощью этой функции можно проверить, есть ли у списка атрибут __len__.

my_list = [1, 2, 3, 4]
print('__len__' in dir(my_list))


True


Этот код возвращает True, потому что __len__ является одним из атрибутов объекта списка.

👉 @PythonPortal

Читать полностью…

Python Portal

Два разработчика, ведущие разработку в одной ветке.

👉 @PythonPortal

Читать полностью…

Python Portal

Люди и агенты писали бы код лучше, если бы можно было легко проверить, какие значения переменные обычно принимают в продакшене.

Хотя подобные подходы уже встречались (в каком-то смысле ещё со времён Smalltalk), Darklang выделяется как заметный пример: у каждой функции есть примеры прошлых HTTP-запросов, и можно увидеть, как реальные данные проходят через неё.

Ещё в 2018 году я немного исследовал похожую идею: что если можно кликнуть на любую функцию в коде и увидеть примеры прошлых входных и выходных данных?

Удалось трассировать/записывать произвольные программы на Ruby (очень медленно) благодаря гибкости интерпретатора Ruby. Можно было даже записать выполнение тестов и затем использовать это как примеры данных при чтении кода.

https://geoffreylitt.com/margin-notes/

Есть серьёзные сложности, чтобы сделать это реально рабочим. Записывать большой объём детального runtime-состояния — сложно и дорого по ресурсам. А удобно показывать это состояние прямо в редакторах кода исторически тоже было непросто (хотя сейчас, с агентами, ситуация быстро меняется — в чём-то становится проще).

В целом же runtime-состояние до сих пор сильно недоиспользуется в интерфейсах разработки, а агрегированные данные из продакшена — тем более. Людям и агентам гораздо полезнее видеть конкретные данные, а не только абстрактную логику.

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

👉 @PythonPortal

Читать полностью…

Python Portal

Когда вам когда-либо нужно было добавить математическое описание для вашей функции на Python, но вы обнаруживали, что это занимает слишком много времени?

Непрограммисты не могут легко читать логику Python. Однако вручную конвертировать её в LaTeX — это медленно, и быстро становится устаревшим по мере изменения кода.

latexify_py решает эту проблему с помощью одного декоратора, генерируя LaTeX прямо из вашей функции, чтобы математика оставалась читаемой и всегда синхронизированной с кодом.

Основные возможности:
• Три декоратора для разных выводов: выражения, полные уравнения или псевдокод
• Отображает отрендеренный LaTeX прямо в ячейках Jupyter
• Функции продолжают работать нормально при вызове

Кроме того, latexify_py — это open source. Установите с помощью "pip install latexify-py".

Статья о 3 инструментах, которые конвертируют код Python в LaTeX: https://bit.ly/3Pw89yP
Запустите этот код: https://bit.ly/4bW2ycE

👉 @PythonPortal

Читать полностью…

Python Portal

🎮 Хочешь зарабатывать на играх, а не только играть?

Игровая индустрия растёт каждый год — и ей нужны специалисты.

В XYZ School обучают профессиям, без которых не создаётся ни одна игра:

🧠 Гейм-дизайнер
🖌 Концепт художник
📱 Тестировщик мобильных игр
🎬 Специалист по визуальным эффектам
💻 Разработчик игр (Unity, Unreal Engine, C#, C++)
🎨 Художник трехмерных моделей (3D-художник)

На курсах ты не просто смотришь лекции — выполняешь практические задания, собираешь портфолио и работаешь под руководством специалистов, которые участвовали в проектах вроде Doom, Fortnite и Metro.

🚀 Начать можно без опыта.
👉🏻 Посмотреть курс

Erid: 2SDnjdtoshK
Название: ООО "ИКС ВАЙ ЗЕТ НЕТВОРК"
ИНН: 9705150153

Читать полностью…

Python Portal

Распаковка словаря

Существует несколько способов распаковать словарь, чтобы извлечь его ключи и значения в отдельные переменные или структуры данных.

- Использование функции list для извлечения ключей

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

my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}

# Извлечение ключей словаря
dict_keys = list(my_dict)
dict_keys


['name', 'age', 'city']


- Использование оператора (двойная звёздочка)

Если у вас есть функция, которая принимает значения словаря в качестве аргументов, вы можете использовать оператор ``, чтобы распаковать значения словаря при вызове функции. Ниже у нас есть функция, принимающая значения из словаря как аргументы. Мы используем оператор ** в словаре при вызове функции. Это распаковывает значения словаря и передаёт их в качестве аргументов функции.

def display_info(name, age, city):
print(f"Your name is {name}. You are {age} years old. "
f"You live in {city}")

my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
display_info(**my_dict)


Your name is John. You are 30 years old. You live in New York


👉 @PythonPortal

Читать полностью…

Python Portal

lmao 😂

👉 @PythonPortal

Читать полностью…

Python Portal

При написании научных статей или работе с исследовательскими отчётами приходится использовать LaTeX для вёрстки, запускать Python-скрипты и постоянно переключаться между редактором и AI-веб-страницами.

Недавно, просматривая GitHub, наткнулся на open-source проект под названием ClaudePrism — это локальный десктопный клиент, специально заточенный под академическое и исследовательское письмо.

В нём есть встроенный офлайн-компилятор LaTeX, среда выполнения Python и AI-ассистент для написания текстов, при этом все файлы хранятся локально.

Также в нём есть более 100 профессиональных skill-паков для разных научных областей: биоинформатика, хемоинформатика, машинное обучение и другие.

Плюс есть фича Q&A по скриншотам — можно выделить формулу или график из PDF и сразу отправить в AI с вопросом, а также таким образом разбирать комментарии рецензентов.

👉 @PythonPortal

Читать полностью…

Python Portal

Кто-то недавно сделал инструмент, который генерирует и визуализирует сложные 3D particle systems просто по текстовому промпту.

Ты описываешь, что нужно — он сам собирает физику и сразу отдаёт готовый код на React или three.js.

Полностью бесплатно.

👉 @PythonPortal

Читать полностью…

Python Portal

Проверка на анаграммы

У вас есть две строки; как проверить, являются ли они анаграммами? Анаграммы — это слова или фразы, содержащие один и тот же набор символов, но в другом порядке. Например, “listen” и “silent” — анаграммы друг друга, потому что используют одни и те же буквы.

Если вы хотите проверить, являются ли две строки анаграммами, можно использовать Counter() из модуля collections. Counter() поддерживает проверку на равенство. По сути, мы можем использовать его, чтобы проверить, равны ли переданные объекты. В приведённом ниже коде мы проверяем, являются ли a и b анаграммами.

from collections import Counter

my_word = 'test'
another_word = 'stot'
print(Counter(my_word.casefold()) == Counter(another_word.casefold()))


Вывод: True

Мы также можем использовать функцию sorted() для проверки, являются ли две строки анаграммами. По умолчанию функция sorted() сортирует переданную строку по возрастанию. Поэтому, когда мы передаём строки в sorted() и сравниваем их на равенство, сначала строки сортируются, а затем сравниваются. См. код ниже:

def check_anagrams(str1, str2):
return sorted(str1) == sorted(str2)

my_word = 'lost'
another_word = 'stol'
result = check_anagrams(my_word, another_word)
print(result)


Если вы не хотите использовать какие-либо встроенные методы, можно воспользоваться ручным подходом. В этом методе вы пишете код, чтобы проверить, содержат ли обе строки одинаковые символы.

def check_anagrams(str1, str2):
if len(str1) != len(str2):
return False
for char in str1:
if str1.count(char) != str2.count(char):
return False
return True

my_word = 'lost'
another_word = 'stol'
print(check_anagrams(my_word, another_word))


Вывод: True

В этом коде сначала проверяется, имеют ли строки одинаковую длину. Если длины различаются, функция возвращает False.

👉 @PythonPortal

Читать полностью…

Python Portal

После тысячи видео "Стань Python-разработчиком с 0 до PRO" нашли видео для джунов, которые уже знают базу и не хотят опять слушать про print("Hello, World!")

Если уже знаешь синтаксис и основные конструкции в питоне, но застрял на уровне джуна, то видео точно будет полезно. Как мы поняли, это первая часть. В ней про Pydantic, ООП и декораторы настолько понятно, насколько это вообще возможно. К концу второй части обещают подтянуть 😊

👉 @PythonPortal

Читать полностью…

Python Portal

Microsoft открыла исходники комплексной обучающей программы по Rust

Репозиторий microsoft/RustTraining на GitHub содержит 7 структурированных «книг», охватывающих Rust от начального до экспертного уровня, с учётом разработчиков из разных стеков:

Bridge-книги (начать отсюда):
• Rust для C/C++ разработчиков
• Rust для C# разработчиков
• Rust для Python разработчиков

Deep Dive: Async Rust (Tokio, стримы, отмена задач)
Advanced: Rust Patterns (Pin, аллокаторы, lock-free структуры)
Expert: Type-Driven Correctness (type-state, phantom types)
Practices: Rust Engineering (CI/CD, кросс-компиляция, Miri)

Каждая книга включает 15–16 глав, диаграммы Mermaid, интерактивные Rust playground’ы и практические задания.

Независимо от того, вы системный программист, переходящий с C++, .NET-разработчик, изучающий high-performance код, или Python-разработчик, уставший от GIL — здесь есть понятный путь.

Уже более 500 звёзд. Полностью open-source (MIT + CC-BY-SA-4.0).

Rust всё увереннее закрепляется в индустриальном стеке. Если вы ждали структурированный способ его изучить — это он.

100% опенсорс

👉 @PythonPortal

Читать полностью…

Python Portal

termaid —— Python CLI-инструмент, который напрямую рендерит Mermaid в Unicode-диаграммы прямо в терминале.

Когда работаешь в SSH, TUI или CLI-пайплайнах, не нужно переключаться в браузер, чтобы посмотреть диаграмму. Инструмент уже поддерживает основные типы: flowchart, sequence, class, ER, state, treemap, pie. При этом он полностью на Python и без зависимостей — что особенно важно для CLI-утилит.

100% опенсорс

👉 @PythonPortal

Читать полностью…

Python Portal

Весна для многих в индустрии началась с сюрпризов, и это не подснежники 💩

Но мы с вами и не с таким справлялись, да? Поэтому давайте сделаем себе что-то приятное :)

🤩🤩🤩 В апреле мы в @qa_guru разыграем сразу 2 полных гранта на годовые программы по автоматизации тестирования.

QA Automation Engineer на Python
QA Automation Engineer на Java

Для этого:

26 марта (уже в четверг!)
в 13:00 МСК

Приходи на бесплатный карьерный вебинар «QA в 2026: кто вырастет в доходе, а кто исчезнет с рынка».

Занять место тут

Каждый участник встречи получит свой номер. А гранты разыграем среди тех, кто купит любую из годовых программ до 31 марта.

Что будет на встрече?

Наш эфир — продолжение февральской темы, по которой мы получили от вас много вопросов.

— Поговорим, как изменилась роль QA.

— Дадим список навыков, которые усиливают ценность QA-инженера и влияют на доход.

— Расскажем, заменит ли ИИ тестировщиков и как использовать его в своих целях.

— И куда двигаться дальше, план развития на 3–6 месяцев.

— Обсудим резюме: что реально повышает отклики, а что уже не работает.

Там же откроем специальные цены на курсы только для участников эфира.

Если ты уже в QA, думаешь про автоматизацию или ищешь работу — приходи.

Узнаешь много полезного бесплатно и получишь готовый карьерный план.

🤩 А если давно хотел пойти учиться, то это шанс забрать год бесплатно.

Займи место здесь

Читать полностью…

Python Portal

Ты можешь разрабатывать и тестировать облачные приложения полностью офлайн, без подключения к интернету

Есть gofakes3 — лёгкая реализация S3 для тестирования без AWS. Она позволяет мокать облачное хранилище прямо на твоей машине.

- Нулевые расходы на облако для локального тестирования
- Можно тестировать интеграции с S3 офлайн
- Лёгкий и простой в настройке

На 100% open source

👉 @PythonPortal

Читать полностью…
Subscribe to a channel