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
Питонячья версия длиннее, конечно, но это тоже ленивая генерация бесконечной последовательности чисел Фибоначчи :)
Неплохая статейка про альтернативу 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 и про то, как мы с этим живем :)
Несколько предвзятая, но полезная книга (скорее, брошюрка) о том, как же нужно делать свой API, чтобы пользователи-разработчики были довольны: https://apigee.com/about/resources/ebooks/web-api-design
(прямая ссылка на PDF: https://pages.apigee.com/rs/apigee/images/api-design-ebook-2012-03.pdf).

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

#software_design #api #book
Вот это да! Nayn Cat теперь и в вашем терминале! http://nyancat.dakko.us/
Как минимум, оцените размах и проработку - даже в OS/2 работает! И конечно работает в "тонких" VT220-терминалах :) Очень круто!
Недавно перешел на хранение и синхронизацию .dotfiles в Git-репозитории. Для этого воспользовался утилитой YADM - Yet Another Dotfiles Manager (https://thelocehiliosan.github.io/yadm/).

Раньше я синхронизироал мои конфиги через Dropbox и симлинки из него, а раскладыванием симлинков занималась утилита SUS - Super User Spark (https://github.com/NorfairKing/super-user-spark). В целом связка "Dropbox+SUS" меня устраивала, но не хватало версионности. А YADM эту проблему решил, ибо Git. Причем даже симлинки не нужны - YADM версионирует файлы прямо по месту.

Кстати, и SUS и YADM умеют хранить несколько версий для отдельных конфигов, что удобно в случае различных OS и различных по конфигурации машин, а YADM умеет даже шаблонизацию.

#dotfiles #linux
(Что-то давно не писал сюда - запал пропал, как обычно :( Попробую исправиться)

Facebook открыл исходники ещё одного инструмента на #haskell: https://github.com/facebookincubator/duckling

Как говорит описание, это Language, engine, and tooling for expressing, testing, and evaluating composable language rules on input strings..
Если кратко, то с помощью этой штуки можно брать строки вида
"the first Tuesday of October"

и получать
{"value":"2017-10-03T00:00:00.000-07:00","grain":"day"}

Подобным же образом разбираются меры объема ("3 cups of sugar") и прочие числительные ("eighty eight").

Кмк, такая штука отлично себя покажет в связке с STT и ботами вообще. Скажем, можно написать бота, кторый сможет разобрать человекописанный рецепт пирога и составить список покупок, соответствующий ингридиентам! Или можно просто сделать напоминалку, понимающую фразы типа "завтра в три пятнадцать напомни купить пару лампочек" :)

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