Size: a a a

2017 February 13
brain_dump_etc
Humblespark (https://www.humblespark.com) запилили Ellie - Elm Live Editor. Вот ссылка на анонс: https://www.humblespark.com/ellie-announcement/

Теперь можно делиться живыми примерами Elm-приложений (пример: https://embed.ellie-app.com/msxkCRtWNn/0). При этом в примерах можно использовать любые пакеты из http://package.elm-lang.org/!

Для JS/HTML/CSS таких песочниц предостаточно, а для эльмоводов полноценного аналога раньше не было. Что же, будем пользоваться :)
источник
2017 February 14
brain_dump_etc
А этот Ellie вполне неплох - даже довольно таки объемные "демки" переваривает. Правда, редактор на больших исходниках уже заметно подтормаживает :(

Пользуясь случаем, наваял такую демку: https://embed.ellie-app.com/n5M8wcPtxs/0 - это моя попытка сделать комбинаторную библиотеку для рисования векторной графики (наподобие той, что есть в Racket).
источник
brain_dump_etc
Вот такое уже комбинируется. Осталось сделать библиотеку - написать доки и запакетировать :)
источник
2017 February 15
brain_dump_etc
Давно хочу сделать себе хотя бы простенькую копию этого костюма: https://www.youtube.com/watch?v=8HZFY4Xti7k

Глаза из LED-матричек, это совсем просто, такое я сумею :) А вот вокодер для голоса я всё никак не накостыляю.

Но теперь я уже на шаг ближе к цели: наткнулся на довольно простую реализацию pitch shifter на ATTiny85: http://www.technoblogy.com/show?1L02 Надо будет собрать аналог (85'ых у меня нет, но есть горстка ATMega48) и посмотреть его в деле!
источник
2017 February 17
brain_dump_etc
Внезапно открыл для себя FreeDoom - проект по воссозданию DooM максимально близко к первоисточнику с использованием исключительно свободного контента!

Страничка проекта: https://freedoom.github.io/index.html

