Питонические атаки
1.19K subscribers
183 photos
4 videos
1 file
459 links
Всяческие заметки про программирование на Python и другие весёлые истории.
Download Telegram
Фотосессия роутера в пряже для вчерашнего поста. Позирует, красавец. Аж захотелось купить его ещё раз. Тот самый момент, когда пригодились скиллы жены-инстаграмщицы.
Годный небольшой курс по основам Git в игровой форме. Для совсем новичков этого, пожалуй, будет недостаточно, но для закрепления уже имеющихся знаний — самое то. Информация подана визуально — это классно. Узнал кое-что новое.

https://learngitbranching.js.org/?locale=ru_RU

#git
Задонатил чутка в Python Software Foundation. В этом и, видимо, в следующем году из-за ковидов прибыль фонда от конференций сильно меньше обычного. Ребятам нужна помощь, чтобы держаться на плаву и поддерживать экосистему вокруг языка в рабочем состоянии.

Посмотрите страницу кампании по сбору донатов, там есть всякие акции. Например, можно купить PyCharm со скидкой, а все собранные деньги пойдут в PSF.

Я на страницах истории: https://www.python.org/psf/donations/#donors:~:text=Andrey%20Semakin
Визуализация сроков жизни разных версий Python.

https://python-release-cycle.glitch.me/
Пока паттерн-матчинг в питоне (по-видимому, будет 3.10) ещё только выпекается, мы можем реализовать один из его аспектов — проверку на полноту (exhaustiveness) — при помощи подручных средств уже сейчас. Классная идея, полезный приём, рекомендую статью к прочтению.

https://hakibenita.com/python-mypy-exhaustive-checking
Надвигается PyCon BY, который в этом году проходит в онлайне. Регистрация бесплатная. Придётся регаться и слушать, потому что в программе уже есть пара интересных докладов и, возможно, позже появятся еще.

https://by.pycon.org/
Forwarded from GitHub'ненько
Just add "1s" after "github" when viewing code on github.com and VS Code loads up instantly
#editor #dev
https://github.com/conwnet/github1s
Python 3.9.2 релизнулся. Ну всё, теперь уже точно можно переходить на ветку 3.9.

Кстати, забавно, что в Release Notes всегда прикладывают какой-нибудь скетч из Monty Python's Flying Circus. Чуваки вот уже 30 лет чтут традиции. Вообще, похоже, что питонисты — самые преданные поклонники тонкого британского юмора.

https://www.python.org/downloads/release/python-392/
Люблю следить за состоянием экосистемы, поэтому вот результаты очередного опроса за 2020 год среди питонистов, проведенного PSF и JetBrains.

Радует, что доля Python 2 с каждым годом становится всё меньше.

FastAPI стал третьим по популярности веб-фреймворком после, ожидаемо, Flask и Django.

https://www.jetbrains.com/lp/python-developers-survey-2020/

#jetbrains #fastapi #flask
Готовится PEP, который добавит в 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-контейнеры станет совсем просто 😊
Роскомнадзор замедляет и вроде как грозится в следующем месяце заблокировать Твиттер. В связи с этим напоминаю, что в российском интернете без VPN делать нечего. Тем временем, у меня с моим хитро настроенным роутером все работает отлично. Я пока не разбирался за счёт чего именно у меня не замедлился Твиттер, но суть в том, что всё работает нормально 😊

Вот тут проверьте скорость своего Твиттера: https://lynx.pink/is-my-twitter-slow-or-what/

А вот тут почитайте, как настроить свой роутер с VPN по красоте, всем рекомендую: https://semakin.dev/2020/12/openwrt_vpn_rkn/
Неделю назад 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
Если интересно, то можете почитать (и поставить палец вверх) этот эпичный тред в баг-трекере 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