В интернет-магазине книг Библио-глобус сегодня-завтра 30% скидос. Вдруг вы хотели прикупить себе, скажем, PMBOK за 10 тыщ, а сегодня сможете забрать за 7.
На ИТ книги, правда, почему-то скидок нет. Программисты и так народ богатый, нечего им скидосы. Не то что проджекты:)
Хотяяя вот, вижу, что вышло второе издание Fluent Python на русском, он же «Python к вершинам мастерства» Лусиану Рамальо, на него скидос есть. На озоне, правда, дешевле. А на ДМК ещё дешевле. И тадааааам, в твёрдом переплёте, аллилуйя! Книга хорошая, для не новичков.
#books #news #IT #python
На ИТ книги, правда, почему-то скидок нет. Программисты и так народ богатый, нечего им скидосы. Не то что проджекты:)
Хотяяя вот, вижу, что вышло второе издание Fluent Python на русском, он же «Python к вершинам мастерства» Лусиану Рамальо, на него скидос есть. На озоне, правда, дешевле. А на ДМК ещё дешевле. И тадааааам, в твёрдом переплёте, аллилуйя! Книга хорошая, для не новичков.
#books #news #IT #python
👍66😁9🔥6😢1
Зачем для uvicorn'а нужен gunicorn?
В питоне есть такая штука как GIL. Глобальная блокировка интерпретатора. Это фундаментальная особенность CPython-реализации питона. Эта особенность не позволяет одновременно работать более чем одному потоку. То есть в питоне можно запускать потоки, но одновременно работать 2 и больше потоков не будет. В каждый конкретный момент времени будет работать только 1 поток. А нам бы хотелось, чтобы одновременно могли обрабатываться несколько http-запросов. Потому что ядер на сервере много, а толку от них с питоновскими тредами=потоками мало.
Поээээтому, чтобы всё было чётенько и одновременно могли обрабатываться несколько http-запросов, а также были утилизированы=задействованы все процессорные ядра, вместо тредов запускают процессы. Процессы не имеют ограничений GIL, могут работать одновременно несколько процессов на многоядерных процессорах, а этого-то нам и надо.
Нооо возникает тогда задачка управления этими процессами. Запустили мы 8 процессов, пришли на них какие-то http-запросы, они легли на разные процессы, и в процессе обработки одного из этих запросов что-то пошло не так, какая-то необработанная ошибка и т.п. и процесс упал. Нужен механизм, который его переподнимет. Да и начальное создание процессов тоже задача, кто-то должен её делать. То есть нужен process manager, менеджер процессов.
Задача обработки http-запросов и задача управления процессами сервера (управления воркерами, которые делают work=работу в данном случае по обработке хттп запросов) — это разные задачи. Какие-то инструменты могут их в себе сочетать, а какие-то могут выполнять только одну из этих двух задач. Вот uvicorn не занимается управлением своими процессами, отдает это на откуп инструмента, который уже давно проверен и хорошо менеджерит процессы — gunicorn.
Вот собственно и всё!
#python #backend #IT
В питоне есть такая штука как GIL. Глобальная блокировка интерпретатора. Это фундаментальная особенность CPython-реализации питона. Эта особенность не позволяет одновременно работать более чем одному потоку. То есть в питоне можно запускать потоки, но одновременно работать 2 и больше потоков не будет. В каждый конкретный момент времени будет работать только 1 поток. А нам бы хотелось, чтобы одновременно могли обрабатываться несколько http-запросов. Потому что ядер на сервере много, а толку от них с питоновскими тредами=потоками мало.
Поээээтому, чтобы всё было чётенько и одновременно могли обрабатываться несколько http-запросов, а также были утилизированы=задействованы все процессорные ядра, вместо тредов запускают процессы. Процессы не имеют ограничений GIL, могут работать одновременно несколько процессов на многоядерных процессорах, а этого-то нам и надо.
Нооо возникает тогда задачка управления этими процессами. Запустили мы 8 процессов, пришли на них какие-то http-запросы, они легли на разные процессы, и в процессе обработки одного из этих запросов что-то пошло не так, какая-то необработанная ошибка и т.п. и процесс упал. Нужен механизм, который его переподнимет. Да и начальное создание процессов тоже задача, кто-то должен её делать. То есть нужен process manager, менеджер процессов.
Задача обработки http-запросов и задача управления процессами сервера (управления воркерами, которые делают work=работу в данном случае по обработке хттп запросов) — это разные задачи. Какие-то инструменты могут их в себе сочетать, а какие-то могут выполнять только одну из этих двух задач. Вот uvicorn не занимается управлением своими процессами, отдает это на откуп инструмента, который уже давно проверен и хорошо менеджерит процессы — gunicorn.
Вот собственно и всё!
#python #backend #IT
👍293🔥28❤10🎉2
Разбираем задачку на функциональное программирование с Codewars:)
https://youtu.be/SjSY9PBfDj4
#youtube #IT #python
https://youtu.be/SjSY9PBfDj4
#youtube #IT #python
YouTube
Разбор задачки на функциональное программирование в Python
Разбираем ещё одну задачку с codewars на функциональное программирование в Python.
Мой курс «Хардкорная веб-разработка» — https://course.to.digital
Книжный клуб Ботаним!, где мы читаем хорошие ИТ-книги: https://botanim.to.digital/
Telegram: https://t0digital.t.me…
Мой курс «Хардкорная веб-разработка» — https://course.to.digital
Книжный клуб Ботаним!, где мы читаем хорошие ИТ-книги: https://botanim.to.digital/
Telegram: https://t0digital.t.me…
🔥83👍31❤4🤔2
Смотрим, что нового-бодрого-прекрасного завезли в релизе Python 3.11, вышедшем вчера!
https://youtu.be/hF_hul5k07A
#YouYube #python #IT #news
https://youtu.be/hF_hul5k07A
#YouYube #python #IT #news
YouTube
⚡Python 3.11 — СКОРОСТНОЙ горячий пирожочек!
Смотрим, что нового-бодрого-прекрасного завезли в релизе Python 3.11, вышедшем вчера!
Мой курс «Хардкорная веб-разработка» — https://course.to.digital
Книжный клуб Ботаним!, где мы читаем хорошие ИТ-книги: https://botanim.to.digital/
Telegram — https://xn--r1a.website/t0digital…
Мой курс «Хардкорная веб-разработка» — https://course.to.digital
Книжный клуб Ботаним!, где мы читаем хорошие ИТ-книги: https://botanim.to.digital/
Telegram — https://xn--r1a.website/t0digital…
👍161🎉23🔥16❤11😢2
Вдогонку — спрашивают, а что почитать по пайтону для начинающих или что почитать для подготовки к твоему курсу, если есть время и возможность.
2 книги.
* Простой Python, Билл Любанович, 2 издание
* Начинаем программировать на Python, Гэддис Тони, 5 издание
Скоро (ннннаверное!) будет видео с обзором книг по Python вообще, там подробнее расскажу. Но кто хочет подготовиться к курсу и не умеет пока уверенно в Python, будет полезно почитать эти книги. Если вы совсем новичок, то начните со второй. Если уже что-то умеете — возможно вам будет достаточно первой.
#books #python
2 книги.
* Простой Python, Билл Любанович, 2 издание
* Начинаем программировать на Python, Гэддис Тони, 5 издание
Скоро (ннннаверное!) будет видео с обзором книг по Python вообще, там подробнее расскажу. Но кто хочет подготовиться к курсу и не умеет пока уверенно в Python, будет полезно почитать эти книги. Если вы совсем новичок, то начните со второй. Если уже что-то умеете — возможно вам будет достаточно первой.
#books #python
❤106👍48🔥41
Telegram бот @donate позволяет подключать донаты в Telegram, а также создавать платные закрытые каналы по подписке. И всем-то он хорош, да только не умеет ограничивать доступ в чат, привязанный к платному каналу. Это-то мы и пофиксим собственным решением — задействуем Telegram Bot API, Telegram API и Python с библиотекой Telethon. Вжух!
https://youtu.be/yBw1b2hFI_4
Комментарии на YouTube, пожалуйста!
#python #IT #youtube
https://youtu.be/yBw1b2hFI_4
Комментарии на YouTube, пожалуйста!
#python #IT #youtube
YouTube
Дорабатываем Telegram бот donate: Python, Telegram Bot API, Telegram API (Telethon)
Telegram бот donate позволяет подключать донаты в Telegram, а также создавать платные закрытые каналы по подписке. И всем-то он хорош, да только не умеет ограничивать доступ в чат, привязанный к платному каналу. Это-то мы и пофиксим собственным решением —…
👍124🔥21❤4
Большое интервью Гвидо ван Россума час назад вышло у Лекса Фридмана
https://www.youtube.com/watch?v=-DVyjdw4t9I
0:00 - Introduction
0:48 - CPython
6:01 - Code readability
10:22 - Indentation
26:58 - Bugs
38:26 - Programming fads
53:37 - Speed of Python 3.11
1:18:31 - Type hinting
1:23:49 - mypy
1:29:05 - TypeScript vs JavaScript
1:45:05 - Best IDE for Python
1:55:05 - Parallelism
2:12:58 - Global Interpreter Lock (GIL)
2:22:36 - Python 4.0
2:34:53 - Machine learning
2:44:35 - Benevolent Dictator for Life (BDFL)
2:56:11 - Advice for beginners
3:02:43 - GitHub Copilot
3:06:10 - Future of Python
#IT #Python
https://www.youtube.com/watch?v=-DVyjdw4t9I
0:00 - Introduction
0:48 - CPython
6:01 - Code readability
10:22 - Indentation
26:58 - Bugs
38:26 - Programming fads
53:37 - Speed of Python 3.11
1:18:31 - Type hinting
1:23:49 - mypy
1:29:05 - TypeScript vs JavaScript
1:45:05 - Best IDE for Python
1:55:05 - Parallelism
2:12:58 - Global Interpreter Lock (GIL)
2:22:36 - Python 4.0
2:34:53 - Machine learning
2:44:35 - Benevolent Dictator for Life (BDFL)
2:56:11 - Advice for beginners
3:02:43 - GitHub Copilot
3:06:10 - Future of Python
#IT #Python
YouTube
Guido van Rossum: Python and the Future of Programming | Lex Fridman Podcast #341
Guido van Rossum is the creator of Python programming language. Please support this podcast by checking out our sponsors:
- GiveDirectly: https://givedirectly.org/lex to get gift matched up to $1000
- Eight Sleep: https://www.eightsleep.com/lex to get special…
- GiveDirectly: https://givedirectly.org/lex to get gift matched up to $1000
- Eight Sleep: https://www.eightsleep.com/lex to get special…
👍176🔥50❤9🎉3🥰2
Внезапно узнал, переустанавливая вчера
Локализовав проблему, воспроизвёл её на минимальном коде:
… и падает SSL ошибка. То есть все HTTPS запросы не алё.
Погуглив, выяснилось, что Python на маке вообще, оказывается, с версии чуть ли не 3.6 не дружит с сертификатами и, чтобы всё было чётенько, после установки надо подшаманить. Я Python из исходников собираю по привычке, возможно, если ставить из pkg установщика, такой проблемы нет, не в курсе.
Итого, накатываем пакет
И добавляем три переменные окружения, прописав их в
и ура-ура!
Видос про Poetry у меня был, https://youtu.be/KOC0Gbo_0HY, кто не в курсе что это — оч рекомендую!
Сейчас еще один материал готовлю по нему:)
#IT #python
poetry, что он не устанавливается, установщик это Python скрипт и он падает с SSL: CERTIFICATE_VERIFY_FAILED на домен pypi.org.Локализовав проблему, воспроизвёл её на минимальном коде:
import urllib.request
url = "https://pypi.org"
with urllib.request.urlopen(url) as f:
print(f.read(1))
… и падает SSL ошибка. То есть все HTTPS запросы не алё.
Погуглив, выяснилось, что Python на маке вообще, оказывается, с версии чуть ли не 3.6 не дружит с сертификатами и, чтобы всё было чётенько, после установки надо подшаманить. Я Python из исходников собираю по привычке, возможно, если ставить из pkg установщика, такой проблемы нет, не в курсе.
Итого, накатываем пакет
certifi на ваш используемый интерпретатор: python3.10 -m pip install certifi
И добавляем три переменные окружения, прописав их в
.bashrc или в .zshrc в зависимости от вашей оболочки: CERT_PATH=$(python3.10 -m certifi)
export SSL_CERT_FILE=${CERT_PATH}
export REQUESTS_CA_BUNDLE=${CERT_PATH}
и ура-ура!
Видос про Poetry у меня был, https://youtu.be/KOC0Gbo_0HY, кто не в курсе что это — оч рекомендую!
Сейчас еще один материал готовлю по нему:)
#IT #python
👍218❤62🔥14🥰3😁1
Поговорим об управлении зависимостями в Python-проектах и создании сервисов с Poetry!
https://youtu.be/SMYdy7dViiw
#IT #python #backend
https://youtu.be/SMYdy7dViiw
#IT #python #backend
👍109🔥7🎉5❤4😁4