Диджитализируй!
27.7K subscribers
459 photos
54 videos
11 files
530 links
Авторский канал Алексея Голобурдина о разработке ИТ систем и прочем важном

ПРАВИЛА — https://xn--r1a.website/t0digital/200

ЛАЙВ-КАНАЛ — @smthisgoingon

Дать много деняк — sterx@rl6.ru

Роскомнадзор: https://vk.cc/cJmDDB
Download Telegram
Большое интервью Гвидо ван Россума час назад вышло у Лекса Фридмана

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
👍176🔥509🎉3🥰2
Писал в поезде сейчас какой-то пост, рифмуя слова из песни «позвони мне, позвони»:) Слова забылись, посмотрел в Гугле. Оказалось, эта песня на стихи Роберта Рождественского. И я просто залип, читая его стихотворения. Это невероятно. Как в коротких, немногословных рифмованных произведениях можно давать такую яркую, звенящую, мощную картинку. Редко от какого фильма получаешь такие эмоции. А тут стихотворение на несколько экранов смартфона. Потрясающе просто. Почитайте.

https://www.culture.ru/literature/poems/author-robert-rozhdestvenskii

#soulful
👍198🔥3529
⬆️⬆️⬆️
Уважаемый Яндекс Клауд, очень хочецца сделать вам рекламу, дайте деняк нам русалкам, давайте сделаем пользу зрителям, пользу вам и пользу нам вжуууух!

Мы Яндекс Клауд активно сейчас используем в своих проектах. Прям серию материалов бы сделать. Рассказать, потыкать, показать. Об облачных функциях, Serverless Containers и Container Registry, KMS, балансере, мониторинге, управляемых СУБД, Object Storage, CDN, спичките и прочем.

Яндекс гордый, типа мы и так молодцы. Так-то оно так, но ни фига-то не все умеют в эти облака ваши умные, и не все-то ведают о чудесах в них запрятанных волшебных, хотя облака-то боярские, знатные, и много там всего уж могучего понатыкали!

Вдруг кто подписан тут из их PR/маркетинга/influence. По почтам клауда уже стучался давно, тишина. Опять же Яндекс гордый, блохерам драным отвечать:)

Вот сидят люди думают, как бы очередную конфу организовать, на которую 300 человек придёт и ещё полтора в ютубе посмотрит. Рассказать что-то ста тысячам заинтересованных людей — та ну зачеееем нам лёгкие пути в самом-то деле, ютуберы эти неумытые. Мы тут сами с усами, 384 просмотра соберём и чудненько!

Клауд, аушеньки:) sterx@rl6.ru
👍205😁72🔥212🥰1
Внезапно узнал, переустанавливая вчера 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
👍21862🔥14🥰3😁1
Поговорим об управлении зависимостями в Python-проектах и создании сервисов с Poetry!

https://youtu.be/SMYdy7dViiw

#IT #python #backend
👍109🔥7🎉54😁4
This media is not supported in your browser
VIEW IN TELEGRAM
Из нашего чата.

«Да ну с десктопным линуксом уже лет 15 как всё ок, драйвера, окошки, всё летает чики-пуки, шо вы нам тут затираете» — говорили они 😂

А вообще это чисто для познания дзен! Специальный «half-screen mode немного мерцающий». Повышает производительность, успокаивает, развивает воображение.

Это как чёлка у Apple, только лучше!

#linux #tools #gg
😁215👍21🔥86
Иногда у нас-человеков больше информации о типе, чем у статического проверятора типов в Python или TS. Проверятор говорит — вот тут у тебя несоответствие типов, ай-яй-яй, а ты-то знаешь, что всё чётенько.

Для этого придумано приведение типов, в TS реализуется чаще всего с as, в Python с from typing import cast.

В TS реализовано бодрее, чем в Python — TS позволяет только понижать типы с более общего до более конкретного (например, с HTMLElement до HTMLDivElement):

const my_div = document.querySelector(".smth") as HTMLDivElement


Теперь TS будет знать, что в my_div именно div, а не просто какой-то общий html элемент.

А вот привести словарь к строке не позволит:

const structure = {name: "Иваныч"}
console.log((structure as string).toUpperCase())


Скажет, что ты что-то не то делаешь, малый.

А в Python происходит просто заглушение проверятора типов, без какой-то проверки возможности приведения типа:

from typing import cast

def upper(s: str):
return s.upper()

structure = {"name": "Иваныч"}

upper(cast(str, structure))


Проверятор типов это пропустит и оно весело грохнется уже в рантайме.

