Оказывается, для #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 :)
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 :)
GitHub
GitHub - palantir/python-language-server: An implementation of the Language Server Protocol for Python
An implementation of the Language Server Protocol for Python - palantir/python-language-server
Почти четыре года уже прошло, а это видео всё ещё прекрасно: https://www.youtube.com/watch?v=RqvCNb7fKsg
#haskell, #юмор, вот это всё
#haskell, #юмор, вот это всё
YouTube
Programming - Why Haskell is Great - 10 minutes
http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=lung+blower+5000&rh=i%3Aaps%2Ck%3Alung+blower+5000
http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=hyperspherical+haskell+interpreter&rh=i%3Aaps%2C…
http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=hyperspherical+haskell+interpreter&rh=i%3Aaps%2C…
Прекрасная книга #SICP теперь доступна для
Теперь она и свёрстана красиво и будет отлично читаться с любых экранов, в т.ч. и небольших!
комфортного чтения в браузере здесь: https://sarabander.github.io/sicp/Теперь она и свёрстана красиво и будет отлично читаться с любых экранов, в т.ч. и небольших!
Алфавит, в котором каждой букве соответствует язык программирования и
Что примечательно, многие буквы представляют далеко не самые популярные образчики! Да ещё и языков с синтаксисом на S-expressions аж целых три:
Лично я бы ещё
#just4fun
hello world на оном: https://inedo.com/abc/lettersЧто примечательно, многие буквы представляют далеко не самые популярные образчики! Да ещё и языков с синтаксисом на S-expressions аж целых три:
Clojure, Lisp и Qui - странно, что "R" не Racket и "S" не Scheme :)Лично я бы ещё
Java заменил на J и Ruby на тот же Red`/`Rebol или даже на РАПИРА (да хоть на R). Но всё равно алфавит прекрасный!#just4fun
Ещё один
Написан он на #rust и, несмотря на юность, уже умеет многое. Меня, например, радует возможность класть посты в подпапки вместе с дополнительными файлами (картинки и проч) и вообще выстраивать целые иерархии записей. RSS, тэги и категории также присутствуют - это умеет любой уважающий себя генератор. Ещё есть
Вердикт - стоит попробовать! Я то пока с #Hakyll слезать не собираюсь, тем более что блог я подзабросил - да, опять - и если и пишу, то сюда. Но Rust мне интересен и наблюдать за появлением и развитием проектов на оном мне нравится :)
генератор статических сайтов: https://github.com/Keats/gutenbergНаписан он на #rust и, несмотря на юность, уже умеет многое. Меня, например, радует возможность класть посты в подпапки вместе с дополнительными файлами (картинки и проч) и вообще выстраивать целые иерархии записей. RSS, тэги и категории также присутствуют - это умеет любой уважающий себя генератор. Ещё есть
Jinja2 / Django-совместимые шаблоны.Вердикт - стоит попробовать! Я то пока с #Hakyll слезать не собираюсь, тем более что блог я подзабросил - да, опять - и если и пишу, то сюда. Но Rust мне интересен и наблюдать за появлением и развитием проектов на оном мне нравится :)
GitHub
getzola/zola
A fast static site generator in a single binary with everything built-in. https://www.getzola.org - getzola/zola
Красивый улучшатель вывода информации об исключениях в коде на #python: https://github.com/Qix-/better-exceptions Подключается либо импортом модуля, либо через hook. После подключения исключения начинают выглядеть так:
Интересное мнение о
В частности, мне нравится пункт "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