brain_dump_etc
637 subscribers
99 photos
4 videos
3 files
383 links
Дампы мыслей, свалка ссылок, программизмы, вот это всё (ВНИМАНИЕ: много вкусовщины!)

Автор надампленых мыслей: @astynax

Чат к каналу: https://t.me/brain_dump_chat
Плейлист трансляций: https://youtube.com/playlist?list=PLUFoWyWge7mrg4GqHLMZV62gGC912PCGq
Download Telegram
Хмм, а я был неправ: оказывается, в Fire можно и без классов CLI городить!

В случае, когда класс при инстанциировании Fire не указан, все публичные функции модуля __main__ становятся соответствующими командами - всё, как я хотел!

(Пример: https://github.com/google/python-fire/blob/master/examples/cipher/cipher.py)

#python #cli #library
Оказывается, для #python тоже есть #language_server!
https://github.com/palantir/python-language-server

Если вам незнакома сама концепция language servers, прошу пройти на http://langserver.org/ и приобщиться.

Для ленивых кратко суть: language server, это... сервер(!), запускающийся локально (обычно - в контексте проекта) и предоставляющий HTTP API для интроспекции, документации по коду, "go to definition" и прочих задач, которые могут потребоваться в вашей любимой IDE, и/или не менее любимом редакторе (я, вот, заядлый emacs'er). И главное отличие LS от "плагинов к редакторам" в том, то LS пишется один раз и используется всеми. Концепция очень богатая и я очень рад, что она захватывает умы писателей инструментов для языков. Жду-недождусь language server для любимого #haskell :)
Красивый улучшатель вывода информации об исключениях в коде на #python: https://github.com/Qix-/better-exceptions Подключается либо импортом модуля, либо через hook. После подключения исключения начинают выглядеть так:
Наткнулся на "релизацию" matplotlib на #haskell: https://github.com/abarbu/matplotlib-haskell

Оказалось, что оная просто запускает #python под капотом :) И я лично считаю такое решение имеющим смысл - сил в matplotlib вложено столько, что реализовать аналог мало кто отважится. И да, для Haskell есть diagram и надстройки над оным. Но matplotlib а) сразу умеет очень многое "из коробки" б) синтаксически приближен к MatLab (в части работы с визуализацией), что делает matplotlib отличным инструментом для прикладников, привыкших использовать упомянутый проприетарный продукт.

Эта библиотека - ещё один шажок, приближающий Haskell к "победе над python" в нише ML и прочей "прикладухи" :)
Если игрострой близок вашему сердцу, и вы всегда хотели написать свою игру, и тем паче свой "Рогалик" (#roguelike), то настоятельно рекомендую присоединиться к мероприятию, которое проводит сабреддит по рогаликостроению: https://www.reddit.com/r/roguelikedev/wiki/python_tutorial_series

В рамках мероприятия все желающие читают статьи, публикуемые организатором, и шаг за шагом делают свои версии игры. Материал расчитан на начинающих питонистов, но использование #python не обязательно (я, вот, на #haskell свой рогалик пишу 😉). Более того, можно заявить о своем проекте в коментариях, что приведет к появлению вашего проекта в списке участников. Список уже немал, и постоянно растёт и вместе с ним растёт кол-во языков, которые используют авторы проектов. Так что даже если вы не хотите писать в одиночку, можете напроситься в уже существующий проект - думаю, большинство авторов будет непротив.

Кстати, помимо обучающих статей есть ещё и соответствующая серия видео (для тех, кто любит такое): https://www.youtube.com/playlist?list=PLKUel_nHsTQ1yX7tQxR_SQRdcOFyXfNAb

#gamedev #tutorial
Подкинули на днях интересный образчик "языка", если можно так сказать: https://github.com/aaronduino/asciidots
Описание гласит: "AsciiDots - The result of combining ascii art, electrical engineering, and programming". Программы-схемы выглядят так (это вычислитель факториала):
 /---------*--~-$#-&
| /--;---\| [!]-\
| *------++--*#1/
| | /1#\ ||
[*]*{-}-*~<+*?#-.
*-------+-</
\-#0----/

Примечательно, что в отличие от большинства других языков с "2D-синтаксисом" (BeFunge, False, того же Piet) этот - не стековый. И вообще, программы на языке действительно похожи на электрические схемы с путешествующими по ним электронами. Занятная штука! Написана на #python
Ещё одна площадка, за которой я слежу (я там частенько покупаю музыку в жанрах SynthWave и ChipTune - тоже бандлами), это https://groupees.com. Обычно тут
продаются игры и музыка, иногда - книги. Но вот прямо сейчас можно приобщиться к

- курсам по #js: https://groupees.com/frontend-js-bundle Тут вам и ReactJS и Vue с Agnular'ом. Правда, курсы, в основном, новичковые.

- курсам по #python: https://groupees.com/python-perfection-bundle - тут и NumPy со SciPy, и работа с XML (BeautifulSoup) и даже по #gamedev есть курс!

Ещё присутствуют бандлы курсов по "Full Stack Dev" (тут у них сборная солянка из Linux, C#, WordPress и прочих MySQL) и по игростроению (сплошной Unity).

Короче говоря, советую сходить и посмотреть самим - если нравятся видеокурсы, или, скажем, музыка в стиле "Митол + Вокалоид" (да, там и такой бандл продаётся сейчас :))

#mooc
На страничке "Learn more" описанного выше проекта есть отличная подборка ссылок про то "куда дальше смотреть, если хочется приобщиться к программированию музыки" (ссылка: https://jackschaedler.github.io/jazzari/about.html).

Упомянутый Sonic Pi и там присутствует, кстати. А ещё "Learn Music" от Ableton (https://learningmusic.ableton.com/) - отличная штука! И Ear Sketch (https://earsketch.gatech.edu) - этот на #python программируется (помимо #js), что приятно (надо будет попробовать).

#music #learning
Забавное чтиво: https://norvig.com/python-lisp.html - "Python for Lisp Programmers". Может создать у читателя ложное мнение о том, что Python многое взял от Lisp :) Но мы то с вами знаем, что Гвидо делал питон похожим на ABC. И вообще заимствований у CL в дизайне Python не так уж и много, хотя некоторые думают, что то же форматирование отступами Питон у Лиспа взял (недавно увидел такое мнение в одном из чатов и умилился), но off-side rule(*) было уже в ABC.

*) так называется форматирование отсупами официально, термин был введён Питером Ландиным.

#fun #lisp #python
Сделал на своём #web сайтике-долгострое раздел для #daily_art.

Индекс и странички генерируются с помощью shake-скрипта из mustache-шаблонов (это всё на #haskell). Подсветка синтаксиса для Racket-кода делается вызовом CLI-утилитки из пакета pygments (это уже #python). А картинки рендерятся непосредственно вызовом #racket. Вот такой вот монстр Франкенштейна :)

Загружал первую версию контента через web interface редактора сайтов прямо на NeoCites (на нём сайтик хостится). Но в будущем воспользуюсь из API - или сам реализую клиентскую часть, или официальный CLI-tool возьму (который на Ruby написан - ещё один зверь в зоопарк). А в конце это всё можно будет упаковать в Docker-контейнер для красоты и модности :)