Питонические атаки
1.19K subscribers
183 photos
4 videos
1 file
459 links
Всяческие заметки про программирование на Python и другие весёлые истории.
Download Telegram
WSL (Windows Subsystem for Linux) — это когда ты, будучи на Windows, запускаешь терминал и оказываешься в полноценном bash (или что там у вас, лично мне нравится fish), где есть все привычные консольные инструменты. А скоро эта штука сможет запускать и графические программы внутри Linux, отрисовывая окна в Windows. И ваш софт с GUI из Linux прям попадёт в «Пуск» и в целом будет мало чем отличаться от обычных, виндовых программ. Эта функциональность уже доступна в сборках Windows Insiders, а код лежит на GitHub:

https://github.com/microsoft/wslg

Пока не понял, зачем мне это надо, но это очень круто. На скриншоте в репозитории у них запущен PyCharm внутри WSL.
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
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
Товарищ посоветовал игру для пятничного вечера — симулятор канбана. Забавно подвигать тикеты между столбцами, поназначать задачи разным людям. Цель игры — максимизировать прибыль. В игре, как и в жизни, постоянно происходит какая-то дичь, мешающая работать. Попробуйте!

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.

Кстати, поделитесь в комментариях рассылками и блогами, которые вы читаете 👇
Python 3.10 получил свой первый бета-релиз. Это значит, что наступил фича-фриз, дальше будут только баг-фиксы и улучшения в документацию. Напомню, что финальный релиз 3.10.0 ожидается в октябре.

https://pythoninsider.blogspot.com/2021/05/python-3810-395-and-3100b1-are-now.html

Кроме того, с этого момента можно считать официально начатой разработку ветки 3.11.
Кстати, прикольно, что в 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

Проджект-менеджер, который будет заниматься развитием всего, что связано с pip, PyPI и системой пакетирования в целом.
https://pyfound.blogspot.com/2021/04/the-psf-is-hiring-python-packaging.html
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
Стоило только вспомнить про Pyston, как они в тот же день выпускают новый релиз с полностью открытыми исходниками. Заявляют, что можно просто заменить бинарник python на pyston и получить ускорение на 30%. К сожалению, внесены некоторые низкоуровневые изменения, из-за чего предсобранные пакеты (wheels) для CPython не подойдут, придётся все C/Rust/…-зависимости пересобирать из исходников.

https://blog.pyston.org/2021/05/05/pyston-v2-2-faster-and-open-source/
А нет ли у вас желания отвлечься от программирования на работе/учебе и ещё немного покодить для себя? Правила игры такие — я придумываю небольшую задачу (возможно даже интересную), мы все её решаем, а затем в процессе культурного перекидывания какашками без правил выясняем, чьё решение самое правильное и красивое. Язык — Python, само собой. Просто интересно понаблюдать за ходом мыслей других людей, как они подходят к решению и какими приёмами пользуются.
Интересная и забавная статья про то, почему нативные расширения (это которые написаны на C/Rust/…) для Python иногда работают не так быстро, как мы ожидаем. В конце статьи получилось так, что можно и на чистом Python сделать быстро, если хорошенько разобрать задачу 😅

https://pythonspeed.com/articles/python-extension-performance/
Ну очевидно же

#meme
Идея ускорения Python и правда как-то очень популярна в последнее время. Может оно всегда так было, а я просто не обращал внимания?

В конце прошлого года вышел .NET5, который теперь кросс-платформенный, полностью открытый и независимый от Microsoft (по крайней мере формально). Да, теперь оно работает не только на Windows. Для справки: наиболее популярными языками для .NET являются C# и F#. Предельно упрощенная схема работы в .NET вот такая:

Код на C# -> CIL -> машинный код

CIL — это промежуточное представление, в которое сначала компилируются все .NET-языки. Фишка в том, что .NET умеет оптимизировать этот CIL и компилировать его в машинный код, в том числе и в режиме JIT.

Есть такой проект — pyjion — который умеет конвертировать байт-код Python в CIL. Дальше хитрые механизмы .NET оптимизируют код и компилируют его на лету в эффективные машинные инструкции. А самая главная фишка — это не какой-то отдельный интерпретатор, это просто библиотека для ванильного CPython, так что весь ваш код должен работать точно так же. Всё, что нужно сделать — это установить на вашу машину .NET5 и добавить в начало программы (лучше даже до всех импортов) две строчки:

import pyjion
pyjion.enable()

Бабах! Дальше куски вашей программы будут в процессе выполнения компилироваться в машинные инструкции. Первый прогон кода может быть не таким быстрым из-за JIT-компиляции, зато последующие разы должны стать быстрее. На данный момент большого ускорения не обещают, но pyjion продолжает обрастать оптимизациями, специфичными для Python-кода, так что со временем получаемый машинный код будет более эффективным.

Звучит невероятно круто, почитайте!

https://tonybaloney.github.io/posts/running-python-on-dotnet-5-with-pyjion.html

#pyjion #jit
Судя по расписанию, на PyCon US, который состоится уже совсем скоро в онлайне, будут выступления как минимум про pyjion (JIT-компилятор на основе .NET5) и Cinder (форк CPython с оптимизациями, используемый в Instagram). В целом, это объясняет почему такая активность в последнее время. А почему Pyston вышел из анабиоза именно сейчас — загадка. Видимо, просто совпадение.

Расписание PyCon: https://us.pycon.org/2021/schedule/talks/

Собирается ли кто-нибудь его смотреть? Регистрация платная, если что.
В репо CPython переименовали главную ветку в 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
К какой Силы стороне принадлежишь ты?
Anonymous Poll
86%
master
14%
main
Forwarded from Python etc
Since Python doesn't have a 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