Ну вот, эта регулярка проверяет баланс скобок в произвольном S-выражении:
Когда-то (ещё вчера) я думал, что такое на #regex не сделать...
(?(R)|^)\([^()]*((?R)[^()]*)*\)(?(R)|$)Когда-то (ещё вчера) я думал, что такое на #regex не сделать...
Люблю процедурную генерацию контента, особенно графического. Вот интересный образчик "прямо в браузере": http://alastor.instant-adventures.net/
Генерируются планеты Кластера Аластор - автор вдохновлялся творчеством Джека Вэнса. Обратите внимание: ландшафты - живые (луны двигаются)!
Надо будет что-то подобное накодить на elm/purecsript :)
#procedural_generation
Генерируются планеты Кластера Аластор - автор вдохновлялся творчеством Джека Вэнса. Обратите внимание: ландшафты - живые (луны двигаются)!
Надо будет что-то подобное накодить на elm/purecsript :)
#procedural_generation
Делать реализации
The Elm Architecture (#tea) для своих языков, это, похоже, довольно популярное занятие! Выше я уже писал про TEA для F#. Теперь, вот, делюсь TEA для #swift: https://github.com/chriseidhof/tea-in-swiftRelm (http://relm.ml/relm-intro) - библиотека для построения GUI на основе GTK+ с применением подхода "The Elm Architecture" (#tea), на этот раз - на #rust
Зарелизился
В релизе
- перешли на 64bit для OSX/Linux (наконец-то!)
- прикрутили систему контроля версий (пока она самоедльная, но в релиз вошла система версионирования кода в
- сделали пристойный FFI для выхода за пределы SmallTalk VM
- добавили
- добавили
Что приятно, Pharo стал частью
Кстати, нынче на сайте Pharo (http://pharo.org/) есть курс (#MOOC) по Pharo! Правда, пока курс проводится по пятой версии, но концепции языка не поменялись, так что можно проходить и на Pharo 6 :)
Pharo 6 (ещё в начале июня, а я всё торможу и не пишу об этом) - "чисто объектно-ориентированный язык", диалект (скорее даже "сборка") #Smalltalk.В релизе
- перешли на 64bit для OSX/Linux (наконец-то!)
- прикрутили систему контроля версий (пока она самоедльная, но в релиз вошла система версионирования кода в
Git, которая будет основной в Pharo 7)- сделали пристойный FFI для выхода за пределы SmallTalk VM
- добавили
поддержку иммутабельных объектов!- добавили
тёмную тему (САМОЕ ВАЖНОЕ УЛУЧШЕНИЕ!)Что приятно, Pharo стал частью
OpenSmalltalk Initiative - теперь это не просто сторонняя поделка!Кстати, нынче на сайте Pharo (http://pharo.org/) есть курс (#MOOC) по Pharo! Правда, пока курс проводится по пятой версии, но концепции языка не поменялись, так что можно проходить и на Pharo 6 :)
Если игрострой близок вашему сердцу, и вы всегда хотели написать свою игру, и тем паче свой "Рогалик" (#roguelike), то настоятельно рекомендую присоединиться к мероприятию, которое проводит сабреддит по рогаликостроению: https://www.reddit.com/r/roguelikedev/wiki/python_tutorial_series
В рамках мероприятия все желающие читают статьи, публикуемые организатором, и шаг за шагом делают свои версии игры. Материал расчитан на начинающих питонистов, но использование #python не обязательно (я, вот, на #haskell свой рогалик пишу 😉). Более того, можно заявить о своем проекте в коментариях, что приведет к появлению вашего проекта в списке участников. Список уже немал, и постоянно растёт и вместе с ним растёт кол-во языков, которые используют авторы проектов. Так что даже если вы не хотите писать в одиночку, можете напроситься в уже существующий проект - думаю, большинство авторов будет непротив.
Кстати, помимо обучающих статей есть ещё и соответствующая серия видео (для тех, кто любит такое): https://www.youtube.com/playlist?list=PLKUel_nHsTQ1yX7tQxR_SQRdcOFyXfNAb
#gamedev #tutorial
В рамках мероприятия все желающие читают статьи, публикуемые организатором, и шаг за шагом делают свои версии игры. Материал расчитан на начинающих питонистов, но использование #python не обязательно (я, вот, на #haskell свой рогалик пишу 😉). Более того, можно заявить о своем проекте в коментариях, что приведет к появлению вашего проекта в списке участников. Список уже немал, и постоянно растёт и вместе с ним растёт кол-во языков, которые используют авторы проектов. Так что даже если вы не хотите писать в одиночку, можете напроситься в уже существующий проект - думаю, большинство авторов будет непротив.
Кстати, помимо обучающих статей есть ещё и соответствующая серия видео (для тех, кто любит такое): https://www.youtube.com/playlist?list=PLKUel_nHsTQ1yX7tQxR_SQRdcOFyXfNAb
#gamedev #tutorial
Reddit
roguelike development
A community of active roguelike developers. Learn how to make a roguelike, share your progress, follow what others are creating, and engage in discussions about a broad range of related topics and resources.
Когда-то давно я уже натыкался на эту серию видео, а тут мой товарищ о ней напомнил: https://www.youtube.com/playlist?list=PL78FD414366D03B3C - обстоятельный и подробный курс видео про пайку.
Да, курс старый. Да, затрагивает только монтаж в отверстия (и даже пайку внавес на макетки со штифтами!). Но зато хорошо объясняет, например, физические принципы данной формы соединения!
Рекомендую к просмотру хотя бы выборочно.
#diy #electronics #soldering
Да, курс старый. Да, затрагивает только монтаж в отверстия (и даже пайку внавес на макетки со штифтами!). Но зато хорошо объясняет, например, физические принципы данной формы соединения!
Рекомендую к просмотру хотя бы выборочно.
#diy #electronics #soldering
YouTube
PaceWorldWide - How To Solder Lessons - YouTube
https://www.youtube.com/playlist?list=PLGLfVvz_LVvSX7fVd4OUFp_ODd86H0ZIY - плейлист с кучей видео, каждое из которых даёт введение в какую-то конкретную технологию: это и языки типа #lua, #swift, #kotlin, #haskell и библиотеки типа
express.js и jQuery и даже совсем-не-языки, такие как Twitter Bootstrap. В целом вполне неплохой способ посмотреть на что-то новое за обедом :)YouTube
Learn in One Video
Share your videos with friends, family, and the world
Откопал "на антресолях" один из сових первых проектов на микроконтроллерах: USB-фицированный игровой манипулятор (joystick) от "Электроника БК 0010-01". USB реализован программно на базе библиотеки VUSB. Библиотека позволяет на микроконтроллерах AVR с тактовой частотой от 12МГц разрабатывать устройства, работающие в режиме USB Low Speed - обычто это либо CDC-устройства ("виртуальный последовательный порт"), либо HID-устройства (Human Interface Devices). В моём случае имитируется HID-joystick с двумя дискретными осями и двумя кнопками.
USB типа B тут, очевидно, привнесённый, но всё остальное - оригинальное!
В системе девайс видится как
Кого-то может смутить "except ... joysticks", но обычно хоббисты нагло используют именно эту пару id для своих устройств:
Что в Windows (пробовал давно, ещё на XP), что в Linux джойстик определяется и работает нормально:
В системе девайс видится как
$ lsusb
...
Bus 002 Device 008: ID 16c0:05df Van Ooijen Technische Informatica HID device except mice, keyboards, and joysticks
...
Кого-то может смутить "except ... joysticks", но обычно хоббисты нагло используют именно эту пару id для своих устройств:
16c0:05df.Что в Windows (пробовал давно, ещё на XP), что в Linux джойстик определяется и работает нормально:
$ jstest /dev/input/js0
Driver version is 2.1.0.
Joystick (www.obdev.at "Electronika" joystick:)) has 2 axes (X, Y)
and 2 buttons (Trigger, ThumbBtn).
Testing ... (interrupt to exit)
Axes: 0:-32767 1:-32767 Buttons: 0:off 1:off
Забавный проект: https://github.com/gothinkster/realworld
Суть: коллекция реализаций клона Medium как со стороны backend, так и со стороны frontend. Причем спецификация едина, а вот реализаций как серверной так и клиентской стороны уже набралось довольно много! Т.е. можно вот просто так взять и поставить Django-сервер с Vue-клиентом - или что-то поинтереснее, скажем Kotlin+ClojureScript - и попробовать связку в действии.
Часть реализаций уже завершена, но большинство находится в разработке - это отличный шанс попробовать силы в какой-то технологии и поработать над проектом с обозримым результатом и чёткой спецификацией!
И если вдруг ваша любимая технология отсутствует в списке - он далеко не полон, разумеется - бегите и добавляйте, ведь это отличный шанс увеличить заметность вашего любимого диалекта LISP или реактивной GUI-библиотеки для COBOL.js :)
Суть: коллекция реализаций клона Medium как со стороны backend, так и со стороны frontend. Причем спецификация едина, а вот реализаций как серверной так и клиентской стороны уже набралось довольно много! Т.е. можно вот просто так взять и поставить Django-сервер с Vue-клиентом - или что-то поинтереснее, скажем Kotlin+ClojureScript - и попробовать связку в действии.
Часть реализаций уже завершена, но большинство находится в разработке - это отличный шанс попробовать силы в какой-то технологии и поработать над проектом с обозримым результатом и чёткой спецификацией!
И если вдруг ваша любимая технология отсутствует в списке - он далеко не полон, разумеется - бегите и добавляйте, ведь это отличный шанс увеличить заметность вашего любимого диалекта LISP или реактивной GUI-библиотеки для COBOL.js :)
GitHub
GitHub - gothinkster/realworld: "The mother of all demo apps" — Exemplary fullstack Medium.com clone powered by React, Angular…
"The mother of all demo apps" — Exemplary fullstack Medium.com clone powered by React, Angular, Node, Django, and many more - gothinkster/realworld
Периодически поглядываю на текущее состояние вещей вокруг Piet - это один из трех моих любимых эзотерических языков программирования.
Вот и сегодня я заглянул на страницу с примерами программ на сабже (http://www.dangermouse.net/esoteric/piet/samples.html) и порадовался - их стало больше, а значит язык живёт! Причем добавляются в т.ч. и "большие" примеры - тот же Prime Number Generator. И пусть часть программ явно сгенерирована, но всё равно авторы добавляют частички творчества даже в такие искусственные творения :)
#esoteric_programming_language
Вот и сегодня я заглянул на страницу с примерами программ на сабже (http://www.dangermouse.net/esoteric/piet/samples.html) и порадовался - их стало больше, а значит язык живёт! Причем добавляются в т.ч. и "большие" примеры - тот же Prime Number Generator. И пусть часть программ явно сгенерирована, но всё равно авторы добавляют частички творчества даже в такие искусственные творения :)
#esoteric_programming_language
Если вгруг решите поиграться с Piet, вот вам online IDE для оного: http://www.rapapaing.com/blog/?page_id=6
Подкинули на днях интересный образчик "языка", если можно так сказать: https://github.com/aaronduino/asciidots
Описание гласит: "AsciiDots - The result of combining ascii art, electrical engineering, and programming". Программы-схемы выглядят так (это вычислитель факториала):
Примечательно, что в отличие от большинства других языков с "2D-синтаксисом" (
Описание гласит: "AsciiDots - The result of combining ascii art, electrical engineering, and programming". Программы-схемы выглядят так (это вычислитель факториала):
/---------*--~-$#-&
| /--;---\| [!]-\
| *------++--*#1/
| | /1#\ ||
[*]*{-}-*~<+*?#-.
*-------+-</
\-#0----/
Примечательно, что в отличие от большинства других языков с "2D-синтаксисом" (
BeFunge, False, того же Piet) этот - не стековый. И вообще, программы на языке действительно похожи на электрические схемы с путешествующими по ним электронами. Занятная штука! Написана на #pythonGitHub
aaronjanse/asciidots
The combinination of ascii art, electrical engineering, and programming. - aaronjanse/asciidots
Процесс отладки программы (Телеграм пожал гифку, так что лучше смотреть ту, что в README репозитория):
https://raw.githubusercontent.com/aaronduino/asciidots/master/dots_debug.gif
https://raw.githubusercontent.com/aaronduino/asciidots/master/dots_debug.gif
Мне этот
Выглядят Wireworld-схемы так: https://upload.wikimedia.org/wikipedia/commons/1/13/Wireworld_XOR-gate.gif
#cellular_automata
AsciiDots, почему-то, напомнил клеточный автомат WireWorld (https://en.wikipedia.org/wiki/Wireworld). Последний тоже поделирует электрические схемы, правда только логические, но зато полон по Тьюрингу!Выглядят Wireworld-схемы так: https://upload.wikimedia.org/wikipedia/commons/1/13/Wireworld_XOR-gate.gif
#cellular_automata
Если вы вдруг пишете на #haskell, то, возможно, накопили своих пунктиков по поводу стендартной
Многие хаскелисты знают, что Haskell позволяет использовать свою прелюдию - свой набор умолчаний, удобный для конкретного проекта, или же просто более близкий по духу. Прелюдий уже понаписано довольно много и выбрать среди них подходящую (или решить, что настало время писать свою - поверьте, это не то-то плохое :)) довольно сложно.
Поэтому так ценны подобные странички: https://guide.aelve.com/haskell/alternative-preludes-zr69k1hc - здесь упомянуты многие популярные прелюдии, и для каждого образчика указано краткое описание "почему?"/"для кого?", плюсы и минусы и проч. Организована информация удобно и охват имеет широкий. Буду пользоваться :)
Prelude (для тех, кто не в курсе, это такой неймспейс, который импортируется неявно в любые исходники и содержит (или экспортирует) предметы первой необходимости типа print, map и +).Многие хаскелисты знают, что Haskell позволяет использовать свою прелюдию - свой набор умолчаний, удобный для конкретного проекта, или же просто более близкий по духу. Прелюдий уже понаписано довольно много и выбрать среди них подходящую (или решить, что настало время писать свою - поверьте, это не то-то плохое :)) довольно сложно.
Поэтому так ценны подобные странички: https://guide.aelve.com/haskell/alternative-preludes-zr69k1hc - здесь упомянуты многие популярные прелюдии, и для каждого образчика указано краткое описание "почему?"/"для кого?", плюсы и минусы и проч. Организована информация удобно и охват имеет широкий. Буду пользоваться :)