Интересное мнение о
В частности, мне нравится пункт "Checking simple rules and conventions: NO". Я обеими руками за то, чтобы проверку code style полностью автоматизировать и перестать тратить время споры о стилях и переключиться на споры о дизайне :)
Code Review: https://neilmitchell.blogspot.ru/2017/04/code-review-reviewed.htmlВ частности, мне нравится пункт "Checking simple rules and conventions: NO". Я обеими руками за то, чтобы проверку code style полностью автоматизировать и перестать тратить время споры о стилях и переключиться на споры о дизайне :)
neilmitchell.blogspot.co.uk
Code Review Reviewed
Summary: I used to be mildly against code review on all merges. Now I'm for it. Code review is a good idea for knowledge sharing, not spotti...
http://tonsky.livejournal.com/310929.html хорошая статейка про то, как всё плохо в этих ваших вэбчиках. Никита вообще хорошо пишет, пусть я и не всегда согласен с его точкой зрения :) В этот раз - полностью согласен: да, всё плохо. И мне тоже в последнее время пришлось поработать с вёрсткой (готовой!) с целью её оживления. И пусть эта вёрстка делалась с примененим подхода БЭМ и в целом была довольно адекватна, проблем процесс оживления доставил немало!
Livejournal
Крутое пике
Сегодня я расскажу вам, как хорошо и замечательно обстоят дела на бэкенде. Какие там простые технологии, как легко пишется, как стабильно всё работает. Начинается история с того, что два года назад я перешел во фронтенд. Главный ресурс фронтендера — MDN.…
Кстати, на днях прошел очередной митап нашего русскоязычного сообщества программистов на #haskell (http://ruhaskell.org/). В этот раз снова нас поддержала
Kaspersky Lab, предоставив отличное помещение и помощь людей, благодаря которым видео уже доступно: https://www.youtube.com/watch?v=f6TmB6Zw8MQ C 1:38:40 можно послушать мой доклад про GHCJS, React, Flux и про то, как мы с этим живем :)Хехе, перепутал и дал ссылку на видео с предыдущего митапа (впрочем я там тоже есть :)). Вот правильная ссылка на недавний: https://www.youtube.com/watch?v=Ew8gl6WF9to (я там с
2:01:46)YouTube
CoLaboratory: ruHaskell 2
В прошлом году совместно с сообществом RuHaskell мы сравнили Haskell с C++ и поговорили о магии типов Haskell. 6 апреля сообщество и «Лаборатория Касперского» вновь пригласили всех заинтересованных на встречу, чтобы обсудить Haskell и другие языки в функциональной…
Вот действительно неплохо написано о наболевшем: https://josephg.com/blog/electron-is-flash-for-the-desktop/
Seph
Electron is flash for the desktop
What is slack doing? The process was in the background when this happened. I wasn't even interacting with it - I was in a meeting. I only noticed because my laptop fans were whurring when I got back. Restarting slack seemed to fix it for now. But that's not…
Несколько предвзятая, но полезная книга (скорее, брошюрка) о том, как же нужно делать свой 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
(прямая ссылка на PDF: https://pages.apigee.com/rs/apigee/images/api-design-ebook-2012-03.pdf).
Книжка охватывает широкий круг тем - упомянуты и аутентификация, и версионирование и поиск. К каждому пункту прилагаются примеры существующих API известных серсисов, и каждый пример снабжен комментариями автора о плюсах и минусах этого конкретного решения. Повторюсь - вкусовщины в книжке много, но в рациональных зёрен не одна горсть наберется :)
#software_design #api #book
Apigee
Web API Design | Apigee
Application developers are the customers of a Web API. Success is measured by how quickly app developers enjoy success using your API in their applications. And rapid adoption of a Web API is all about design. This e-book will help you make design choices…
Вот это да!
Как минимум, оцените размах и проработку - даже в OS/2 работает! И конечно работает в "тонких" VT220-терминалах :) Очень круто!
Nayn Cat теперь и в вашем терминале! http://nyancat.dakko.us/Как минимум, оцените размах и проработку - даже в OS/2 работает! И конечно работает в "тонких" VT220-терминалах :) Очень круто!
Недавно перешел на хранение и синхронизацию .dotfiles в Git-репозитории. Для этого воспользовался утилитой
Раньше я синхронизироал мои конфиги через Dropbox и симлинки из него, а раскладыванием симлинков занималась утилита
Кстати, и SUS и YADM умеют хранить несколько версий для отдельных конфигов, что удобно в случае различных OS и различных по конфигурации машин, а YADM умеет даже шаблонизацию.
#dotfiles #linux
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
yadm
Yet Another Dotfiles Manager
When you live in a command line, configurations are a deeply personal thing. They are often crafted over years of experience, battles lost, lessons learned, advice followed, and ingenuity rewarded. When you are away from your own configurations, you are an…
Внезапно заявился выступать на DevConf: https://devconf.ru/ru/offers/offer/273
Есть шанс, что возьмут, тогда смогу порассказать про безопасное скриптование с помощью #haskell и библиотек
Есть шанс, что возьмут, тогда смогу порассказать про безопасное скриптование с помощью #haskell и библиотек
Turtle и Shake, которые позволяют выбросить bash и make соответственно :)devconf.ru
Автоматизируем и скриптуем безопасно с Haskell - Профессиональная конференция веб-разработчиков Devconf 2018
Всем нам приходится что-то автоматизировать рутинные задачи - кому-то сборку, кому-то резервное копирование или обработку и сбор логов. Часто для подобных задач используются динамически типизированные скриптовые языки, ведь писать скрипты на ник так быстро…
(Что-то давно не писал сюда - запал пропал, как обычно :( Попробую исправиться)
Как говорит описание, это
Если кратко, то с помощью этой штуки можно брать строки вида
и получать
Подобным же образом разбираются меры объема ("3 cups of sugar") и прочие числительные ("eighty eight").
Кмк, такая штука отлично себя покажет в связке с STT и ботами вообще. Скажем, можно написать бота, кторый сможет разобрать человекописанный рецепт пирога и составить список покупок, соответствующий ингридиентам! Или можно просто сделать напоминалку, понимающую фразы типа "завтра в три пятнадцать напомни купить пару лампочек" :)
Важно, что движок подразумевает расширение и на первый взгляд расширяемость сделана довольно удобно.
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 и ботами вообще. Скажем, можно написать бота, кторый сможет разобрать человекописанный рецепт пирога и составить список покупок, соответствующий ингридиентам! Или можно просто сделать напоминалку, понимающую фразы типа "завтра в три пятнадцать напомни купить пару лампочек" :)
Важно, что движок подразумевает расширение и на первый взгляд расширяемость сделана довольно удобно.
GitHub
facebook/duckling
Language, engine, and tooling for expressing, testing, and evaluating composable language rules on input strings. - facebook/duckling
Наткнулся на "релизацию"
Оказалось, что оная просто запускает #python под капотом :) И я лично считаю такое решение имеющим смысл - сил в matplotlib вложено столько, что реализовать аналог мало кто отважится. И да, для Haskell есть
Эта библиотека - ещё один шажок, приближающий Haskell к "победе над python" в нише ML и прочей "прикладухи" :)
matplotlib на #haskell: https://github.com/abarbu/matplotlib-haskellОказалось, что оная просто запускает #python под капотом :) И я лично считаю такое решение имеющим смысл - сил в matplotlib вложено столько, что реализовать аналог мало кто отважится. И да, для Haskell есть
diagram и надстройки над оным. Но matplotlib а) сразу умеет очень многое "из коробки" б) синтаксически приближен к MatLab (в части работы с визуализацией), что делает matplotlib отличным инструментом для прикладников, привыкших использовать упомянутый проприетарный продукт.Эта библиотека - ещё один шажок, приближающий Haskell к "победе над python" в нише ML и прочей "прикладухи" :)
GitHub
GitHub - abarbu/matplotlib-haskell: Haskell bindings for Python's Matplotlib
Haskell bindings for Python's Matplotlib. Contribute to abarbu/matplotlib-haskell development by creating an account on GitHub.
Интересный прокет:
Представьте себе, это реализация #haskell ('98) на #racket! Да, статическая типизация с выводом типов, алгебраические типы данных, сопоставление с образцом, даже
Конечно же, проект не претендует на роль ещё одной полноценной реализации языка Haskell, но "привнести любимые фишки в Racket" вполне способен - тем Racket и славен, что всячески поощряет написание и встраивание своих языков :)
Тем интереснее будет, когда будет готов REMIX (см. https://www.youtube.com/watch?v=r1kE3R26dK0), а вместе с ним и возможность вставлять куски кода на одном языке в код на другом, имея полную поддержку со стороны IDE для обоих языков (да, хаскелевы quasi quotes, это камень в ваш огород!)
Hackett (https://github.com/lexi-lambda/hackett)Представьте себе, это реализация #haskell ('98) на #racket! Да, статическая типизация с выводом типов, алгебраические типы данных, сопоставление с образцом, даже
классы типов! И при этом вся мощь макросистемы Racket!Конечно же, проект не претендует на роль ещё одной полноценной реализации языка Haskell, но "привнести любимые фишки в Racket" вполне способен - тем Racket и славен, что всячески поощряет написание и встраивание своих языков :)
Тем интереснее будет, когда будет готов REMIX (см. https://www.youtube.com/watch?v=r1kE3R26dK0), а вместе с ним и возможность вставлять куски кода на одном языке в код на другом, имея полную поддержку со стороны IDE для обоих языков (да, хаскелевы quasi quotes, это камень в ваш огород!)
GitHub
GitHub - lexi-lambda/hackett: WIP implementation of a Haskell-like Lisp in Racket
WIP implementation of a Haskell-like Lisp in Racket - lexi-lambda/hackett
Внезапно обнаружил, что есть #elm'like либа для GUI-строения на
#fsharp
F#. Компилируется в JS силами Fable. Лежит тут: https://fable-elmish.github.io/elmish/ Надо будет попробовать для интересу :)#fsharp
fable-elmish.github.io
Elmish
Elm-like Cmd and Program modules for Fable apps
Шикарная интерактивная обучалка #git'у: http://learngitbranching.js.org/ Учит и азам (коммиты, бранчинг), "пост-азам" (rebase и cherrypicking) и даже идет немного дальше :)
learngitbranching.js.org
Learn Git Branching
An interactive Git visualization tool to educate and challenge!
Livecoding на
Что же, начинание, бесспорно, полезное, хоть и не каждому подходит такой формат "развлечений" 😉
Зато сделана трансляция качественно, "диктора" слышно хорошо, да и тематика не самая "попсовая". Автор даже разместил ссылку на свои
Twitch добрался и до #rust: https://www.twitch.tv/tsoding - тут пишут электронную музыку на сабже.Что же, начинание, бесспорно, полезное, хоть и не каждому подходит такой формат "развлечений" 😉
Зато сделана трансляция качественно, "диктора" слышно хорошо, да и тематика не самая "попсовая". Автор даже разместил ссылку на свои
dotfiles: редактором у него #emacs работает, что лично меня радует 👍, а операционкой - #nixos!Twitch
Tsoding - Twitch
Rendering Chat as Video using C++
Хорошее руководство по
#haskell #tdd
QuickCheck https://begriffs.com/posts/2017-01-14-design-use-quickcheck.html Объясняет саму концепцию property based testing и учит описывать генераторы и свойства. Даже учит оценивать, как распределяются генерируемые аргументы и как покрывают область допустимых значений (!) - такое нечасто встретишь в статейках про PBT (обычно авторы ограничиваются примером про разворот списка).#haskell #tdd
Begriffs
The Design and Use of QuickCheck
How to use QuickCheck with Confidence
"Всю жизнь" думал, что знаю
Оказалось, что не только в Perl, но и вообще в PCRE есть
С подобными фичами можно писать выражения типа такого
а оное, оказывается, в .Net ещё и "улучшить" можно:
Использовать я это всё, конечно, не буду. Приспичит - на комбинаторах парсер напишу!
Но если вдруг кому-то будет интересно, сходите сюда: http://www.rexegg.com/regex-conditionals.html
#pcre #regex
регулярные выражения достаточно хорошо, уж по крайней мере PCRE. Знал, что в Perl можно внутрь выражений вставлять код на Perl (не пользовался ни разу, но был в курсе).Оказалось, что не только в Perl, но и вообще в PCRE есть
условные выражения и рекурсия! Более того, в условии можно узнать, например, что сейчас осуществляется непервый проход, и тем самым управлять рекурсией!С подобными фичами можно писать выражения типа такого
^(?:A(?=A*+[^AB]*+((?(1)\1)B)))++[^B]*+\1$,а оное, оказывается, в .Net ещё и "улучшить" можно:
^(?>(?<Count_A>A)+)(?>[^AB]*)(?>(?<-Count_A>B)+)(?(Count_A)(?!))$Использовать я это всё, конечно, не буду. Приспичит - на комбинаторах парсер напишу!
Но если вдруг кому-то будет интересно, сходите сюда: http://www.rexegg.com/regex-conditionals.html
#pcre #regex
🔥1
Ну вот, эта регулярка проверяет баланс скобок в произвольном S-выражении:
Когда-то (ещё вчера) я думал, что такое на #regex не сделать...
(?(R)|^)\([^()]*((?R)[^()]*)*\)(?(R)|$)Когда-то (ещё вчера) я думал, что такое на #regex не сделать...
Люблю процедурную генерацию контента, особенно графического. Вот интересный образчик "прямо в браузере": http://alastor.instant-adventures.net/
Генерируются планеты Кластера Аластор - автор вдохновлялся творчеством Джека Вэнса. Обратите внимание: ландшафты - живые (луны двигаются)!
Надо будет что-то подобное накодить на elm/purecsript :)
#procedural_generation
Генерируются планеты Кластера Аластор - автор вдохновлялся творчеством Джека Вэнса. Обратите внимание: ландшафты - живые (луны двигаются)!
Надо будет что-то подобное накодить на elm/purecsript :)
#procedural_generation