ЛКПП 3: Какой Python язык?
24:09
ЛКПП 2: +
26:32
Ай бұрын
ЛКПП 1: int
20:39
Ай бұрын
Erlang 10 лет спустя
1:07:03
6 жыл бұрын
Трюки с ETS
43:05
6 жыл бұрын
Elixir и Фин-Tech
47:34
6 жыл бұрын
Elixir: Debug 101
18:19
7 жыл бұрын
Фронтенд + Elm - боль
56:57
Phoenix и docker
26:31
7 жыл бұрын
Сила Pattern Matching
35:41
7 жыл бұрын
Пікірлер
@glebmedvedkov3555
@glebmedvedkov3555 10 сағат бұрын
А есть ли курсы по питону для безопасников?
@sobolevn
@sobolevn 10 сағат бұрын
а чем безопасники отличаются от всех остальных? 🤔
@glebmedvedkov3555
@glebmedvedkov3555 9 сағат бұрын
@@sobolevn хмм, да особо ничем. Просто я вроде не прям 0 в питоне, но чтение чужого кода и написание своего пока идёт с трудом. Думал вдруг какие-то есть интересные курсы/упражнения на написание кода (более сложного чем умею сейчас) и понимание чужого кода
@ztarlitz
@ztarlitz 2 күн бұрын
первая часть все таки выглядит как что-то сильно притянутое за уши. как будто ставится знак равно между аннотациями и полноценной статической типизацией.
@ztarlitz
@ztarlitz 2 күн бұрын
8:20 есть еще иррациональные числа I, подмножество R.
@SeliverstovMusic
@SeliverstovMusic 6 күн бұрын
Очень интересно! Показывает сколько де я ещё не знаю 👍👍 Спасибо!
@VasilyRyabovVarjag
@VasilyRyabovVarjag 6 күн бұрын
Чё это… я hex() и bin() пользовался часто, особенно когда работал с железом! Стоит упомянуть еще zero fill, но это для строк скорее, хотя полезно для hex dump’ов выровненных.
@user-mobilnik
@user-mobilnik 7 күн бұрын
Условно бесплатно за 1000 рублей
@user-mobilnik
@user-mobilnik 7 күн бұрын
Специальная функция для bool - not()
@sobolevn
@sobolevn 7 күн бұрын
Нет такой функции :) Есть `not ()` = `not tuple()` >>> import ast >>> ast.dump(ast.parse('not()')) 'Module(body=[Expr(value=UnaryOp(op=Not(), operand=Tuple(elts=[], ctx=Load())))], type_ignores=[])'
@vladimir2139
@vladimir2139 8 күн бұрын
Пишу в основном на Java, но бывает и на Python(ничего особенного, просто иногда bash-скрипты вырастают, и ради читаемости проще их переписать на чем-то более поддерживаемом). Спасибо за курс!
@sobolevn
@sobolevn 8 күн бұрын
У меня как-то раз bash скрипт вырос в github.com/sobolevn/git-secret 😱
@mefffauson8998
@mefffauson8998 9 күн бұрын
Подскажите пожалуйста, какие курсы для начинающих вы рекомендуете?
@sobolevn
@sobolevn 9 күн бұрын
Если с нуля, то я уважаю learn.python.ru Потому что много лет знаю всех, кто его делает. И очень много выпускников :)
@user-pf6of1lz5m
@user-pf6of1lz5m 10 күн бұрын
Очень нравится. Жду следующий урок
@grigorytrofimov6513
@grigorytrofimov6513 11 күн бұрын
assert all([]) is True я думал это просто потому, что под капотом сначала делают flag=False, а потом ищут хотя бы одно исключение но я не думал, что это как то связано с теорией категорий)
@sobolevn
@sobolevn 11 күн бұрын
А тут такое! github.com/sobolevn/the-best-python-course/blob/8331d0f6534199159aab18bd8ce8e32e80094bd1/homeworks/4-bool.md#L4
@linkernick5379
@linkernick5379 12 күн бұрын
То, что bool в Питоне унаследован от int это довольно странная фигня, потому что наследование на неизменяемых типах делает противоречивым операцию сравнения и другие инварианты (Почему True == 1, ведь они разных типов?). Поэтому в Scala, например, наследование на case-классах запрещено.
@slubovsky
@slubovsky 12 күн бұрын
Лучший курс!
@naivrick9782
@naivrick9782 12 күн бұрын
Спасибо 😊
@vandris_
@vandris_ 13 күн бұрын
Доброго времени суток! Спасибо за курс! А будет ли в рамках курса как-то освещаться работа сборщика мусора и счетчика ссылок?
@sobolevn
@sobolevn 13 күн бұрын
конечно, когда дойдем до объектов
@user-zl5sp9yh1n
@user-zl5sp9yh1n 13 күн бұрын
Только сегодня посмотрел интересный ролик. Скажите, а почему тут ( print(1 or None and print("hello world")) ) второй print не выполнится? Точнее почему - ясно, но оно получается не бьется а тем что вы рассказывали про АСТ?
@sobolevn
@sobolevn 13 күн бұрын
Почему не выполнится, давайте разбираться. Смотрите, вот такой будет ast: gist.github.com/sobolevn/2b1e1c28e127feffb01bf435f37eb6e3 Далее, смотрим байткод: gist.github.com/sobolevn/2b1e1c28e127feffb01bf435f37eb6e3#file-boolop_dis-py В итоге получаем: ``` >>> None and print("hello world") >>> 1 or None 1 ``` Надеюсь, так понятно :) Ленивые штуки - всегда неочевидные!
@stensmitt
@stensmitt 13 күн бұрын
Привет! Спасибо за урок)
@DAJakaRedAries
@DAJakaRedAries 13 күн бұрын
Очень интересно, спасибо за курс!
@Reality-behind-
@Reality-behind- 13 күн бұрын
11:56 Это пример из книги (Python к Вершинам Мастерства 2016 года) недавно перечитывал второе издание
@sobolevn
@sobolevn 13 күн бұрын
Безмерно уважаю Лучиано. Кстати, я как-то приглашал его к нам на конференцию: kzbin.info/www/bejne/a32Xn5SIrbCogdk Была возможность пообщаться с ним, от чего уважения только прибавилось :)
@Lelouch-
@Lelouch- 13 күн бұрын
Супер интересно, кайф, спасибо за курс
@zaharvarfolomeev1536
@zaharvarfolomeev1536 13 күн бұрын
Мне кажется очень важно под каждым видео курса писать теплые слова благодарности. Пламенное спасибо за курс такого качества! Речь, последовательность инфы, объяснение и примеры, все супер.
@sobolevn
@sobolevn 14 күн бұрын
Звук починил! Павел Пшеничный из компании Ядро, спасибо тебе! Единственная компания из многих десятков, кто откликнулся на призыв помочь со звуком. И вышло - просто кайф!
@lizenox
@lizenox 14 күн бұрын
Походу я понял, чтобы вырасти из middle и стать senior на Python, мне нужно выучить C! =)
@amogusbokus976
@amogusbokus976 15 күн бұрын
14:31 sq_concat, а не sq_add :)
@naivrick9782
@naivrick9782 16 күн бұрын
Что такое _Т_
@sobolevn
@sobolevn 16 күн бұрын
какое T? :)
@yuliyao192
@yuliyao192 19 күн бұрын
typeshed упоминал и Рамальо, но что это в деталях, послушала бы конечно Спасибо за канал! Это лучшее, что видела по питону.
@sobolevn
@sobolevn 19 күн бұрын
Ставлю два лайка!
@alexandervalter
@alexandervalter 21 күн бұрын
Просто Боженька!
@alyarock
@alyarock 21 күн бұрын
Никогда не пользовался typeshed
@user-hd8oy9xp8m
@user-hd8oy9xp8m 21 күн бұрын
Спасибо за урок узнал новое для себя)
@user-ff1sd6wl1h
@user-ff1sd6wl1h 22 күн бұрын
Присоединился после пайтон-митапа от еврона. Чуть не упустил же этот ценный материал)
@lxgdark777
@lxgdark777 22 күн бұрын
Какой Python язык? Ответ: всех задравший!
@aiornerok3931
@aiornerok3931 22 күн бұрын
Давай видосы про litestar
@OmgFiny
@OmgFiny 22 күн бұрын
Про импорты точно интересно, можно добавить пару слов про circular import error
@denisdenis00
@denisdenis00 22 күн бұрын
звук!
@denisdenis00
@denisdenis00 22 күн бұрын
мощно но почему так тихо?((
@kodeng6333
@kodeng6333 23 күн бұрын
Единственный курс на ютубе продолжения которого захотелось ждать)💥
@suenduk_dj
@suenduk_dj 23 күн бұрын
я тысячный зритель этого видео, ура
@JohnDoe-pm8cz
@JohnDoe-pm8cz 23 күн бұрын
интересный подход, спасибо за курс
@user-rg6dg4ip8b
@user-rg6dg4ip8b 23 күн бұрын
Ничего не понято, но очень интересно. Россыпь кода, куда чего зачем знать необязательно.
@naivrick9782
@naivrick9782 23 күн бұрын
Никита может по мимо Ютуба добавить всё на степик + задачки для усвоения
@alexdubkov6998
@alexdubkov6998 24 күн бұрын
Конечно, большинство всех питонистов вряд ли будут писать си-расширения. А вот mypyc компилятор, когда мы все дружно будем использовать типы - это интригует. Спасибо за лекцию!
@chasubavil
@chasubavil 24 күн бұрын
Формат превосходный, контент уникальный! Название курса полностью оправдано. Ведь это разработчик ядра снизошёл до нас, простых смертных, и разбирает всё досконально. Это вам не лапша от «синьёра за 3 года» 😼
@user-qx6ln1hv4v
@user-qx6ln1hv4v 24 күн бұрын
1) Если после оптимизации сложения до BINARY_OP_ADD_INT мы сложим строки, то после неудачного сложения, будет вызвана BINARY_OP? Сколько раз нужно потом сложить строки, чтобы оптимизация стала BINARY_OP_ADD_UNICODE? 2) Как я понял ошибку с += для tuple, она возникает из-за того что мы после изменения списка, пытаемся присвоить "новый" список, вместо старого. Но если посмотреть id списка до += и после, то id совпадает, что намекает что список как объект остается тем же. Т.е. проблема в том что мы не можем менять объект, даже если это тот же самый объект?
@sobolevn
@sobolevn 24 күн бұрын
1) да, fallback в BINARY_OP предусмотрен 2) tuple не определяет *никаких* методов для мутации себя. сравнение значений даже не успевает произойти. метод не найден, ничего не вызывается :(
@user-rh8kb4fy9g
@user-rh8kb4fy9g 24 күн бұрын
Разбор typeshed был бы очень уместен и приятен.
@user-qx6ln1hv4v
@user-qx6ln1hv4v 24 күн бұрын
Никита, спасибо за курс! Есть понимание сколько всего будет уроков и как часто они будут выходить?
@sobolevn
@sobolevn 24 күн бұрын
Надеюсь, что где-то 50 выпусков. В среднем раз в неделю, иногда чаще, иногда реже.
@stensmitt
@stensmitt 25 күн бұрын
Спасибо за курс. Интересно и информативно)
@linkernick5379
@linkernick5379 25 күн бұрын
Далее аргумент о том, что таргетом и в Python и в Rust является LLVM, а следовательно они ничем не отличаются - это софистика. Тот код, который генерирует питонячий компилятор и код, который генерирует ржавый компилятор отличаются кардинально, скажем в перфомансе на порядки (за исключением узких случаев). И причина в том, что питонячий LLVM код реализует семантику Питона, вместе с GIL, счётчиком ссылок, динамической типизацией, косвенными вызовами, сборщиком мусора и прочими прелестями, а ржавый LLVM код реализует семантику языка RUST с контролем бинарного представления на уровне типов, уничтоженным алиасингом, прямыми вызовами и отсутствием GC. Так что говорить, что раз LLVM таргет есть и там, и там и следовательно они якобы теперь одинаковые - это лгать аудитории.
@sobolevn
@sobolevn 25 күн бұрын
- Оно не компилируется - Оно всего лишь компилируется в инструкции VM - Оно компилируется в LLVM с другой семантикой ~~~ Вы находитесь здесь ~~~ - Оно компилируется в менее производительный код - Оно компилируется :(
@linkernick5379
@linkernick5379 25 күн бұрын
@@sobolevn Ну я и говорю - софистика. В вашей теории разницы между, скажем, Go и Python нет никакой, а вот на практике разница есть и громадная. Подписался, жду с нетерпением следующей серии по языку программирования Python ;-)
@vitalyl1327
@vitalyl1327 20 күн бұрын
​@@sobolevnабсолютно любой язык можно компилировать. Более того, это совершенно тривиальная задача. Но вот что невозможно, так это из языка с настолько упорото динамической семантикой компилить в эффективный код . Дело не в комаиляции/интерпретации, а в динамизме. Просто питон дряной язык by design, и конфетку из него не вылепить никогда.
@naivrick9782
@naivrick9782 16 күн бұрын
- Какой Python язык? - Оказывается сложный
@linkernick5379
@linkernick5379 15 күн бұрын
@@naivrick9782да, Pyrhon сложность задачи помножает ещё и на свою излишнюю сложность, внося мутабельность, побочные эффекты и динамизм в программы, что приводит к невозможности протестировать полностью и тем более доказать корректность программ.
@linkernick5379
@linkernick5379 25 күн бұрын
GIL делает невозможным использовать Питон на низком уровне или в многопоточном окружении. Если вы сейчас начнёте приводить доводы в виде Multiprocessing или субинтерпретаторов, то это не является полноценной поддержкой многопоточности. Если приведёте в пример nogil, то это является _другим_ языком с синтаксисом Питона, подобно ситуации с pypy, MicroPython и другими вариациями. То есть Питон не язык низкого уровня никаким боком, от разработчика скрыта возможность контроля ресурсов на таком же уровне, на каком это доступно в C, питонячьи абстракции (тот же GIL) становятся препятствием для этого.
@sobolevn
@sobolevn 25 күн бұрын
Что вам мешает отключать gil из C? Доступ к CAPI будет только у одного потока в один момент, но остальное - может работать как угодно. Куча библиотек так и делают для ускорения вычислений. И даже в stdlib так. Почему `nogil` является другим языком? Я пишу `.configure --disable-gil` и у меня нет органичения на количество потоков, всё. Если "другой язык" в плане семантики, то тут про любую фичу так можно сказать.
@linkernick5379
@linkernick5379 25 күн бұрын
@@sobolevn Что мешает? Мешает, что 90% библиотек просто перестанет работать, и какое-нибудь исключение из недр какого-нибудь django сделает невозможным использовать этот фреймворк с понятными для проекта последствиями. Даже если ничего не сломается в библиотеках, это всё ещё не даёт возможность безопасно запускать Питон в многопоточном окружении - интерпретатор байткода и счётчик ссылок не предназначены для этого. Далее, вы привели в пример наличие FFI, где можно освободить GIL и считаете, что проблема решена. А я вот не считаю, что проблема решена, она просто вытолкнута на другой, более низкий, уровень, где можно получить быстрое и параллелизуемое решение, но ценой сильно возросших трудозатрат, и с течением времени проблем от наличия Питона становится больше, чем пользы - не каждая команда готова переизобретать аналог pytorch для своего проекта.
@notacatbeaver7853
@notacatbeaver7853 24 күн бұрын
​@@linkernick5379Ok and?
@notacatbeaver7853
@notacatbeaver7853 25 күн бұрын
Спасибо за лекцию! Самое то, чтобы успокоиться после сложения)
@alexpunches9042
@alexpunches9042 25 күн бұрын
про импорты и неймспейсы интересно 🙏