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
Вот так выглядит одно из состояний системы
Оказывается, среди Racket-языков есть отдельный язык для описания L-систем - это такие простые фракталы, которые "рисуют деревья".

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

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

#racket #fractals #lsystems
Типичные L-системные деревья
На горизонте нарисовался потенциально интересный хакатончик:
https://twitter.com/5ht/status/839395772324065280

Предлагается похакатонить на #haskell, причем "с нуля", т.е. там ещё и научат этому самому хаскелю и дадут порешать реальные задачки в большом проекте.
Language:
haskell


Source:
main = print $ take 10 fibs
where
fibs = 1 : 1 : zipWith (+) fibs (tail fibs)


Result:
[1,1,2,3,5,8,13,21,34,55]
Однако, неплохой бот! Авось кому пригодится :)
Language:
python3


Source:
def fibs():
yield 1
yield 1
tail_fibs = fibs()
next(tail_fibs)
for (x, y) in zip(fibs(), tail_fibs):
yield x + y

for x, y in zip(range(10), fibs()):
print("Fibonacci Number #{} equals {}".format(x + 1, y))


Result:
Fibonacci Number #1 equals 1
Fibonacci Number #2 equals 1
Fibonacci Number #3 equals 2
Fibonacci Number #4 equals 3
Fibonacci Number #5 equals 5
Fibonacci Number #6 equals 8
Fibonacci Number #7 equals 13
Fibonacci Number #8 equals 21
Fibonacci Number #9 equals 34
Fibonacci Number #10 equals 55
Питонячья версия длиннее, конечно, но это тоже ленивая генерация бесконечной последовательности чисел Фибоначчи :)
Неплохая статейка про альтернативу amend в #git: https://dev.to/tmr232/dont-amend-fix
Надо взять на вооружение
https://github.com/metosin/compojure-api - отличный набор батареек для compojure (это такой слой роутинга в HTTP-стеке #сlojure)

Тут вам и схема для валидации и преобразования данных и генерация документации (с паре со Swagger) и прочее. Если вы периодически покложуриваете, то вам определённо стоит обратить внимание на пакетик.
Оказывается, для #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 :)
Прекрасная книга #SICP теперь доступна для комфортного чтения в браузере здесь: https://sarabander.github.io/sicp/
Теперь она и свёрстана красиво и будет отлично читаться с любых экранов, в т.ч. и небольших!
Алфавит, в котором каждой букве соответствует язык программирования и hello world на оном: https://inedo.com/abc/letters
Что примечательно, многие буквы представляют далеко не самые популярные образчики! Да ещё и языков с синтаксисом на S-expressions аж целых три: Clojure, Lisp и Qui - странно, что "R" не Racket и "S" не Scheme :)
Лично я бы ещё Java заменил на J и Ruby на тот же Red`/`Rebol или даже на РАПИРА (да хоть на R). Но всё равно алфавит прекрасный!
#just4fun
Ещё один генератор статических сайтов: https://github.com/Keats/gutenberg

Написан он на #rust и, несмотря на юность, уже умеет многое. Меня, например, радует возможность класть посты в подпапки вместе с дополнительными файлами (картинки и проч) и вообще выстраивать целые иерархии записей. RSS, тэги и категории также присутствуют - это умеет любой уважающий себя генератор. Ещё есть Jinja2 / Django-совместимые шаблоны.

Вердикт - стоит попробовать! Я то пока с #Hakyll слезать не собираюсь, тем более что блог я подзабросил - да, опять - и если и пишу, то сюда. Но Rust мне интересен и наблюдать за появлением и развитием проектов на оном мне нравится :)
Красивый улучшатель вывода информации об исключениях в коде на #python: https://github.com/Qix-/better-exceptions Подключается либо импортом модуля, либо через hook. После подключения исключения начинают выглядеть так:
Интересное мнение о Code Review: https://neilmitchell.blogspot.ru/2017/04/code-review-reviewed.html

В частности, мне нравится пункт "Checking simple rules and conventions: NO". Я обеими руками за то, чтобы проверку code style полностью автоматизировать и перестать тратить время споры о стилях и переключиться на споры о дизайне :)
http://tonsky.livejournal.com/310929.html хорошая статейка про то, как всё плохо в этих ваших вэбчиках. Никита вообще хорошо пишет, пусть я и не всегда согласен с его точкой зрения :) В этот раз - полностью согласен: да, всё плохо. И мне тоже в последнее время пришлось поработать с вёрсткой (готовой!) с целью её оживления. И пусть эта вёрстка делалась с примененим подхода БЭМ и в целом была довольно адекватна, проблем процесс оживления доставил немало!
Кстати, на днях прошел очередной митап нашего русскоязычного сообщества программистов на #haskell (http://ruhaskell.org/). В этот раз снова нас поддержала Kaspersky Lab, предоставив отличное помещение и помощь людей, благодаря которым видео уже доступно: https://www.youtube.com/watch?v=f6TmB6Zw8MQ C 1:38:40 можно послушать мой доклад про GHCJS, React, Flux и про то, как мы с этим живем :)