WSL (Windows Subsystem for Linux) — это когда ты, будучи на Windows, запускаешь терминал и оказываешься в полноценном
https://github.com/microsoft/wslg
Пока не понял, зачем мне это надо, но это очень круто. На скриншоте в репозитории у них запущен PyCharm внутри WSL.
bash
(или что там у вас, лично мне нравится fish
), где есть все привычные консольные инструменты. А скоро эта штука сможет запускать и графические программы внутри Linux, отрисовывая окна в Windows. И ваш софт с GUI из Linux прям попадёт в «Пуск» и в целом будет мало чем отличаться от обычных, виндовых программ. Эта функциональность уже доступна в сборках Windows Insiders, а код лежит на GitHub:https://github.com/microsoft/wslg
Пока не понял, зачем мне это надо, но это очень круто. На скриншоте в репозитории у них запущен PyCharm внутри WSL.
GitHub
GitHub - microsoft/wslg: Enabling the Windows Subsystem for Linux to include support for Wayland and X server related scenarios
Enabling the Windows Subsystem for Linux to include support for Wayland and X server related scenarios - microsoft/wslg
Forwarded from Geeks (shekpar)
Себастьян Рамирез, известный под никнеймом "tiangolo", когда-то побывал в гостях у подкаста TalkPython и из этого выпуска я узнал о его проект FastAPI. Для тех, кто не знает - Себастьян разрабатывает фреимворк FastAPI и сейчас это очень быстро набирающий популярность инструмент для разработки HTTP сервисов на python. Фреймворк из коробки сразу предоставляет все плюшки использования тайпинга для валидации данных вкупе с моделями библиотеки pydantic, автогенерацией openapi спеки и много всего разного и приятного по мелочам. После фастапи мне пришлось даже зафрендзоноить aiohttp и навсегда бросить Flask, который в моей жизни так и оставался быстрой наколеночной хреновиной для прототипирования. В общем, я рад и всем кто не смотрел фреймворк - советую глянуть. Использую я его как для рабочих сервисов, так и для пэт-проджектов - ощущения самые положительные.
https://talkpython.fm/episodes/show/284/modern-and-fast-apis-with-fastapixx
https://talkpython.fm/episodes/show/284/modern-and-fast-apis-with-fastapixx
talkpython.fm
Modern and fast APIs with FastAPI
As Python 3 has eclipsed the old constrains of Python 2 and web frameworks that adopted them, we have seen a big jump in new frameworks appearing on the scene taking full advantage of things like type hints, async and await, and more.
Microsoft становится PSF Visionary Sponsor. Чтобы вы понимали, это наивысшая степень спонсорства. На данный момент с таким же статусом спонсируют Python только Google и Bloomberg. Microsoft вообще молодцы.
https://pyfound.blogspot.com/2021/04/welcoming-microsoft-as-visionary-sponsor.html
А ещё из этого поста стало известно, что Гвидо в Microsoft работает над улучшениями производительности CPython — эталонной реализации интерпретатора.
UPD: а в блоге Microsoft эта новость изложена интереснее:
https://devblogs.microsoft.com/python/?p=8396
https://pyfound.blogspot.com/2021/04/welcoming-microsoft-as-visionary-sponsor.html
А ещё из этого поста стало известно, что Гвидо в Microsoft работает над улучшениями производительности CPython — эталонной реализации интерпретатора.
UPD: а в блоге Microsoft эта новость изложена интереснее:
https://devblogs.microsoft.com/python/?p=8396
Python Software Foundation Blog
Welcoming Microsoft as a Visionary Sponsor
Microsoft helps millions of Python developers achieve more by enabling Python support across products and services like Windows, Visual Stud...
Товарищ посоветовал игру для пятничного вечера — симулятор канбана. Забавно подвигать тикеты между столбцами, поназначать задачи разным людям. Цель игры — максимизировать прибыль. В игре, как и в жизни, постоянно происходит какая-то дичь, мешающая работать. Попробуйте!
http://www.kanbanboardgame.com/
http://www.kanbanboardgame.com/
#оффтопик
Я в последнее время стал читать много разных источников, и вот, спустя 22 года после создания этого протокола, я стал активно пользоваться RSS. Feedly — очень удобный бесплатный клиент, есть и веб-версия, и мобильные приложения.
Дак вот, к чему это я. Бесит, что некоторые интересные источники существуют исключительно в виде e-mail рассылок. Мне кажется, что авторы таких ресурсов максимально не правы. Лично у меня письма на почту воспринимаются как что-то, что нужно открыть и прочитать как можно скорее, иначе оно будет доставать этим висячим уведомлением. Но я не всегда готов прям сразу брать и читать длинные письма рассылок. Но если я отмечу сообщение прочитанным, то потом забуду про него и не прочту, а я хочу прочитать, но не прямо сейчас. Намного удобнее просто открыть свой RSS-клиент в спокойной обстановке и в подходящее для меня время, и с радостью обнаружить, что мне принесли нового контента почитать. Короче, для регулярных изданий формат RSS-фидов мне кажется более подходящим, чем рассылки. Да и на почту у меня и так много чего сыпется, хотелось бы сокращать количество писем. Есть такой классный бесплатный сервис, который конвертирует e-mail рассылки в RSS-фиды: https://kill-the-newsletter.com/
И это просто офигенно! Если тоже мучаетесь, читая рассылки на почте, то рекомендую попробовать.
Вот какие рассылки я уже конвертировал для себя в RSS:
* https://tldr.tech/ — короткие ежедневные гиковские новости про технологии, науку и программирование;
* https://programmerweekly.com/ — еженедельные новости про разработку;
* https://pythonweekly.com/ — еженедельные новости про Python.
Кстати, поделитесь в комментариях рассылками и блогами, которые вы читаете 👇
Я в последнее время стал читать много разных источников, и вот, спустя 22 года после создания этого протокола, я стал активно пользоваться RSS. Feedly — очень удобный бесплатный клиент, есть и веб-версия, и мобильные приложения.
Дак вот, к чему это я. Бесит, что некоторые интересные источники существуют исключительно в виде e-mail рассылок. Мне кажется, что авторы таких ресурсов максимально не правы. Лично у меня письма на почту воспринимаются как что-то, что нужно открыть и прочитать как можно скорее, иначе оно будет доставать этим висячим уведомлением. Но я не всегда готов прям сразу брать и читать длинные письма рассылок. Но если я отмечу сообщение прочитанным, то потом забуду про него и не прочту, а я хочу прочитать, но не прямо сейчас. Намного удобнее просто открыть свой RSS-клиент в спокойной обстановке и в подходящее для меня время, и с радостью обнаружить, что мне принесли нового контента почитать. Короче, для регулярных изданий формат RSS-фидов мне кажется более подходящим, чем рассылки. Да и на почту у меня и так много чего сыпется, хотелось бы сокращать количество писем. Есть такой классный бесплатный сервис, который конвертирует e-mail рассылки в RSS-фиды: https://kill-the-newsletter.com/
И это просто офигенно! Если тоже мучаетесь, читая рассылки на почте, то рекомендую попробовать.
Вот какие рассылки я уже конвертировал для себя в RSS:
* https://tldr.tech/ — короткие ежедневные гиковские новости про технологии, науку и программирование;
* https://programmerweekly.com/ — еженедельные новости про разработку;
* https://pythonweekly.com/ — еженедельные новости про Python.
Кстати, поделитесь в комментариях рассылками и блогами, которые вы читаете 👇
Kill-The-Newsletter
Kill the Newsletter!
Convert email newsletters into Atom feeds
Python 3.10 получил свой первый бета-релиз. Это значит, что наступил фича-фриз, дальше будут только баг-фиксы и улучшения в документацию. Напомню, что финальный релиз 3.10.0 ожидается в октябре.
https://pythoninsider.blogspot.com/2021/05/python-3810-395-and-3100b1-are-now.html
Кроме того, с этого момента можно считать официально начатой разработку ветки 3.11.
https://pythoninsider.blogspot.com/2021/05/python-3810-395-and-3100b1-are-now.html
Кроме того, с этого момента можно считать официально начатой разработку ветки 3.11.
Blogspot
Python Insider: Python 3.8.10, 3.9.5, and 3.10.0b1 are now available
Кстати, прикольно, что в Python 3.10 будут улучшены сообщения об ошибках. Например, вместо общего «invalid syntax» Python сможет объяснять, что ему не хватает двоеточия или же пользователь пытается присвоить вместо сравнения (перепутал
==
и =
). Это должно сильно помочь новичкам разобраться с языком, да и в целом это только улучшит впечатления от пользования языком.Кстати, снова про спонсоров Python Software Foundation. Мне почему-то показалось, что только Microsoft недавно стал Visionary Sponsor, хотя на самом деле два других спонсора — Google и Bloomberg — тоже получили этот статус совсем недавно. Благодаря этому PSF теперь может нанять двух фулл-тайм работников.
Разработчик, который будет заниматься поддержкой и развитием CPython.
https://pyfound.blogspot.com/2021/04/the-psf-is-hiring-developer-in.html
Проджект-менеджер, который будет заниматься развитием всего, что связано с
https://pyfound.blogspot.com/2021/04/the-psf-is-hiring-python-packaging.html
Разработчик, который будет заниматься поддержкой и развитием CPython.
https://pyfound.blogspot.com/2021/04/the-psf-is-hiring-developer-in.html
Проджект-менеджер, который будет заниматься развитием всего, что связано с
pip
, PyPI и системой пакетирования в целом.https://pyfound.blogspot.com/2021/04/the-psf-is-hiring-python-packaging.html
Blogspot
The PSF is hiring a Developer-in-Residence to support CPython!
The Python Software Foundation is happy to announce the creation of the Developer-in-Residence role. The Developer-in-Residence will work fu...
Forwarded from opennet.ru
Facebook открыл код Cinder, форка CPython, используемого в Instagram https://opennet.ru/55083/
www.opennet.ru
Facebook открыл код Cinder, форка CPython, используемого в Instagram
Компания Facebook опубликовала исходные тексты проекта Cinder, развивающего ответвление от CPython 3.8.5, основной эталонной реализации языка программирования Python. Cinder применяется в рабочей инфраструктуре Facebook для обеспечения функционирования сервиса…
opennet.ru
Facebook открыл код Cinder, форка CPython, используемого в Instagram https://opennet.ru/55083/
☝️ Это ведь уже не первый форк CPython, где корпорации пытаются допилить его под свои нужды и срезать какие-то неоптимальные углы. Вспомнить хотя бы Pyston от Dropbox, который на разных бенчмарках показывает прирост производительности от 20 до 95% по сравнению с CPython. Хотя полностью они исходники так и не открыли.
Что я могу сказать по этому поводу. Во-первых, мне странно, что если корпорацию не устраивает производительность Python, им проще сделать свой форк интерпретатора, чем переписать свои проекты на более производительные языки (например, Golang). Видимо, у них там прям очень много кода, а горизонтальное масштабирование уже себя исчерпало. Во-вторых, хотя все эти ускоряющие проекты скорее всего обречены умереть в безвестности, хочется надеяться, что ценные идеи оттуда всё-таки постепенно переползут в CPython. Количество экспериментальных форков рано или поздно должно конвертироваться в качество основного проекта.
Кстати, а вы видели вот такой документ? Это план по ускорению CPython от одного из core-контрибьюторов: https://github.com/markshannon/faster-cpython/blob/master/plan.md
Что я могу сказать по этому поводу. Во-первых, мне странно, что если корпорацию не устраивает производительность Python, им проще сделать свой форк интерпретатора, чем переписать свои проекты на более производительные языки (например, Golang). Видимо, у них там прям очень много кода, а горизонтальное масштабирование уже себя исчерпало. Во-вторых, хотя все эти ускоряющие проекты скорее всего обречены умереть в безвестности, хочется надеяться, что ценные идеи оттуда всё-таки постепенно переползут в CPython. Количество экспериментальных форков рано или поздно должно конвертироваться в качество основного проекта.
Кстати, а вы видели вот такой документ? Это план по ускорению CPython от одного из core-контрибьюторов: https://github.com/markshannon/faster-cpython/blob/master/plan.md
GitHub
GitHub - pyston/pyston: (No longer maintained) A faster and highly-compatible implementation of the Python programming language.
(No longer maintained) A faster and highly-compatible implementation of the Python programming language. - pyston/pyston
Стоило только вспомнить про Pyston, как они в тот же день выпускают новый релиз с полностью открытыми исходниками. Заявляют, что можно просто заменить бинарник
https://blog.pyston.org/2021/05/05/pyston-v2-2-faster-and-open-source/
python
на pyston
и получить ускорение на 30%. К сожалению, внесены некоторые низкоуровневые изменения, из-за чего предсобранные пакеты (wheels) для CPython не подойдут, придётся все C/Rust/…-зависимости пересобирать из исходников.https://blog.pyston.org/2021/05/05/pyston-v2-2-faster-and-open-source/
The Pyston Blog
Pyston v2.2: faster and open source
We are proud to announce Pyston v2.2, the latest version of our faster implementation of the Python programming language. This version is significantly faster than previous ones, and importantly is…
А нет ли у вас желания отвлечься от программирования на работе/учебе и ещё немного покодить для себя? Правила игры такие — я придумываю небольшую задачу (возможно даже интересную), мы все её решаем, а затем в процессе культурного перекидывания какашками без правил выясняем, чьё решение самое правильное и красивое. Язык — Python, само собой. Просто интересно понаблюдать за ходом мыслей других людей, как они подходят к решению и какими приёмами пользуются.
Было бы интересно?
Anonymous Poll
50%
Я за любой кипиш
34%
Пожалуй, но сомневаюсь, что найду время
16%
Я больше люблю просто почитать
Интересная и забавная статья про то, почему нативные расширения (это которые написаны на C/Rust/…) для Python иногда работают не так быстро, как мы ожидаем. В конце статьи получилось так, что можно и на чистом Python сделать быстро, если хорошенько разобрать задачу 😅
https://pythonspeed.com/articles/python-extension-performance/
https://pythonspeed.com/articles/python-extension-performance/
Python⇒Speed
The hidden performance overhead of Python C extensions
A compiled language like Rust or C is a lot faster than Python, with some caveats. Learn about the hidden overhead you’ll need to overcome.
Идея ускорения Python и правда как-то очень популярна в последнее время. Может оно всегда так было, а я просто не обращал внимания?
В конце прошлого года вышел .NET5, который теперь кросс-платформенный, полностью открытый и независимый от Microsoft (по крайней мере формально). Да, теперь оно работает не только на Windows. Для справки: наиболее популярными языками для .NET являются C# и F#. Предельно упрощенная схема работы в .NET вот такая:
Есть такой проект —
Звучит невероятно круто, почитайте!
https://tonybaloney.github.io/posts/running-python-on-dotnet-5-with-pyjion.html
#pyjion #jit
В конце прошлого года вышел .NET5, который теперь кросс-платформенный, полностью открытый и независимый от Microsoft (по крайней мере формально). Да, теперь оно работает не только на Windows. Для справки: наиболее популярными языками для .NET являются C# и F#. Предельно упрощенная схема работы в .NET вот такая:
Код на C# -> CIL -> машинный кодCIL — это промежуточное представление, в которое сначала компилируются все .NET-языки. Фишка в том, что .NET умеет оптимизировать этот CIL и компилировать его в машинный код, в том числе и в режиме JIT.
Есть такой проект —
pyjion
— который умеет конвертировать байт-код Python в CIL. Дальше хитрые механизмы .NET оптимизируют код и компилируют его на лету в эффективные машинные инструкции. А самая главная фишка — это не какой-то отдельный интерпретатор, это просто библиотека для ванильного CPython, так что весь ваш код должен работать точно так же. Всё, что нужно сделать — это установить на вашу машину .NET5 и добавить в начало программы (лучше даже до всех импортов) две строчки:import pyjionБабах! Дальше куски вашей программы будут в процессе выполнения компилироваться в машинные инструкции. Первый прогон кода может быть не таким быстрым из-за JIT-компиляции, зато последующие разы должны стать быстрее. На данный момент большого ускорения не обещают, но
pyjion.enable()
pyjion
продолжает обрастать оптимизациями, специфичными для Python-кода, так что со временем получаемый машинный код будет более эффективным.Звучит невероятно круто, почитайте!
https://tonybaloney.github.io/posts/running-python-on-dotnet-5-with-pyjion.html
#pyjion #jit
tonybaloney.github.io
Running Python on .NET 5
An update on the Pyjion project to plug a JIT into CPython using the .NET 5 CLR JIT compiler
Судя по расписанию, на PyCon US, который состоится уже совсем скоро в онлайне, будут выступления как минимум про
Расписание PyCon: https://us.pycon.org/2021/schedule/talks/
Собирается ли кто-нибудь его смотреть? Регистрация платная, если что.
pyjion
(JIT-компилятор на основе .NET5) и Cinder
(форк CPython с оптимизациями, используемый в Instagram). В целом, это объясняет почему такая активность в последнее время. А почему Pyston вышел из анабиоза именно сейчас — загадка. Видимо, просто совпадение.Расписание PyCon: https://us.pycon.org/2021/schedule/talks/
Собирается ли кто-нибудь его смотреть? Регистрация платная, если что.
В репо CPython переименовали главную ветку в
Это переименование затронуло 1,4 тысячи пулл-реквестов и больше 700 форков. В процессе даже немножко сломался GitHub. В итоге инженерам из GitHub пришлось завершить переименование ветки в ручном режиме.
https://github.community/t/renaming-python-master-branch-to-main-1-4k-prs-700-repositories-triggered-server-http-error-500/178090
main
. Не знаю, зачем вам это знание 😅Это переименование затронуло 1,4 тысячи пулл-реквестов и больше 700 форков. В процессе даже немножко сломался GitHub. В итоге инженерам из GitHub пришлось завершить переименование ветки в ручном режиме.
https://github.community/t/renaming-python-master-branch-to-main-1-4k-prs-700-repositories-triggered-server-http-error-500/178090
GitHub Support Community
Renaming Python "master" branch to "main" (1.4k PRs & 700 repositories) triggered server HTTP error 500
Hi, the default “master” branch of the python/cpython project was renamed to “main”. The dialog announced that 1.4k pull requests and 747 repositories will be impacted. A few minutes later, a “main” branch was created, the default remains “master”, and h…
Forwarded from Python etc
Since Python doesn't have a
This is an infinite type and you can't construct in a strictly typed language (and why would you?) because it's unclear how to construct the first instance (thing-in-itself?). For example, in Haskell:
char
type, an element of str
is always str
:'@pythonetc'[0][0][0][0][0]
# '@'
This is an infinite type and you can't construct in a strictly typed language (and why would you?) because it's unclear how to construct the first instance (thing-in-itself?). For example, in Haskell:
Prelude> str = str str
<interactive>:1:7: error:
• Occurs check: cannot construct the infinite type: t1 ~ t -> t1