Python_BE1
9 subscribers
748 photos
252 videos
7 files
672 links
Канал по Python, полезный и интересный контент для всех уровней.
По вопросам сотрудничества @cyberJohnny
Download Telegram
🤖 ChatGPT обошел почти всех элитных программистов — выжил только один

На соревновании по оптимизационным алгоритмам модель от OpenAI вышла в финал 16 июля, сразу захватила лидерство…

Но под конец её обошёл Psyho — бывший программист команды OpenAI.

📌 Главное:
— внутренняя кодовая модель OpenAI показывает безумную эффективность

— возможно, это последняя победа человека

Дальше будет только сложнее.

@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
Когда единственный DevOps ушел в отпуск на неделю, но прод начал отдавать 500

8️⃣

@python_be1
👩‍💻 MegaParse (https://github.com/QuivrHQ/MegaParse) — высокопроизводительный парсер, который способен преобразовывать всевозможные типы документов (Word документы, PDF-файлы или даже презентации PowerPoint)!

🌟 Его основная цель — преобразовывать информацию из документов в текст для LLM, при этом минимизируя различные потери данных.

🔐 Лицензия: Apache-2.0

🖥 Github (https://github.com/QuivrHQ/MegaParse)

@python_be1
🖥 Что выведет код ниже?
```

def append_to_list(val, my_list=[]):
my_list.append(val)
return my_list

print(append_to_list(1))
print(append_to_list(2))
print(append_to_list(3))

```
🤯 Подвох
Многие думают, что каждый вызов append_to_list() создаёт новый список, и ожидают вывод:

```

[1]
[2]
[3]

```
Но на самом деле Python выведет:

```

[1]
[1, 2]
[1, 2, 3]

```
🧠 Почему так происходит?
В Python значения аргументов по умолчанию вычисляются один раз — при определении функции, а не при каждом вызове.

Значение my_list=[] создаётся один раз и сохраняется между вызовами. Это работает как статическая переменная внутри функции.

Как это исправить?
Используй None как значение по умолчанию:

```

def append_to_list(val, my_list=None):
if my_list is None:
my_list = []
my_list.append(val)
return my_list

print(append_to_list(1)) # [1]
print(append_to_list(2)) # [2]
print(append_to_list(3)) # [3]

```
💡 Вывод
Не используйте изменяемые объекты (например, list, dict, set) как значения по умолчанию для аргументов функций в Python.

@python_be1
⚡️ Прокачивайся через практику: лучшие ресурсы для пет-проектов

Хочешь расти как разработчик — пиши код, а не только читай!

Вот 4 крутых ресурса, где ты будешь учиться через реальные задачи:

App Ideas
Список проектов от джуна до про: калькуляторы, трекеры, приложения. Есть примеры и полезные ссылки.
👉 github.com/florinpop17/app-ideas

Build Your Own X
Хочешь создать свой Git, Redis, Docker или даже ОС? Тут есть всё: гайды, туториалы и код на разных языках.
👉 github.com/codecrafters-io/build-your-own-x

Project-Based Learning
Обучение в формате "берёшь проект — делаешь". Примеры с пошаговыми инструкциями для разных языков.
👉 github.com/practical-tutorials/project-based-learning

Frontend Mentor
Получаешь макет — верстаешь сам. Отлично тренирует HTML/CSS/JS. Идеально для портфолио.
👉 frontendmentor.io

Пиши код, а не резюме. Эти ресурсы реально двигают вперёд.

@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
Linux: как узнать, какие процессы используют файлы — даже если они уже удалены

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

lsof | grep '(deleted)

Особенно полезно при отладке проблем с disk full, docker, journalctl, tmp и прочим

@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Полезный трюк в Python: как отсортировать список по нескольким условиям одновременно

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

Используйте sorted() с key, комбинируя несколько полей с нужной логикой сортировки. Вот как:

```python
people = [
{"name": "Alice", "age": 30},
{"name": "Bob", "age": 25},
{"name": "Charlie", "age": 25},
{"name": "David", "age": 30},
]

# Сортировка: сначала по age (по возрастанию), затем по name (по убыванию)
sorted_people = sorted(people, key=lambda p: (p["age"], -ord(p["name"][0])))

for person in sorted_people:
print(person)
```

💡 Работает и с объектами, и с кортежами — главное, правильно составить key. Особенно полезно для фильтрации списков в табличных данных, при выводе результатов или генерации отчётов.

#python

@python_be1
🧮 CVXPY — библиотека для решения задач выпуклой оптимизации, позволяющая формулировать математические модели в естественной форме, а не подстраиваться под ограниченный синтаксис солверов. С её помощью можно работать с задачами линейного и квадратичного программирования, геометрическими и квазивыпуклыми оптимизациями, не углубляясь в технические детали реализации алгоритмов.

Проект развивается как open-source-сообщество с 2013 года и поддерживает популярные солверы. Он также имеет удобный API: например, ограничения записываются почти как математические неравенства, а решение возвращает не только результат, но и значения двойственных переменных.

🤖 GitHub (https://github.com/cvxpy/cvxpy)

@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
Нужно временно отключить все принты — например, в проде или при юнит-тестах?

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

@python_be1
⚙️ 7 эффективных стратегий для масштабирования базы данных

🟢Индексация: Анализируйте запросы вашего приложения и создавайте подходящие индексы для ускорения работы.
🟢Материализованные представления: Предварительно вычисляйте результаты сложных запросов и сохраняйте их для быстрого доступа.
🟢Денормализация: Упрощайте сложные соединения для повышения скорости выполнения запросов.
🟢Вертикальное масштабирование: Увеличивайте ресурсы сервера (процессоры, оперативную память, хранилище) для улучшения производительности.
🟢Кэширование: Храните часто запрашиваемые данные в быстром хранилище, чтобы снизить нагрузку на базу данных.
🟢Репликация: Создавайте копии основной базы данных на разных серверах для увеличения объема операций чтения.
🟢Шардинг: Разделяйте таблицы на более мелкие части и распределяйте их по серверам для улучшения работы с записью и чтением.

💬 Какие еще методы масштабирования используете вы?

#java

@python_be1
🎓 За $250,000 — MBA, который застрял в прошлом.

Студенты Stanford Graduate School of Business бьют тревогу:

🧾 Лекции читаются по устаревшим материалом из 2010-х
📚 Курсы почти не обновляются
🤖 Оценка зависит от того, насколько “остроумный prompt” ты напишешь для GPT или купишь платный AI-инструмент — а не от реального понимания математики или принципов принятия решений

💬 “Мы не учимся. Мы просто платим”, — пишут студенты в отзывах.

🧠 MBA (Master of Business Administration) — это престижная степень, которая должна давать практические навыки в управлении, финансах, стратегии и лидерстве.
Но на деле — всё больше похоже на дорогую обёртку с элементами prompt-инжиниринга.

📉 Вместо бизнес-анализа — работа с с ИИ. Вместо знаний — маркетинг прошлого десятилетия.

🔗 Источник — Yahoo News (https://yahoo.com/news/articles/not-learning-anything-stanford-gsb-114057655.html)

@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Хочешь узнать, какие библиотеки в твоём Python‑проекте реально используются?

Многие проекты тянут за собой ненужные зависимости, особенно после десятков итераций.

С помощью vulture ты можешь найти неиспользуемый код и импорты — и легко вычистить проект от мусора.

Установка vulture
pip install vulture

Поиск неиспользуемого кода и импортов
vulture your_project/ > unused.txt

Пример: посмотреть, что не используется
cat unused.txt



@python_be1