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
Кстати, на потомках Форта даже вебчик можно писать! Вот тут можно ознакомиться с примерами программ на Factor (это как раз один из современных потомков): http://concatenative.org/wiki/view/Factor/Examples Там и webapps и алгоритмы и графика.

P.S. Меджу прочим, сам сайт Concatenative Wiki тоже на Factor написан :)
Если вас, как и меня, радуют разные бесполезные консольные утилитки, то вы наверняка знакомы с cowsay :)

Эта говорящая корова (а также дракон, пингвин Tux, BSD демончик - много лиц, одна суть) давно прижилась в семье классических *nix-утилит и часто используется пусть не для дела, то ради развлечения уж точно :) Ах, как здорово подружить cowsay и fortune и вставить в конец .bashrc!

Правда реализована коровка на Perl со всеми вытекающими - не так уж много желающих её осовременивать, а ведь прогресс на месте не стоит! Впрочем, унывать не стоит - есть у cowsay современные и модные подражатели. Например ponysay: https://github.com/erkin/ponysay Да, набор персонажей у ponysay довольно специфичен (хоть и довольно широк) - это исключитено персонажи вселенной "My Little Pony"! Кого-то это порадует, кого-то - не очень. Но ponysay позволяет добавлять своих персонажей, как и её бабушка cowsay, поэтому дерзайте!

Отдельно хочу отметить проработку персонажей: в репозитории ponysay истинные понилюбы смогут найти описание каждого персонажа (в машиночитаемом виде - да-да, в JSON!) - имя, момент появления во вселенной, любимую еду и прочее - вот это подход к написанию "простой утилитки"!
Типичнвый вид "выхлопа" ponysay
Ещё стоит отметить, что ponysay написана на языке... Pony!
Да-да, есть и такой язык! И он довольно интересен:
- язык объектно-ориентированный (без наследования!!!)
- модель акторов встроена в язык
- код компилируется в native bineries

Сайт языка: http://www.ponylang.org/

Библиотек у языка пока толком нет - только stdlib. Который, впрочем, довольно богат. Скажем, программки, работающие с сетью писать можно и это даже интересно и приятно - акторы тут очень к месту!

Лично я искренне советую почитать хотя бы вводную к языку - она неплохо написана, даёт примерное представление о языке и демонстрирует основные его возможности. А ещё лучше поставить компилятор и написать акторный hello-world - простой чатик :)
Racket'оводы-Ubuntu'оиды могут радоваться: обновили PPA для Racket! https://launchpad.net/~plt/+archive/ubuntu/racket Теперь свеженький 6.8 официально и в нашей Ubuntu! Сам релиз я уже упоминал (см. https://t.me/brain_dump_etc/4), а теперь он доехал и до официального источника пакетов и стало ещё меньше причин не устанавливать Racket! Идите уже наконец и поробуйте этот прекрасный язык для написания языков :)
В своё время меня впечатлил uLisp (http://www.ulisp.com/), и Tiny Lisp Machine на базе Atmel ATMega328 - той самой, на которой основан этот ваш Arduino. Вот ссылка на статью о проекте: http://www.technoblogy.com/show?1GX1

И тут недавно, в октябре прошлого года автор написал о второй версии лиспомашины: http://www.technoblogy.com/show?1INT Эта версия работает уже на базе ATMega1284, а это уже гораздо более приятный "камушек". Теперь машинка осиливает 3000 лисповых ячеек (так у лиспа меряют размер кода), а это уже вполне прилично для микроконтроллеров, которые пищат динамиками и мигают светодиодами!

Обе машинки используют один и тот же OLED экран от AdaFruit для вывода и PS/2 клавиатуру для ввода и предоставляют настоящий Lisp REPL, т.е. каждая машина вполне самодостаточна! Что очень приятно, т.к. многие интерактивные AVR shells обладают лишь зачаточными средствами для скриптования и как правило коммуницируют с пользователем через последовательный интерфейс UART, т.е. для общения с железкой требуется компьютер, запускающий Telnet-клиент.
Tiny Lisp Machine 2, будучи собранной на breadboard, выглядит так
Довольно интересный своей манерой подачи курс "Professor Frisby Introduces Composable Functional JavaScript": https://egghead.io/courses/professor-frisby-introduces-composable-functional-javascript Для тех, кто всерьез интересуется функциональщиной, этот курс не будет слишком полезен - описываемые "паттерны" и полнее и правильнее описываются в соответствующих источниках. Однако тем, кто просто хочет по-новому взглянуть на применяемые инструменты (в данном случае это, увы, JavaScript) и/или положить в копилку несколько умных слов, этот цикл может пригодиться - примеры даются хорошие, да и слушать забавно :) Советую, коли сподобитесь приобщиться, повторить код в редакторе и поиграться на своих примерах - глядишь, запомните, освоите и будете прменять в жизни!

Ссылку об этом курсе запостить мне предложили (спасибо!), и я по началу делать этого не хотел - JavaScript же! Но с материалом ознакомился и, надо сказать, увидел таки потенциальную пользу. За сим и публикую :)
Если вы, как и я, любите обклеивать ноутбуки стикерами с конференций и логотипами используемых технологий, но устали от того, что каждый стикер имеет свою форму и размер, обратите внимание на Hexbin: http://hexb.in/

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

