Forwarded from CTRL+S Health (ex. Сохранёнки программиста)
Френдли фаер: наши привычки, которые медленно, но верно бьют по суставам и мышцам
Мы привыкли думать, что проблемы со спиной и суставами начинаются только от сидячки. Но есть куча мелких бытовых жестов, которые каждый день копят нагрузку и тихо разрушают тело:
— Держать телефон между ухом и плечом.
— Рюкзак или сумка всегда на одной стороне.
— Стоять, перенося вес только на одну ногу.
— Сидеть, поджимая ногу под себя.
— Скрещивать ноги за столом или закидывать одну на другую.
— Носить кроссовки без поддержки пятки и свода (особенно дешёвые тряпочные).
— Долго сидеть, положив локоть на стол и опираясь на подбородок.
— Спать всё время на одном боку в одной позе.
— Работать за ноутбуком, постоянно смотря чуть вниз.
— Часто носить тяжёлые пакеты «в одну руку».
Всё это со временем даёт защемления, перекосы и хронические боли. Так что позаботьтесь, чтобы убрать их из быта.
#суставы #советы
Мы привыкли думать, что проблемы со спиной и суставами начинаются только от сидячки. Но есть куча мелких бытовых жестов, которые каждый день копят нагрузку и тихо разрушают тело:
— Держать телефон между ухом и плечом.
— Рюкзак или сумка всегда на одной стороне.
— Стоять, перенося вес только на одну ногу.
— Сидеть, поджимая ногу под себя.
— Скрещивать ноги за столом или закидывать одну на другую.
— Носить кроссовки без поддержки пятки и свода (особенно дешёвые тряпочные).
— Долго сидеть, положив локоть на стол и опираясь на подбородок.
— Спать всё время на одном боку в одной позе.
— Работать за ноутбуком, постоянно смотря чуть вниз.
— Часто носить тяжёлые пакеты «в одну руку».
Всё это со временем даёт защемления, перекосы и хронические боли. Так что позаботьтесь, чтобы убрать их из быта.
#суставы #советы
✍6❤5👎2🕊1
«Я перестал думать»: чем опасен ИИ и вайб-кодинг для разработчиков
Один опытный разработчик предупредил новичков:
Что делать неофиту в эпоху вайб-кодинга, чтобы вырасти в настоящего профи — смотрите в статье.
#обучение
@zen_of_python
Один опытный разработчик предупредил новичков:
Лёгкость, с которой ИИ решает задачи, постепенно стирает ваше понимание процесса. Возникает дофаминовая ловушка, почти как при бессмысленном скроллинге ленты соцсетей — быстрое «удовольствие» без усилий и без реального роста.
Что делать неофиту в эпоху вайб-кодинга, чтобы вырасти в настоящего профи — смотрите в статье.
#обучение
@zen_of_python
👍5❤3👎2
api-design.pdf
210.9 KB
Шпаргалка для пишущих свой API
Некоторым из нас приходится писать собственные интерфейсы, и при развитии такого приложения стоит задумываться не только об очередном методе, но и про:
— авторизацию;
— разграничение доступа на основе ролей (RBAC);
— метрики производительности;
— тестирование и прочие аспекты
В приложенной шпаргалке как раз об этом.
#обучение
@zen_of_python
Некоторым из нас приходится писать собственные интерфейсы, и при развитии такого приложения стоит задумываться не только об очередном методе, но и про:
— авторизацию;
— разграничение доступа на основе ролей (RBAC);
— метрики производительности;
— тестирование и прочие аспекты
В приложенной шпаргалке как раз об этом.
#обучение
@zen_of_python
👎4🔥3🤔2✍1
detroit | Level Up для вашего dataviz'а
Если привычные столбчатые диаграммы и пай-чарты уже не забавляют, попробуйте питоническую реализацию d3js — небезызвестного тула для построения нетривиальных графиков. Как минимум познаете еще один вид графика, это обещаем.
#инструмент
@zen_of_python
Если привычные столбчатые диаграммы и пай-чарты уже не забавляют, попробуйте питоническую реализацию d3js — небезызвестного тула для построения нетривиальных графиков. Как минимум познаете еще один вид графика, это обещаем.
#инструмент
@zen_of_python
👍2❤1🔥1
vim-commands-cheat-sheet-by-pnap.pdf
80.9 KB
Шпаргалка vim
Симпатичная табличная подборка команд для тех, кто наконец выучил, как выйти из этого редактора.
Помимо CRUD-операций там полезное про изменение цветовой схемы, навигацию по файлу, работу с несколькими файлами в буфере.
#шпаргалка
@zen_of_python
Симпатичная табличная подборка команд для тех, кто наконец выучил, как выйти из этого редактора.
Помимо CRUD-операций там полезное про изменение цветовой схемы, навигацию по файлу, работу с несколькими файлами в буфере.
#шпаргалка
@zen_of_python
❤2👎2
Используете ли вы LLM IDE вроде Cursor для пет-проекта(-ов)?
Anonymous Poll
29%
Да
44%
Нет
27%
Что такое LLM IDE?
👌1
Вопросы подписчиков
Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:
— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте.
#обсуждение
@zen_of_python
Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:
— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте.
#обсуждение
@zen_of_python
🌚1🗿1
Что такое замыкание и зачем оно нужно
Замыкания (Closures) — понятие, которое кажется сложным при первом знакомстве. Но на самом деле вы уже его скорее всего используете неосознанно, настолько это стало базой.
Представим программу, где пользователь вводит число, нажимает OK, и программа сохраняет это число в список, выводя все введённые значения:
Код работает, но есть проблема: переменная
🔘 функция зависит от переменной, объявленной в другом месте;
🔘 код становится менее гибким — нельзя просто перенести функцию в другой модуль, не взяв с собой
Замыкание помогает «связать» данные и логику в одном месте без использования классов:
Когда мы вызываем внешнюю функцию
Ключевая идея замыкания:
Даже когда
Используйте замыкания, если хотите:
🔘 инкапсулировать состояние в функции без создания класса;
🔘 нужно создать функцию-конфигуратор (например, с частично зафиксированными параметрами);
Замыкание — это функция, которая:
🔘 определена внутри другой функции;
🔘 использует переменные из внешней функции;
🔘 «запоминает» эти переменные даже после завершения внешней функции.
#основы
@zen_of_python
Замыкания (Closures) — понятие, которое кажется сложным при первом знакомстве. Но на самом деле вы уже его скорее всего используете неосознанно, настолько это стало базой.
Представим программу, где пользователь вводит число, нажимает OK, и программа сохраняет это число в список, выводя все введённые значения:
numbers = []
def enter_number(x):
numbers.append(x)
print(numbers)
enter_number(3) # [3]
enter_number(7) # [3, 7]
enter_number(4) # v
Код работает, но есть проблема: переменная
numbers
находится вне функции, то есть она глобальная. Это значит, что:numbers
.Замыкание помогает «связать» данные и логику в одном месте без использования классов:
def enter_number_outer():
numbers = [] # локальная переменная
def enter_number_inner(x):
numbers.append(x)
print(numbers)
return enter_number_inner
Когда мы вызываем внешнюю функцию
enter_number_outer()
, она создаёт свой контекст с переменной numbers
и возвращает внутреннюю функцию, которая имеет к ней доступ.
enter_num = enter_number_outer()
enter_num(3) # [3]
enter_num(7) # [3, 7]
enter_num(4) # [3, 7, 4]
Ключевая идея замыкания:
Внутренняя функция «замыкает» (сохраняет) значения переменных из области видимости внешней функции.
Даже когда
enter_number_outer()
завершает выполнение, её переменные не уничтожаются, потому что они нужны внутренней функции, которая всё ещё существует. Это и есть closure — функция, которая запоминает контекст, в котором была создана.Используйте замыкания, если хотите:
Замыкание — это функция, которая:
#основы
@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤2🤣1
RunSnakeRun | Профайлер с GUI
Симпатичный и наглядный инструмент для анализа производительности Python-программ. Он показывает результаты профилирования (
На диаграмме размер прямоугольника отражает долю времени, потраченную на выполнение функции. Позволяет интерактивно «проваливаться» в вызовы и изучать вложенные функции. Отличный способ искать узкие места в проекте.
#инструмент
@zen_of_python
Симпатичный и наглядный инструмент для анализа производительности Python-программ. Он показывает результаты профилирования (
cProfile
, hotshot
и других форматов) в виде наглядной treemap-диаграммы.На диаграмме размер прямоугольника отражает долю времени, потраченную на выполнение функции. Позволяет интерактивно «проваливаться» в вызовы и изучать вложенные функции. Отличный способ искать узкие места в проекте.
#инструмент
@zen_of_python
❤7