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
В моём любимом #emacs тоже есть поддержка #racket, и даже картинки в #repl можно выводить (копировать-вставлять нельзя, увы). И как редактор кода, Emacs значительно мощнее чем редактор, встроенный в DrRacket (тот прекрасен, но в области интергированности в среду и язык).
Теперь я креативлю на Racket в Emacs :)
Вот вам #daily_art (минут 20 экспериментов в REPL, четыре строки кода (в отформатированом виде побольше, конечно)) :)
Ещё #daily_art на #racket (исходник) :) (наверняка в какой-то момент мне надоесть это постить)
2019-09-17-carpet.png
81.4 KB
Самоповтор с самоповторяющимся #daily_art (исходник) :)
Сделал на своём #web сайтике-долгострое раздел для #daily_art.

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

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

****************

В Субботу ходил во второй раз на Dojo по #clojure. В этот раз на команды разбивались случайным образом, что, на мой взгляд, значительно интереснее. И полезнее для networking - на clojure-тусовки я попадаю редко, поэтому лишний шанс познакомиться с людьми, которым небезразлично ФП, меня однозначно радует :)

В прошлый раз мы писали Conway's Game of Life: получилось это. Работали двумя парами и та, в которой был я, отвечала за логику. Сделали всё на множествах через операции над ними (пересечение, объединение). Всем понравилось.

В этот же раз писали игру 2048 втроём, поэтому решили не делиться - за одним компьютером вместе творили. Решили сделать упор на логику, а интерфейс пользователя (который сразу решили сделать текстовым ;)) оставить на потом. Логика игровая получилось довольно компактной: сделали только "сдвиг влево", а остальные операции получили через транспонирование и отражение матрицы! Тесты делать было лень, поэтому разработка проходила "по локти" в REPL, что тоже добавило веселья. В установленное время мы уложились и наша реализация 2048 вышла вполне играбельной :) У "соперников" были вариант на #clojurescript в браузере и реализация с "текстовым UI" в отдельном графическом окне (на этой штуке рогалики бы писать!).

P.S. Понравилось, планирую продолжать посещать.

****************

В Воскресенье я к генератору подсайтика с #daily_art прикрутил генерацию миниатюр. А потом решил, что текущие правила для #shake "костыльноваты" и решил переписать :) Получившийся вариант генерации динамических правил мне нравится и важные фишки shake, вроде кэширования результатов сборки, так же работают. Результат можно посмотреть тут, а здесь можно глянуть на исходники.

P.S. Надо бы написать статейку про Shake для ruHaskell.
Ещё #daily_art

https://astynax.neocities.org/daily-art/2019-09-24-circuit-board.html

Этот простенький, но мне показался интересным
Оказывается, для #racket в teachpack'е для курса HTDP, помимо библиотеки 2htdp/image, с помощью которой я свой #daily_art рисую, а также 2htdp/universe, с помощью которой можно нарисованные картинки анимировать и даже превратить в игру(!), есть библиотечка тайлов (tiles) Planet Cute в виде racket-библиотеки 2htdp/planetcute!

Сам "Planet Cute", это набор изображений "строительных блоков", с помощью которых можно делать игры. И сами изображения и исходные макеты свободно доступны. Каждый блок представлен отдельным изображением. Все изображения имеют одинаковый размер и отлично (и очень просто!) компонуются (не нужно возиться с tileset'ом). На мой взгляд, это отличный стартовый набор для начинающего игростроителя :)

P.S. Мне уже не терпится что-то написать с использованием images/universe/planetcute. М.б. даже законченную игру :)

#gamedev
world.png
231.7 KB
Вчера поигрался с planetcute, получилось это (исходник).
Челендж #daily_art продолжается, почти каждый день "рисую"! Но проблема придумывания подписей уже начинает напрягать. Нынешнюю картинку, впрочем, поименовал сразу. Знакомьтесь, "кунжутная халва" :)
Кстати, пока я искал альтернативы для pygments, мне подкинули интересный вариант на замену: bat

bat, это такой cat(1), только написанный на #rust, и умеющий красиво подсвечивать синтаксис разных форматов файлов с помощью схем подсветки от SublimeText (использует библиотеку syntect).