Каждая "наклейка" представлена в т.ч. и в векторном виде (в SVG), так что можно идти и печатать! Да хоть на том же PrintDirect (http://printdirect.ru/)
Выглядит уклеенный подобными "сотами" ноутбук как-то так
А вот ссылочка любителям повставлять в git commit messages Эмодзи: http://www.webpagefx.com/tools/emoji-cheat-sheet/
Это довольно обширный cheatsheet по эмотиконам, поддерживаемым GitHub'ом и прочими "современными" сервисами :)
commit_template.txt
309 B
И уж если я вспомнил Git и commit messages, то я не могу не поделиться шаблоном для оных, который использую сам. В "подвале" файла указана команда, которая настроит git на использование этого шаблона
Поною, для разнообразия.

Посмотрел я на этот Vue.js (по-русски это должно читаться "Вжух!"). В принципе понятно, почему он набирает популярность: искоробочный мэйджик - "Вжух, и готово приложение!" Причем всё сильно более вжухово, чем много где.

В интернетах пипл предрекает, что Vue может потеснить React и Angular. И я даже вполне допускаю такое развитие событий: все задатки для популярности у Vue есть. Например, есть потенциал для превращения больших проектов в магическую кашу, которая уже всё залепила, а "горшочек не вари" говорить уже поздно - все подсели и вжухают!

Причем субъективно начинать на Vue ещё проще, чем на React - на любую хотелку типичного UI-дела уже есть волшебный ключик в конфиге, а если ещё нет, то скоро примут pull request и появится! И это подкупает!

А на деле "явные" callbacks заменены на неявные биндинги, но по-callback-овски всплывающие от дочернего компонента к родителю, если приспичит (и оно приспичивает!). И опять stateful components! Даже React/Redux уже этим страдает - с тех пор, как решили сделать всем хорошо и ввели stateful контейнеры. А тут, в Vue, каждый компонент имеет своё мутабельное состояние, т.е. устроен интерфейс ровно так, как было в дореактовые годы - ещё бы это не нравилось, привычно же!

Похоже, что революции не случилось. React был неплохой (я не фанат, но вклад в индустрию ценю!) попыткой выправить руки и нарезать извилины в нужную сторону, но победят посредственность, привычки и вжух...
Поделюсь одной закладкой из закромов, на этот раз gamedev'овой: http://www.redblobgames.com/
На сайте по ссылке размещены очень интересные статьи по гексагональным сеткам (это лично меня очень порадовало в свое время), по алгоритмам вычисления областей видимости (да, и про ray caster там тоже рассказывается) и проч. При этом многие примеры в статьях интерактивные! Вы только сходите и пощупайте превый же пример в статье про видимость: http://www.redblobgames.com/articles/visibility/ - отлично сделано!

Автор сайта, кстати, курирует ресурс http://www-cs-students.stanford.edu/~amitp/gameprog.html - "Amit’s Game Programming Information", большой перечень статей по тематике game development. Причем охвачены не только привычные AI и поиск пути - перечень охватывает и гейм-дизайн в целом и экономические аспекты игростроя.
Наткнулся на очень интересный сабреддит: https://www.reddit.com/r/explorables/

Сюда пишут о всевозможных интерактивных и не очень визуализациях чего-бы то ни было, например алгоритмов - да, упомянутая мной вчера ссылка на сайтик по gamedev алгоритмике тоже нашлась в этом сабреддите, причем на первой странице (при том что я ссылочку зебе заложил года два назад и вспомнил про неё только вчера 👌)

P.S. Возможно я ещё порекламирую парочку сабреддитов. Reddit вообще является отличным источником новостей и контента по многим тематикам, в т.ч. и довольно узким (я, скажем, почитываю /r/hammocks 😉).
Позволю себе немного рекламы :)

Reddit и всё остальное, умеющее RSS, я читаю через BazQux (http://bazqux.com/). Сервис этот немножко платный (подписка), но зато это лучшая "замена Google Reader" (если вы понимаете, о чем я). BazQux умеет показывать не только полные статьи, но и комментарии к ним, вытягивая оные с различных платформ (комментарии, например, отлично утягиваются с LiveJournal). Ещё он умеет отправлять статьи в Pocket и прочие InstaPaper, откладывать "на потом", включать/исключать элементы лент по ключевым словам и проч. Даже twitter работает (вроде бы - сам ещё не проверял, хоть баскуксом пользуюсь третий год). И Habr тоже можно читать, для этого нужно получить из настроек профиля ссылку на персональную RSS-ленту и добавить её в BazQux (в любой другой RSS-reader тоже можно, но тут решают фильтры и подтягивание комментов!). И стоит сказать, что при всех своих достоинствах и "фичастости" интерфейс у "приложения" сугубо минималистичен и исключительно функционален - взять хотя бы полное управление с клавиатуры.

И, конечно же, я не могу не упомянуть, что BazQux написан на Haskell + Ur/Web (это такой язык/фреймворк для разработки под браузер).
Вот такой вот BazQux на вид
Отличная статья про реализацию динамического освещения на PICO-8: https://medium.com/@krajzeg/pico-8-lighting-part-1-thin-dark-line-8ea15d21fed7 От текста прямо таки веет "олдскулом" - тут и имитация постепенного затухания цвета жонглированием всего 16 цветами и работа с паиятью через poke(о да!).

Это отличный пример того, что ограничения платформы могут служить отличным стимулом для их преодоления и получения удовольстивия от процесса.

Когда-нибудь и я поборю свою лень и сделаю на PICO что-нибудь прекрасное! :)
В статике картинка вполовину менее эффектна, но если помнить, что цветов всего 16, то всё равно впечатляет. За динамикой пройдите в статью, и по желанию по ссылке в статье к живому "картриджу"