Сделал ещё один заход на контроль типов в Python. На этот раз со стороны собственной библиотеки для контроля изменений типов переменных в runtime.
Общие выводы ясны из названия поста, хотя полученная библиотека более-менее работает и я попытаюсь её со временем довести до ума. Если разработчики Python наведут порядок у себя в проекте.
Как уже писал в обозрении актуального состояния типизации в Python, правильный подход к контролю типов в языке с динамической типизацией — делать контроль во время исполнения программы.
Краткое обоснование:
Из библиотек для контроля типов Python во время выполнения можно выделить только typeguard, которая позволяет контролировать входные и выходные параметры функций и методов. Это уже хорошо и удобно, но хочется большего.
Например, контролировать тип переменных и атрибутов при каждом присваивании им значения.
Библиотеку для такой функциональности я и попытался реализовать, но столкнулся с суровой реальностью.
В конце ноября смотрел чего наворотили в актуальных текстовых редакторах, вроде Atom и VS Code, в итоге нажаловался на них в facebook. Дескать даже файл открыть без мышки не могут. А для меня, как емаксера, тягание мыши — стресс и выпадение из потока — чистые боль и страдание.
Поэтому, и не в первый раз кстати, я решил от добра добра не искать — обновить то, что и так работает. Тем более, в последний раз я радикально перерабатывал конфиг Emacs лет 5 назад.
Кстати, по поводу «не в первый раз». У меня сложилось стойкое ощущение, что Emacs и Vim стали своего рода глобальными локальными оптимумами в пространстве возможных текстовых редакторов. Отказаться от них тем сложнее, чем дольше и глубже с ними знакомишься. А я с Emacs уже лет 12, видимо слезть с него совсем шансов нет.
Так вот. На обновление конфигов у меня ушло примерно 7 рабочих дней :-D И ещё дней 5 на автоматизацию настройки системы с помощью ansible — давно хотел сделать, но всё руки не доходили, а тут за компанию само пошло.
Вот она — прелесть безработности творческого отпуска — можешь неделю настраивать Emacs и никто тебе слова поперёк не скажет.
Если вы начинающий емаксер или просто интересуетесь, не пугайтесь сроков. Emacs — сложная штука, но не на столько. Просто я упоротый и полез делать собственное окружение, а для нормальных людей есть готовые и проверенные сборки: Spacemacs, Doom Emacs и прочие, которые должны работать сразу после установки.
Далее расскажу как я искал нужные библиотеки, какое мнение сформировал о текущем состоянии Emacs и что в итоге получилось.
Итоговый конфиг лежит на github. Если его разместить в /home/<user_name>/.emacs
, то при следующем запуске Emacs сам скачает и установит все нужные библиотеки. Будет работать всё, кроме некоторых фич в режиме редактирования Python — для их включения смотрите определение переменных python‑binaries
, python‑interpreter
, python‑pylint
.
Сбер выпусти свой генератор текста, основанный на GPT-2. Я попробовал скормить ему сказочные описания действий героев. Проверял на jupiter note, опубликованной в вебе, так что вы тоже можете с ней поиграть.
Обновлено: говорят, использовали на GPT-3, а GPT-2 с доработками.
Получилось средненько — не на тех текстах всё-таки нейронка обучалась. Вот если бы ей фэнтези скормили… Текст получается осмысленный, но чувствуется явная нехватка контекста.
Самые интересные примеры под катом.
Из-за непрекращающегося бардака в мире решил отвлечься от стресса и в итоге три недели учился кодить на Julia — портировал с Python один из своих экспериментальных проектов.
Я уже писал про впечатления от документации Julia — «теорию», а сейчас, так сказать, будет «практика».
Недавно мне на глаза попалась пара платных курсов. Один по Python (с примечательной программой), другой по саморазвитию. Оба хорошо сделаны с точки зрения маркетинга, я бы сказал на высоте. И оба, скорее всего, разводилово. Как минимум на уровне взятия денег за то, что можно получить бесплатно.
В тему будет вспомнить и обилие курсов тематики «войти в IT», большинство которых не даёт никакой гарантии.
Подобные курсы пиарятся по лучшим методичкам, из-за чего сложно объяснить неподготовленному человеку в чём подвох. А иногда надо. Поэтому я попробую зайти с другой стороны.
Вместо копания в конкретных курсах, поставлю под сомнение саму концепцию передачи знания за деньги.