Приятно, что таких проектов становится больше: rq, ripgrep, fd, а теперь ещё и bat (автор тот же, что и у fd, кстати). Я считаю, что нам нужны современные версии "рабочих лошадок", работающие быстро и стабильно - да такие, в которые и поконтрибутить приятно!
https://www.youtube.com/watch?v=y-xgWLYQc4g

Simon Peyton Jones как весгда прекрасен! И тема доклада лично меня равнодушным не оставила - всегда чувствовал в себе тягу к образованию других :) Доклад касается обучения CS в целом, также повествует про подвижки образовательной машины Великобритании в сторону правильного преподавания CS ученикам прямо со школы. Саймон призывает делать упор не на технологии, как это было в прошлом (оказывается, там тоже детей учили использованию MS Office), а на основы и идеи. В конце доклада можно найти кучу ссылко на расличные инициативы в озвученной области, а частности на Project Quantum - попытку сделать единый вопросник для тестирования изучающих CS.

Настоятельно рекомендую к просмотру!

#education #talk
Минутка #retrogaming

На Internet Archive теперь доступна библиотека игр для C64. В общей сложности 10К игр. Всё как обычно работает прямо в браузере (на обраузереном силами emscripten эмуляторе Vice).
Образовательный набор "собери свой телефон": https://www.kickstarter.com/projects/albertgajsak/makerphone-an-educational-diy-mobile-phone

MAKERphone, это настоящий тетефон, только старой школы. Никакой ОС не имеет. "Думает" с помощью ESP32, умеет запускать MicroPython. Звонит и шлёт SMS через GSM-модуль. Звук выводит через отдельный модуль с ЦАП и усилителем. Корпус собирается из листов оргстекла, паяются только детали с монтажём в отверстия (SMD-компоненты уже распаяны).

Нацелен набор на детей от 11 лет. И целью имеет не дать ребёнку средство связи, конечно же. Но показать, что телефон, это не магическая коробочка, а всего лишь система, состоящая из небольшого кол-ва понятных модулей. Причем система открытая, делающая то, что захочет маленький инженер, который её соберёт.

Одобряю.

#diy #electronics #kit
Авторы MAKERphone до этого уже собирали деньги на подобный проект. Это был MAKERbuino: https://www.kickstarter.com/projects/albertgajsak/makerbuino-a-diy-game-console

Это Arduino-совместимая плата с кнопками и монохромным LCD-экраном, выполненная в форм-факторе портативной игровой консоли. Нацеленная на использование в качестве оной же - после того, как устройство соберут и прошьют соответствующим ПО. Как минимум "змейки" и "тетрис" с "арканоидом" на таком железе можно реализовать :)

Ах да, корпус и здесь собирается из слоёв огрстекла. Это вообще довольно популярная среди хоббистов технология корпусирования.

P.S. Эти наборы можно купить. Со временем и MAKERphone будут продавать, думаю.

#diy #electronics #kit #gamedev #retrogaming
Красиво
Раз уж публикую сюда ссылочки на наборы, упомяну и Meggy Jr RGB: https://shop.evilmadscientist.com/tinykitlist/100-meggyjr

Этот набор довольно старый. Я его в первый раз увидел, когда только-только начал с микроконтроллерами знакомиться - десять лет назад.

По сути же Meggy, это тоже карманная игровая консоль. И у неё даже экран цветной! Вот только разрешение экрана необычное: оным у Meggy работает 8x8 RGB матрица - очень концептуально :)

Да, пикселей мало. Зато цветов много. И процессора хватит даже маломощного (ATMega168P, как в оригинальной Arduino). Как минимум, можно программировать красивые световые эффекты!

#diy #electronics #kit #gamedev
Опять же, красиво
Немножко попиарю книжки по Haskell

#haskell #learning #book
Forwarded from bravit-about
В издательстве Manning Publications отличная Deal of the Day с тремя книжками: Haskell in Depth, Get Programming with Haskell и Type-driven Development with Idris. Можно воспользоваться 50%-й скидкой по промокоду DOTD101718 на все три книжки. В двух не своих я, кстати, упомянут в благодарностях, а в Get programming был ещё и technical proofer. Очень их рекомендую.