Forwarded from opennet.ru
Языку Python исполнилось 30 лет https://opennet.ru/54627/
www.opennet.ru
Языку Python исполнилось 30 лет
20 февраля 1991 года Гвидо ван Россум опубликовал в группе alt.sources первый выпуск языка программирования Python, над которым работал с декабря 1989 года в рамках проекта по созданию скриптового языка для решения задач системного администрирования в операционной…
Python 3.9.2 релизнулся. Ну всё, теперь уже точно можно переходить на ветку 3.9.
Кстати, забавно, что в Release Notes всегда прикладывают какой-нибудь скетч из Monty Python's Flying Circus. Чуваки вот уже 30 лет чтут традиции. Вообще, похоже, что питонисты — самые преданные поклонники тонкого британского юмора.
https://www.python.org/downloads/release/python-392/
Кстати, забавно, что в Release Notes всегда прикладывают какой-нибудь скетч из Monty Python's Flying Circus. Чуваки вот уже 30 лет чтут традиции. Вообще, похоже, что питонисты — самые преданные поклонники тонкого британского юмора.
https://www.python.org/downloads/release/python-392/
Python.org
Python Release Python 3.9.2
The official home of the Python Programming Language
Интересный пост с объяснениями почему нужно обновлять
https://pythonspeed.com/articles/upgrade-pip/
pip
.https://pythonspeed.com/articles/upgrade-pip/
Python⇒Speed
Why you should upgrade pip, and how to do it
Learn the problem with using old pip, and how to upgrade pip to fix those problems.
Люблю следить за состоянием экосистемы, поэтому вот результаты очередного опроса за 2020 год среди питонистов, проведенного PSF и JetBrains.
Радует, что доля Python 2 с каждым годом становится всё меньше.
FastAPI стал третьим по популярности веб-фреймворком после, ожидаемо, Flask и Django.
https://www.jetbrains.com/lp/python-developers-survey-2020/
#jetbrains #fastapi #flask
Радует, что доля Python 2 с каждым годом становится всё меньше.
FastAPI стал третьим по популярности веб-фреймворком после, ожидаемо, Flask и Django.
https://www.jetbrains.com/lp/python-developers-survey-2020/
#jetbrains #fastapi #flask
JetBrains: Developer Tools for Professionals and Teams
Python Developers Survey 2020 Results
Official Python Developers Survey 2020 Results by Python Software Foundation and JetBrains: more than 28k responses from more than 150 countries.
Готовится PEP, который добавит в
https://discuss.python.org/t/pre-pep-platform-tag-for-linux-distributions-using-musl/7165
Разъяснение. Многие пакеты для Python содержат код, написанный на компилируемых языках — C/C++, Rust, Fortran (да, например,
pip
поддержку предсобранных пакетов (wheel
) для Alpine Linux. Наконец-то можно будет устанавливать в ваши Docker-контейнеры psycopg2
, numpy
, cryptography
и другие библиотеки с кодом на C без головной боли!https://discuss.python.org/t/pre-pep-platform-tag-for-linux-distributions-using-musl/7165
Разъяснение. Многие пакеты для Python содержат код, написанный на компилируемых языках — C/C++, Rust, Fortran (да, например,
scipy
, и наверняка многие другие математические штуки), и т.д. Само собой, чтобы с такими пакетами работать, их необходимо собирать/компилировать, а значит нужен весь тулчейн для сборки определенного языка на компьютере, куда вы собираетесь просто установить какой-то пакет через pip
. Это было очень неудобно, и в какой-то момент люди придумали собирать пакеты один раз и распространять уже в собранном виде в специальном формате, который называется wheel
, чтобы не утруждать рядовых пользователей установкой компиляторов фортранов — мейнтейнер пакета собирает его для всех популярных платформ, загружает это всё на PyPI, люди устанавливают, пользуются и радуются. Проблема с Alpine в том, что этот дистрибутив из-за некоторых своих особенностей (использование musl
вместо glibc
в качестве стандартной библиотеки языка С) не совместим с форматом manylinux
и для него невозможно собирать и распространять колёса (wheel
). Но Alpine Linux очень популярен и часто используется в контейнеризованных приложениях, так что для него будет создан отдельный формат musllinux
и обеспечена поддержка в pip
. Сейчас для установки в контейнер зависимостей с нативным кодом приходится устанавливать тулчейн для сборки, что делает процесс сложным и медленным. Когда будет поддержка wheel
-пакетов и разработчики начнут их публиковать для Alpine, собирать компактные Docker-контейнеры станет совсем просто 😊Discussions on Python.org
PEP 656: Platform Tag for Linux Distributions Using Musl
Continuing the discussion in Wheels for musl (Alpine), here’s my draft to propose musllinux. Sponsor needed. Rendered restructedText version (GitHub). The version below is converted to Markdown with pandoc. I did not read the result and it may contain rendering…
Роскомнадзор замедляет и вроде как грозится в следующем месяце заблокировать Твиттер. В связи с этим напоминаю, что в российском интернете без VPN делать нечего. Тем временем, у меня с моим хитро настроенным роутером все работает отлично. Я пока не разбирался за счёт чего именно у меня не замедлился Твиттер, но суть в том, что всё работает нормально 😊
Вот тут проверьте скорость своего Твиттера: https://lynx.pink/is-my-twitter-slow-or-what/
А вот тут почитайте, как настроить свой роутер с VPN по красоте, всем рекомендую: https://semakin.dev/2020/12/openwrt_vpn_rkn/
Вот тут проверьте скорость своего Твиттера: https://lynx.pink/is-my-twitter-slow-or-what/
А вот тут почитайте, как настроить свой роутер с VPN по красоте, всем рекомендую: https://semakin.dev/2020/12/openwrt_vpn_rkn/
Питонические атаки
Настройка точечного обхода блокировок на роутере с OpenWRT
Как перестать думать о блокировках сайтов и начать жить
Неделю назад JetBrains объявили о релизе Projector -- инструмента, который позволяет запускать IDE JetBrains на удаленных серверах даже без графической оболочки, в том числе и прямо в Docker-контейнерах, и в WSL. Доступ к IDE затем осуществляется через браузер или нативный клиент. Код полностью открытый.
https://blog.jetbrains.com/blog/2021/03/11/projector-is-out/
Я так понимаю, что при помощи этого инструмента JetBrains в основном пытаются решить проблему работы IDE в таких "необычных" окружениях, как Windows Subsystem for Linux (WSL). IntelliJ IDEA (и все производные от неё редакторы, такие как PyCharm) -- это полноценные десктопные GUI приложения, написанные на Java, которые вообще-то не так-то просто разделить на сервер и клиент, и запускать в безграфических окружениях. Так было испокон веков, и вряд ли возможно за какой-то вменяемый промежуток времени сильно поменять эту архитектуру. Несколько лет назад Microsoft релизнула WSL, что позволило многим разработчикам взять лучшее от двух миров -- графическую оболочку от Windows и весь тот невероятный набор тулинга, который нормально работает только под Linux, к сожалению. Из-за деталей реализации WSL (грубо говоря, это как удаленный сервер на линуксе, который работает прямо внутри винды, но доступен по сети), для комфортной работы в таком режиме нужна специальная поддержка удаленных серверов со стороны IDE. VS Code прям сразу смогла поддержать такой режим работы (потому что это изначально клиент-серверное приложение), а вот JetBrains попали в очень неловкое положение -- поддержать такой юзкейс обязательно надо, потому что WSL пользуются все больше людей, но легко этого не сделаешь. С каждым новым релизом они фиксят различные мелкие проблемы и улучшают поддержку, но это все равно остаётся IDE, запущенная на винде, которая пытается работать с "удалённым" сервером на линуксе по сети, из-за чего постоянно случаются какие-то тормоза, а индексация больших проектов может занимать долгие часы. При помощи Projector редактор запускается прямо на удаленном сервере, так что все тяжёлые процессы, типа индексации проекта, будут выполняться прямо там, а юзеру по сети транслируется лишь графический интерфейс, что должно в целом улучшить скорость работы.
Пока что это всё ещё выглядит как костыль и полумера, но я надеюсь, что в будущем Projector как-то более плотно интегрируется в IDE (например, IDE сможет сама разворачивать себя же на удаленном сервере через Projector и становиться "тонким клиентом"), и мы получим такой же приятный опыт работы с WSL как и в VS Code -- в стиле "нажал кнопку и поехали".
#jetbrains
https://blog.jetbrains.com/blog/2021/03/11/projector-is-out/
Я так понимаю, что при помощи этого инструмента JetBrains в основном пытаются решить проблему работы IDE в таких "необычных" окружениях, как Windows Subsystem for Linux (WSL). IntelliJ IDEA (и все производные от неё редакторы, такие как PyCharm) -- это полноценные десктопные GUI приложения, написанные на Java, которые вообще-то не так-то просто разделить на сервер и клиент, и запускать в безграфических окружениях. Так было испокон веков, и вряд ли возможно за какой-то вменяемый промежуток времени сильно поменять эту архитектуру. Несколько лет назад Microsoft релизнула WSL, что позволило многим разработчикам взять лучшее от двух миров -- графическую оболочку от Windows и весь тот невероятный набор тулинга, который нормально работает только под Linux, к сожалению. Из-за деталей реализации WSL (грубо говоря, это как удаленный сервер на линуксе, который работает прямо внутри винды, но доступен по сети), для комфортной работы в таком режиме нужна специальная поддержка удаленных серверов со стороны IDE. VS Code прям сразу смогла поддержать такой режим работы (потому что это изначально клиент-серверное приложение), а вот JetBrains попали в очень неловкое положение -- поддержать такой юзкейс обязательно надо, потому что WSL пользуются все больше людей, но легко этого не сделаешь. С каждым новым релизом они фиксят различные мелкие проблемы и улучшают поддержку, но это все равно остаётся IDE, запущенная на винде, которая пытается работать с "удалённым" сервером на линуксе по сети, из-за чего постоянно случаются какие-то тормоза, а индексация больших проектов может занимать долгие часы. При помощи Projector редактор запускается прямо на удаленном сервере, так что все тяжёлые процессы, типа индексации проекта, будут выполняться прямо там, а юзеру по сети транслируется лишь графический интерфейс, что должно в целом улучшить скорость работы.
Пока что это всё ещё выглядит как костыль и полумера, но я надеюсь, что в будущем Projector как-то более плотно интегрируется в IDE (например, IDE сможет сама разворачивать себя же на удаленном сервере через Projector и становиться "тонким клиентом"), и мы получим такой же приятный опыт работы с WSL как и в VS Code -- в стиле "нажал кнопку и поехали".
#jetbrains
The JetBrains Blog
Access Your IDE Remotely With Projector | The JetBrains Blog
Today we're announcing the initial release of Projector – a tool and framework for running JetBrains IDEs and Swing apps remotely over your network. As you may know, Swing is a graphical widget too
Если интересно, то можете почитать (и поставить палец вверх) этот эпичный тред в баг-трекере JetBrains, где люди изливают душу по поводу того, как сложно им живётся без нормальной поддержки удаленных серверов.
https://youtrack.jetbrains.com/issue/IDEA-226455
Примерно пару раз в неделю там появляются сообщения в стиле "закрой за мной дверь, я мухожук", "всю жизнь пользовался IntelliJ, но из-за WSL перешёл на VS Code, и больше не буду продлевать лицензию" и так далее. Наверное, JetBrains и правда наблюдают какой-то отток пользователей, именно поэтому они так активно работают над этой проблемой, и выкатили даже не одно возможное решение, а сразу два. Помимо Projector с WSL можно работать ещё и через специальный сервис Code With Me.
Code With Me -- это вообще-то в первую очередь сервис для парного программирования, но так получилось, что это тоже может облегчить боль пользователей WSL. Запускаешь одну IDE (или даже Projector) внутри WSL, другую -- у себя на винде локально, и подключаешься из одной в другую. Как будто бы парно программируешь сам с собой. Преимущество такого подхода в том, что не приходится покидать комфортную IDE и переключаться в неполноценный браузерный или нативный клиент Projector'a. Люди в треде пишут, что для комфортной работы им всё-таки приходится периодически переключаться между Projector и Code With Me.
#jetbrains
https://youtrack.jetbrains.com/issue/IDEA-226455
Примерно пару раз в неделю там появляются сообщения в стиле "закрой за мной дверь, я мухожук", "всю жизнь пользовался IntelliJ, но из-за WSL перешёл на VS Code, и больше не буду продлевать лицензию" и так далее. Наверное, JetBrains и правда наблюдают какой-то отток пользователей, именно поэтому они так активно работают над этой проблемой, и выкатили даже не одно возможное решение, а сразу два. Помимо Projector с WSL можно работать ещё и через специальный сервис Code With Me.
Code With Me -- это вообще-то в первую очередь сервис для парного программирования, но так получилось, что это тоже может облегчить боль пользователей WSL. Запускаешь одну IDE (или даже Projector) внутри WSL, другую -- у себя на винде локально, и подключаешься из одной в другую. Как будто бы парно программируешь сам с собой. Преимущество такого подхода в том, что не приходится покидать комфортную IDE и переключаться в неполноценный браузерный или нативный клиент Projector'a. Люди в треде пишут, что для комфортной работы им всё-таки приходится периодически переключаться между Projector и Code With Me.
#jetbrains
YouTrack
Remote development support : IDEA-226455
Note from the team: «Dear users, we kindly ask you to create in YouTrack [NEW ISSUES/reports](https://https://youtrack.jetbrains.com/newIssue?project=CWM) or by [tickets to the support](mailto:support@jetbrains.com) team.» «We believe that will make it easier…
Кстати, по поводу Code With Me. Это абсолютно бесплатная (пока что, пока оно еще находится в разработке и, вероятно, содержит какие-то баги) функциональность, так что предлагаю не упускать возможности и попробовать. Ну вы только посмотрите, там даже есть аудио и видеозвонки!
* Страница сервиса: https://www.jetbrains.com/ru-ru/code-with-me/
* Пост с релизом: https://blog.jetbrains.com/blog/2020/10/23/code-with-me-jetbrains-ides-v2020-3/
P.S. Для вскодеров похожая функциональность доступна (тоже бесплатно) через плагин Live Share: https://code.visualstudio.com/blogs/2017/11/15/live-share
#jetbrains
* Страница сервиса: https://www.jetbrains.com/ru-ru/code-with-me/
* Пост с релизом: https://blog.jetbrains.com/blog/2020/10/23/code-with-me-jetbrains-ides-v2020-3/
P.S. Для вскодеров похожая функциональность доступна (тоже бесплатно) через плагин Live Share: https://code.visualstudio.com/blogs/2017/11/15/live-share
#jetbrains
JetBrains
Code With Me — сервис JetBrains для совместной разработки
Начните работать над кодом вместе прямо сейчас. Code With Me позволит вашей команде вместе работать над кодом в режиме реального времени — легко, эффективно и безопасно.
Ну и чтобы этот канал не превратился окончательно в паблик о JetBrains, предлагаю почитать отличный пост про первичную настройку разного тулинга, который поможет вам писать качественный код (или, по крайней мере, не даст писать совсем уж плохой код), перед началом нового проекта на Python в условиях 2021 года. Статья очень похожа по духу на то, о чём я люблю писать, так что рекомендую.
https://mitelman.engineering/blog/python-best-practice/automating-python-best-practices-for-a-new-project/
Автор — мой коллега и хороший друг, который внезапно тоже завёл блог. Привет, Саша!
https://mitelman.engineering/blog/python-best-practice/automating-python-best-practices-for-a-new-project/
Автор — мой коллега и хороший друг, который внезапно тоже завёл блог. Привет, Саша!
mitelman.engineering
Python Best Practices for a New Project in 2021
Intro The goal of this tutorial is to describe Python development ecosystem. It can be helpful for someone coming to Python from another programming language.
They say that you should stick to algorithms and data structures, that you can learn a new language…
They say that you should stick to algorithms and data structures, that you can learn a new language…
Сканер утёкших кредов GitHub интегрировался с PyPI (Python Package Index), и теперь если случайно выложить свой токен от PyPI в открытый репо на GitHub, он будет автоматически отозван в течении пары секунд, чтобы защитить вашу библиотечку от угона. Удобно!
https://github.blog/changelog/2021-03-22-the-python-package-index-is-now-a-github-secret-scanning-integrator/
https://github.blog/changelog/2021-03-22-the-python-package-index-is-now-a-github-secret-scanning-integrator/
The GitHub Blog
The Python Package Index is now a GitHub secret scanning integrator | GitHub Changelog
Кстати, в тему текстовых редакторов.
Хоть я и являюсь преданным пользователем IDE JetBrains, становится уже тяжеловато отрицать, что VS Code, собака, весьма хорош. Он постоянно добавляет фичи, захватывает новые экосистемы, притягивает всё больше разработчиков. Это уже давно не просто ещё один блокнот. Microsoft действительно очень постарались, чтобы сделать этот редактор таким классным. Недавно они запилили новый Language Server для Python под названием Pylance (оно уже доступно по умолчанию через плагин для Python), который, по словам очевидцев, на голову превосходит предыдущую штуку, обеспечивающую поддержку языка в редакторе.
Есть мнение, что мы вошли в "эру VS Code", и этот редактор отправит в забытье всех своих прямых конкурентов (Sublime, Atom, Brackets, Notepad++😳 и так далее), а также отожмёт серьёзную долю рынка у IDE.
Может таки снова попробовать полностью пересесть на VS Code?
https://blog.robenkleene.com/2020/09/21/the-era-of-visual-studio-code
Хоть я и являюсь преданным пользователем IDE JetBrains, становится уже тяжеловато отрицать, что VS Code, собака, весьма хорош. Он постоянно добавляет фичи, захватывает новые экосистемы, притягивает всё больше разработчиков. Это уже давно не просто ещё один блокнот. Microsoft действительно очень постарались, чтобы сделать этот редактор таким классным. Недавно они запилили новый Language Server для Python под названием Pylance (оно уже доступно по умолчанию через плагин для Python), который, по словам очевидцев, на голову превосходит предыдущую штуку, обеспечивающую поддержку языка в редакторе.
Есть мнение, что мы вошли в "эру VS Code", и этот редактор отправит в забытье всех своих прямых конкурентов (Sublime, Atom, Brackets, Notepad++😳 и так далее), а также отожмёт серьёзную долю рынка у IDE.
Может таки снова попробовать полностью пересесть на VS Code?
https://blog.robenkleene.com/2020/09/21/the-era-of-visual-studio-code
Roben Kleene
The Era of Visual Studio Code
Roben Kleene’s blog
До меня дошли новости, что недавно релизнулась ветка SQLAlchemy 1.4 с огромным количеством изменений. SQLAlchemy — это наиболее популярная ORM, не привязанная к какому-либо веб-фреймворку.
https://www.sqlalchemy.org/blog/2021/03/15/sqlalchemy-1.4.0-released/
Субъективно, из наиболее интересного хочется отметить поддержку асинхронного режима. Да, теперь можно await'ить запросы, написанные в как в Core-стиле (это когда запрос составляется по кусочкам из вызовов разных методов), так и в стиле ORM (это когда таблицы и отношения между ними описываются прям классами), и оно не будет блокировать цикл событий! Для работы асинхронщины нужно иметь специальный драйвер БД, например, для PostgreSQL вместо
Разговоры про асинхронные ORM ходили уже давно, но после того, как я почитал объяснения Майка Бэйера (автор SQLAlchemy), почему асинхронные ORM — это слишком сложно и игра не стоит свеч, я подумал, что алхимия никогда не станет асинхронной. Задача и правда выглядит нетривиально. А оно как вдруг возьми и стань ☺️
https://www.sqlalchemy.org/blog/2021/03/15/sqlalchemy-1.4.0-released/
Субъективно, из наиболее интересного хочется отметить поддержку асинхронного режима. Да, теперь можно await'ить запросы, написанные в как в Core-стиле (это когда запрос составляется по кусочкам из вызовов разных методов), так и в стиле ORM (это когда таблицы и отношения между ними описываются прям классами), и оно не будет блокировать цикл событий! Для работы асинхронщины нужно иметь специальный драйвер БД, например, для PostgreSQL вместо
psycopg2
придётся использовать asyncpg
.Разговоры про асинхронные ORM ходили уже давно, но после того, как я почитал объяснения Майка Бэйера (автор SQLAlchemy), почему асинхронные ORM — это слишком сложно и игра не стоит свеч, я подумал, что алхимия никогда не станет асинхронной. Задача и правда выглядит нетривиально. А оно как вдруг возьми и стань ☺️
Stack Overflow
How to make SQLAlchemy in Tornado to be async?
How to make SQLAlchemy in Tornado to be async ?
I found example for MongoDB on async mongo example but I couldn't find anything like motor for SQLAlchemy. Does anyone know how to make SQLAlchemy qu...
I found example for MongoDB on async mongo example but I couldn't find anything like motor for SQLAlchemy. Does anyone know how to make SQLAlchemy qu...
Еще одна интересная вещь из релиза SQLAlchemy 1.4 — теперь поддерживаются тайп-аннотации. Из-за специфики библиотеки (много чего появляется лишь в рантайме и статически это описать невозможно) ребятам пришлось запилить собственный плагин для
https://docs.sqlalchemy.org/en/14/orm/extensions/mypy.html
mypy
. Надеюсь, благодаря этому улучшится понимание кода редакторами/IDE, и они будут выдавать более адекватные подсказки, а ошибки будут ловиться проще. Прям всё как я люблю. Возрадуйтесь, алхимики!https://docs.sqlalchemy.org/en/14/orm/extensions/mypy.html
Надеюсь то, что такие гиганты, вроде Django и SQLAlchemy, движутся в сторону асинхронности, как-то улучшит ситуацию с поддержкой асинхронных библиотек. На данный момент всё довольно печально. Например,
Прям проблема курицы и яйца в чистом виде: люди не могут начать писать асинхронный код, потому что мало хороших библиотек, а библиотек нету, потому что мало людей пишут асинхронный код. Есть надежда, что когда-то лёд таки тронется.
aiomysql
и aiopg
уже пару лет почти не обновляются, а ведь это вроде бы самые популярные драйверы для двух наиболее популярных СУБД. Для постгреса есть еще asyncpg — он офигенен, но, к сожалению, он заимплеменчен совсем с нуля и поэтому не полностью совместим с libpq
(низкоуровневая библиотека для работы с постгресом, вокруг которой написано подавляющее большинство клиентов и драйверов для этой СУБД для разных ЯП), а значит вы можете не найти в нём какую-нибудь важную фичу, которую поддерживают все остальные клиенты для постгреса.Прям проблема курицы и яйца в чистом виде: люди не могут начать писать асинхронный код, потому что мало хороших библиотек, а библиотек нету, потому что мало людей пишут асинхронный код. Есть надежда, что когда-то лёд таки тронется.
GitHub
GitHub - MagicStack/asyncpg: A fast PostgreSQL Database Client Library for Python/asyncio.
A fast PostgreSQL Database Client Library for Python/asyncio. - MagicStack/asyncpg
Forwarded from Evil Martians
Рубрика «удивительное рядом». Параллельная реальность эмоджи-почты (эмо-мейл? 😅) и эмоджи-доменов за казахстанские тенге: http://amp.gs/c4Ps
tinyprojects.dev
Mailoji: I bought 300 emoji domain names from Kazakhstan and built an email service | Tiny Projects
I bought 300 emoji domain names from Kazakhstan and built an emoji email address service. In the process I went viral on Tik Tok, made $1000 in a week, hired a Japanese voice actor, and learnt about the weird world of emoji domains.
В Go 1.17 введут GIL (глобальный лок интерпретатора), а со временем и тайп-аннотации, чтобы хоть как-то залатать недостатки языка и сравняться с питоном. Давно пора, молодцы!
https://groups.google.com/d/topic/golang-nuts/NfwCP9NxM-8
С прошедшим первым апреля!
https://groups.google.com/d/topic/golang-nuts/NfwCP9NxM-8
С прошедшим первым апреля!
Google
Google Groups
Google Groups allows you to create and participate in online forums and email-based groups with a rich experience for community conversations.
Проклятие умных людей
Интересное мнение про самоуверенность, синдром самозванца и взгляд на мир изнутри большой корпорации.
https://apenwarr.ca/log/20140701
Интересное мнение про самоуверенность, синдром самозванца и взгляд на мир изнутри большой корпорации.
https://apenwarr.ca/log/20140701
apenwarr.ca
The Curse of Smart People
A bit over 3 years ago, after working for many years at a series of startups
(most of which I co-founded), I disappeared through a Certain V...
(most of which I co-founded), I disappeared through a Certain V...