Да, многие знают, что исходный код doom engine давно находится в свободном доступе. Но, как обычно, свобода не коснулась ресурсов игры - текстур, спрайтов, карт, звуков и музыки. Поэтому source ports для оригинального DooM сууществуют с момента открытия исходников, но требуют (I)WAD-файлов (это такой формат хранения игровых ресурсов, используемый многими движками от Id) от оригинальной игры. Это не слишком большая проблема, т.к. прикупить DooM можно на том же GOG (https://gog.com), но, скажем, в репозиторий пакетов для Ubuntu их не положишь - лиценизия не позволит :(

FreeDoom же свободен во всех смыслах. И поэтому его можно поставить, скажем, на Ubuntu привычным способом: sudo apt-get install freedoom. С прочими линуксами та же история. На Windows / MacOS FreeDoom ставится скачиванием IWAD-архива и подключением оного к оному из source ports, например PrBoom (http://prboom-plus.sourceforge.net/).

И да, FreeDoom поддерживает и многопользовательскую игру (deathmatch) :)

#game #linux
источник
brain_dump_etc
Вот такие во FreeDoom какодемон (по центру) и имп (справа).
источник
brain_dump_etc
Если вам вдруг захочется сделать свою WiKi, то возможно вам хватит https://dynalon.github.io/mdwiki/#!index.md - здесь весь "движок" построен на JS и работает полностью в браузере, на лету отображая markdown-файлы в виде wiki с гиперссылками и проч. Для начала работы нужно в "корень" хранилища, умеющего раздавать статические файлы, положить пару файликов и всё! Такое решение отлично подходит для выкладывания на GitHub Pages - сервера гитхаба сами раздадут контент.

Минус упомянутого движка - невозможность редактирования непродвинутыми пользователями. Т.е. wiki получается статической.

Если же вам хочется настоящей многопользовательской Wiki, но MediaWiki вас чем-то не устраивает, можете попробовать Gitit (https://github.com/jgm/gitit) - wiki engine, написанная на Haskell и хранящая весь контент в VCS! Умеет много чего - например, LaTeX - и открыта для расширения (примеры плагинов в репозитории есть).

#wiki #haskell
источник
brain_dump_etc
Если вдруг вам понадобится немного Markdown произвольного содержания - парсер захотите написать, или же наоборот, рендер - добавьте в закладки сервис Lorem Markdownum: https://jaspervdj.be/lorem-markdownum/ Сервис умеет генерировать разметку текста (да, это будет Lorem Ipsum) с цитатами, подзаголовками и списками. И даже псевдокод на псевдоязыках вставлять умеет!

#markdown
источник
2017 February 20
brain_dump_etc
Неплохая шпаргалка по паттернам проектирования (если вы ещё пользуете ООП в общепринятом смысле): https://github.com/kamranahmedse/design-patterns-for-humans
Каждый шаблон "объясняется" парой предложений и иллюстируется куском кода (не на PHP ли?), который решает реальную (более-менее) задачу.
Что же, местами довольно наглядно - тот же Flyweigth неплохо показан. А вот Bridge, например, не слишком развернуто объясняется (ИМХО).
Впрочем, это же github! Совместными усилиями можно добиться достаточной понятности :)

#pattern
источник
brain_dump_etc
Ого! Игра на Rust в Steam Greenlight! https://steamcommunity.com/sharedfiles/filedetails/?id=868228143

Заметьте, движок у игры свой, самописный! И написан, по сути, одним разработчиком (его, кстати, можно найти в чате https://t.me/proRust) и только ресурсы делали уже несколько человек!

#rust #gamedev #game
источник
2017 February 22
brain_dump_etc
Полезная библиотечка для PureScript purescript-quantities (https://pursuit.purescript.org/packages/purescript-quantities) позволяет описывать физические величины и, помимо, собственно, декларации длинн, масс и прочих температур, предоставляет инструменты для синтеза сложных величин из простых (метры можно делить на секунды и получать скорость!) и конвертации между разными шкалами!

Пара примеров:

- арифметика со временем
> showResult $ 2.0 .* minutes ⊕ 30.0 .* seconds

"2.5min"


- перевод скоростей между системами
> showResult $ (85.0 .* miles ./ hour) `convertTo` (meters ./ second)

"37.9984m/s"


#purescript #library
источник
2017 February 24
brain_dump_etc
Делюсь ссылкой на недавно возникший бложик со статьями про Elm и разработку на нем, ориентированными на новичков: https://alpacaaa.net/blog/

Наткнулся на него, увидев на /r/elm статью "In depth overview of Elm and Purescript. Lessons learned porting a game from Purescript to Elm." (https://alpacaaa.net/blog/post/elm-purescript-in-depth-overview/). Собственно, эту статью и рекомендую - в т.ч. и тем, кто ни #elm ни #purescript не использует (пока 😉). Сравнение этих языков в статье несколько предвзято, но в целом вполне адекватно (что, увы, редкость).

А ещё в блоге можно найти статьи про написание на Elm простой версии Mastermind (по-нашему "быки-коровы") и ещё пары игр, что называется, from scratch - отличное чтиво для интересующихся новичков!
источник
2017 February 27
brain_dump_etc
А этот Dev.to (https://dev.to) растет с заметной скоростью!
В целом я не удивлен - это же "правильный" Medium для погроммистов, разрешающий писать в привычном Markdown и вставлять код с указанием языка подсветки (да, Haskell тоже подсвечивается!). Если выживет, буду рад. На всякий случай профиль себе там завёл (http://dev.to/astynax), может даже сподоблюсь писать туда на своём корявом английском :) Пока же - просто почитываю.

Из того, что прочитал недавно, поделюсь этим:

- "DOM elements with ID's are global variables"
(https://dev.to/buntine/dom-elements-with-ids-are-global-variables):

- "How I Git"
(https://dev.to/andydangerous/how-i-git - это репост, но пусть будет);

- "Don't wait for perfect"
(https://dev.to/mubashariqbal/dont-wait-for-perfect);

- "The Peace of not coding"
(https://dev.to/jonstodle/the-peace-of-not-coding - надо бы тоже научиться).

P.S. Команда dev.to рассылает бесплатные стикеры: https://dev.to/freestickers Я уже запросил ;)
источник
2017 March 02
brain_dump_etc
Я уже писал про PICO-8, а тут, оказывается, некто пилит свободный клон! На Rust! Смотреть сюда: https://docs.rs/crate/px8

Проект находится в стадии активной разработки, но многое уже работает. Кстати, PX8 можно программировать не только на Lua, но и на Python 3! Не то чтобы очень хотелось, но кому-то может понравиться ;)

#pico8 #rust #python #lua
источник
brain_dump_etc
источник
2017 March 03
brain_dump_etc
Гуголь заоперсорсил свою библиотеку для описания CLI: https://opensource.googleblog.com/2017/03/python-fire-command-line.html

Выглядит этот Fire не что чтобы революционно, да и "фич", на первый взгляд имеет поменьше, чем click от Ронахера (http://click.pocoo.org/). К тому же для последнего понаписано уже множество дополнений: чтение параметров из файла (https://pypi.python.org/pypi/click-configfile), или, скажем, раскраска вывода справки по командам и опциям (https://pypi.python.org/pypi/click-help-colors). И точно не стоит забывать про отличный пакет docopts (https://pypi.python.org/pypi/docopts) - этот не сильно наворочен, но за то сама идея - отличная!

Единственный плюс Fire, который сходу приходит в голову, это кол-во телодвижений, необходимое для прикручивания Fire-powered CLI к существующему коду, а точнее - практическое полное отсутствие этих самых телодвижений :) Конечно, эта простота возможна только в том случае, когда код уже оформлен в виде класса с методами и docstrings (я, скажем, не всегда классы пишу для утилоит командной строки - почти никогда, на самом деле), но кому-то непременно понравится! И интерактивный режим - тоже приятная штука, с этим не поспоришь. Т.о. как обычно - будем иметь в виду :)

#python #cli #library
источник
brain_dump_etc
Хмм, а я был неправ: оказывается, в Fire можно и без классов CLI городить!

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

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

#python #cli #library
источник
2017 March 04
brain_dump_etc
Я всегда любил Жизнь...

Речь про Conway's game of Life, конечно же 😉

А уж сколько реализаций оной я писал! Первые - ещё на BASIC для моей "Электроника МС-1502" лет 20 назад.

И мне всегда интересно и удивительно смотреть на конфигурации вроде этой: https://codegolf.stackexchange.com/a/111932

Не поленитесь и обязательно запустите (в ответе написано, как это можно сделать прямо в браузере) эту прелесть!

#cellular_automata #cgol
источник
brain_dump_etc
Вот так выглядит одно из состояний системы
источник
2017 March 08
brain_dump_etc
Оказывается, среди Racket-языков есть отдельный язык для описания L-систем - это такие простые фракталы, которые "рисуют деревья".

Доку можно найти здесь: https://plt.eecs.northwestern.edu/pkg-build/doc/lindenmayer@lindenmayer/index.html

На первый взгляд пакет позволяет делать практически всё, что может потребоваться типичному фрактальному ботанику, даже 3d L-системы можно рисовать!
Если вы интересовались когда либо процедурной генерацией и вам хотелось нарисовать быстренько небольшой лесок, но вы не были знакомы с L-системами, настоятельно советую ознакомиться - концепция простая, но выразительная, да и результатя глазу приятны, наконец :)

#racket #fractals #lsystems
источник