Впрочем, TS тоже можно обмануть — но это надо писать дополнительно:

const structure = {name: "Иваныч"}
console.log(((structure as unknown) as string).toUpperCase())


Это тоже весело грохнется уже в рантайме.

#it #python #typescript
👍117🔥8😁71🥰1
https://youtu.be/haqLhNN5ZdY

Поговорим о возможностях аспектно-ориентированного программирования в Python, о внедрении зависимостей DI и DI-контейнерах в Python на примере punq, а также в целом о Java подходах vs Python подходах к реализации архитектуры.
Из разборов Ботаним!, 11 глава книги Чистый код, Роберт Мартин.

#youtube #IT #python #codebetter #tools #ботаним
👍69🔥126
Когда Яндекс.Станция ставит какую-то хорошую музыку, я говорю ей — Алиса, влепи-ка лайк. И она такая — запомню, что вам такое по душе.

Такое. Звучит, будто мои вкусы очень специфичны бгг:)

А я что, я ничего!
😁213🔥16🥰6👍53
Зззнатокам Python хитрый вопрос!

Какой тип поставить у параметра field функции print_user_field, чтобы последняя строка при проверке типа показала ошибку? Перечислять второй раз поля User — нельзя, ибо делает возможным рассинхрон имён полей в классе и отдельном их перечислении.

Код скопировать можно здесь.

Вот так это делается на TS

А как на Python, м:)?

#IT #python #typescript #codebetter
👍38🔥5😁4
👍6🔥2
Почему перечислять второй раз поля — плохо? Потому что возможна ситуация на скриншоте ⬆️ — поле name в User переименовалось в username, а в типах параметра field осталось name. Система проверки типов не покажет ошибку при вызове print_user_name(user, "name"), а хотелось бы ошибку увидеть, так как поля name уже нет.

Почему вынести эту проверку на переданное значение field в блок try/except — плохо? Потому что это уведёт ошибку в runtime, а надо минимизировать ошибки в рантайме, ошибки в рантайме = грустящие пользователи.

Систематических способа минимизировать ошибки в рантайме я знаю два, ТТ — как Тульский Токарев, только Типизация и Тесты.

Оба способа не гарантируют отсутствие ошибок, но позволяют вылавливать какое-то их количество на этапах до рантайма, то есть до пользователей. Чем лучше ТТ, тем меньше ошибок в рантайме.

Можно ли обойтись без типизации? Конечно, драматически увеличив количество тестов и проверок в коде, засорив код этими проверками.

Типизация помогает сократить количество тестов, потому что большой пласт ошибок выявляется на этапе проверки типов.

#python #it #codebetter
👍43🔥302
О, ровно 5 лет назад, 10 декабря 2017го я снял свой первый видос на ютуб. Помню, как это было. Было очень интересно и очень тяжело:) Говорить в камеру непросто, потому как невольно смотришь на себя со стороны и понимаешь, что выглядишь сейчас как дурачок, говорящий сам с собой. Ощущение это прошло у меня много позже, после большого количества практики.

Старый офис, старый мак, старый фотик, молодой я:)

Счастлив, что всё не зря.

Спасибо вам!
👍736🔥107🎉8771😁7
Вот люблю я ютуб за это!

К недавнему видосу, в котором помимо прочего говорится про DI и DI-контейнеры, Vadim Ryazanov написал комментарий: «в последнем примере на лицо сервис локатор. то есть некая функция ран сама дергает депенденси из контейнера которые ей нужны, что не торт».

И таки да! В таком сценарии это действительно Service Locator и антипаттерн. Углубился немного, почитал. Отличнейший блог, кстати. Последний пост от 2019го, надеюсь, у автора всё хорошо и он продолжит когда-нибудь писать дальше.

И ещё нашлась даже полноценная книга по DI.

Надо будет сделать отдельный материал в общем.
👍103🔥19🥰2
Ох сколько вопросов на ютубе почему товарищ Лутц не попал в выборку. Ладненько, сниму разнос Лутца попозже:)

#books #it #python
👍82😁401🔥1
Так, ребятушки, давайте S0ER’у 100к уже добьём:)
🔥129👍24😁92🥰1
В ботанском клубе выбрали следующей книгой «Теоретический минимум по Computer Science. Все что нужно программисту и разработчику», ссылка. Сижу про логические вентили, полусумматоры и сумматоры читаю. Интересно оччччень:)

Планируем до НГ прочитать-разобрать её. Старт на следующей неделе.

#ботаним
👍80🔥15