svetlyak40wt

6 ноября 2017, Москва, Россия

# Понедельник 61 твит

Всем привет!

На этой неделе с вами Александр Артеменко (@svetlyak40wt).

Занимаюсь разработкой уже 17 лет, не считая школы и универа.

9:21

Длинные выходные подходят к концу. Давайте поговорим о том, кто чего запилили в качестве pet-project. И если не запилил, то почему?

9:24
@backendsecret пилил бота для конкурсов в вк (больше ради интереса, а не надежды на материальные профиты) github.com/last-khajiit/v…

Это ж два года назад было :)

А с тех пор ничего не делал? Почему? twitter.com/last_khajiit/s…

11:03
@backendsecret Пилил форум на новом для меня фреймворке ради изучения оного, потом показывал проект на собесах, нашёл новую работу

Что за фреймворк? twitter.com/danilk_/status…

12:00
@backendsecret Я частенько всякие мелочи делаю, только вот обычно до релиза/github оно не доживает... Мне кажется,… twitter.com/i/web/status/9…

Что за мелочи? Приведи пример? twitter.com/alexcleac_ua/s…

12:02
@backendsecret Готовлюсь к собеседованию =(. Лучше бы pet-project писал.

Куда, если не секрет? twitter.com/xotta6bl4_/sta…

12:02
@backendsecret Symfony. Пхпшник я. На прошлой работе была только куча легаси, поэтому полез изучать что-то более современное и интересное

А попробовать что-то радикально новое, вроде другого языка никогда не хотелось? twitter.com/danilk_/status…

12:06
@backendsecret Внутреннее)

О, коллега! :) twitter.com/xotta6bl4_/sta…

12:07
@backendsecret Я показывал свой пет. Нигде это не помогло.

Для меня, ссылка на github, в резюме – большой плюс. Если есть пет-прожекты – ещё один плюс. twitter.com/dcromster/stat…

12:09

смотрю, как правило, на структуру кода, есть ли тесты, пишет ли чел комментарии. И тому подобные вещи.

12:10
@backendsecret Потом, терминальный простенький таск-менеджер пилил, но так и не допилил, и выбросил при переустанов… twitter.com/i/web/status/9…

О, я тоже 9 лет назад терминальный таск менеджер пилил:

github.com/svetlyak40wt/g…

Но не прижился он как-то. Сейчас… twitter.com/i/web/status/9…

12:13
@backendsecret Например, сделал маленький враппер для менджмента проектов, с которыми работаю на базе tmux. Вот его… twitter.com/i/web/status/9…

Похоже, у разработчиков мысли сходятся. У меня тоже подобное есть:

github.com/svetlyak40wt/d… twitter.com/alexcleac_ua/s…

12:16
@backendsecret пилю интерпретатор лиспа на руби

А github.com/7even/carbonate видел? twitter.com/alekskakaleks/…

12:21
@backendsecret комментарии это хорошо или плохо?

А ты как думаешь? twitter.com/iorader/status…

12:30
@backendsecret Тут смотря где комментарии. Если в коде между строк - то плохо.

Если в коде между строк, то очень хорошо. Но только коммент должен описывать не то, что в коде происходит, а то “за… twitter.com/i/web/status/9…

12:40
@backendsecret А я вот последнее время в своих pet projects обкатываю pure oop. Мне определенно нравится, но в прод… twitter.com/i/web/status/9…

Что такое “pure OOP”? twitter.com/dronmdf/status…

12:41
@backendsecret Если у тебя между строк возникает непонятка, зачем это сделано - это значит что функция слишком сложна. SRP...

Это да, но я имел в виду, что код решает какую-то проблему или задачу, и некоторые нюансы зачастую требуют объяснен… twitter.com/i/web/status/9…

12:50
@backendsecret Чистый ООП, без отдельных функций, без статиков, без много чего... Должны быть объекты, иммутабельны… twitter.com/i/web/status/9…

Это какой-то радикализм. Ради чего загонять себя в такие рамки? twitter.com/dronmdf/status…

12:52
Это какой-то радикализм. Ради чего загонять себя в такие рамки? twitter.com/dronmdf/status…

Вот раньше были ребята такие, которые вериги носили. Им тоже это казалось правильно и верно. twitter.com/backendsecret/…

12:52
@backendsecret А оцените: github.com/strizhechenko/…

Делал специально чтобы в резюме добавить и выделываться.

Интересная штука. Сохранил в закладки. twitter.com/strizhechenko/…

13:17
@backendsecret А для чего ты пишешь на lisp? Зачем загонять себя с такие узкие функциональные рамки? Я тоже в индус… twitter.com/i/web/status/9…

Common Lisp, в который я себя “загоняю”, нифига не функциональный, а ооп там такое, что другим языкам и не снилось.… twitter.com/i/web/status/9…

13:19
@backendsecret дануладна
не зачастую уж
редко, крайне редко

ну или хак какой перфомансный, но тоже редко же

В большом и сложном проекте – почти на каждом шагу. twitter.com/krems5/status/…

13:22
@backendsecret @vkozulya хорошо об этом написал, когда @nazarov_tech хостил @backendsecret
twitter.com/vkozulya/statu…

Ну окей. Просто мне больше интересны кандидаты, которые не с 9 до 18 работают, а потом бухают, но и самостоятельно… twitter.com/i/web/status/9…

13:25
@backendsecret И это совершенно точно не показатель того, что человек не развивается

По одному отсутствию пет-прожектов, так нельзя сказать, развивается или нет, но по наличию можно судить, что скорее… twitter.com/i/web/status/9…

13:31
@backendsecret Удивительно, как трудоголизм и (простите) задротство с утра до ночи преподносится как что то хорошее в нынешнее время.

Я весь во внимании, поведай же, что нужно преподносить, как “что-то хорошее”? twitter.com/wantednothing/…

13:36
@backendsecret Это должен описывать commit message, а не коммент

Я тоже раньше так думал, но нет. Когда кто-то поменяет чуть код в плане форматирования, git blame уже не покажет ст… twitter.com/i/web/status/9…

13:51
@backendsecret Уважать время человека и понять, что некоторых интересует много других вещей, на которые они могут т… twitter.com/i/web/status/9…

Ещё, я отношу к хорошим вещам знание русского языка ;)

А если серьёзно, то помимо программирования имею несколько… twitter.com/i/web/status/9…

13:53
@krems5 @backendsecret По разному это как раз и плохо. В продакшин важно понимать чужой код. Но я это очень редко вижу в жизни.

Для того, чтобы писать понятный другому человеку код (на любом языке), нужна дисциплина. twitter.com/dronmdf/status…

13:56
@backendsecret Да господи,автор и не говорит,что работа это всё что должно быть!Он за то,что если есть петпроджект,… twitter.com/i/web/status/9…

Всё так. twitter.com/aarexer/status…

13:56
Если посмотреть в масштабе, то все значимые достижения сделаны как раз теми, кто организованно трудится с 9 до 18 и… twitter.com/i/web/status/9…

Давай переформулируем – все значимые достижения сделаны большими компаниями. Так что ли? Но вот вопрос, где этот са… twitter.com/i/web/status/9…

13:58
@backendsecret В продуктовой разработке важна дисциплина. По стилю, по парадигме, по контролю версий, по тасктрекин… twitter.com/i/web/status/9…

Конечно, а когда у тебя есть эта внутренняя дисциплина, то язык, который дополнительно её насаждает, будет только м… twitter.com/i/web/status/9…

14:00
@backendsecret В большинстве случаев такие комментарии не нужны и даже вредны, так как неизбежно разойдутся с кодом… twitter.com/i/web/status/9…

Поясню на примере. Недавно я рефакторил Weblocks. Перенёс большой кусок кода в другой файл. Знания из коммит-мессад… twitter.com/i/web/status/9…

14:04
@backendsecret Что за хобби?

Фотография (но в последнее время наскучило): svetlyak.ru/gallery/ twitter.com/aarexer/status…

14:06
@backendsecret Что за хобби?

Игра на укулеле. twitter.com/aarexer/status…

14:06
@backendsecret Что за хобби?

Автомеханика: drive2.ru/l/9590936/ twitter.com/aarexer/status…

14:08
@backendsecret Безвозвратно они, конечно же, утеряны не будут, да, добраться до нужной инфы будет чуть сложнее, но все еще будет возможно

Я бы сказал – гораздо сложнее будет добраться. И что хуже всего – тот кто увидит этот код, будет видеть мой commit-… twitter.com/i/web/status/9…

14:15
Я бы сказал – гораздо сложнее будет добраться. И что хуже всего – тот кто увидит этот код, будет видеть мой commit-… twitter.com/i/web/status/9…

…в голову не прийдёт искать что там было до этого. twitter.com/backendsecret/…

14:15
@backendsecret почему именно cl, а не scheme/racket, clojure, lfe etc.?

Он меньше всего навязывает есть стандарт и куча совместимых реализаций на все случаи жизни. Хочешь под мобильники п… twitter.com/i/web/status/9…

16:06
@backendsecret Пилю систему автоматического создания бекапов БД. Отказоустойчивую и масштабируемую. Пока не потерял… twitter.com/i/web/status/9…

Каких именно БД? twitter.com/randomazer/sta…

16:08
@backendsecret Скорее - это минус. Человек не отдыхает, значит быстро выгорает. Не поверю, что кто-то может полноце… twitter.com/i/web/status/9…

Лет 10 уже так живу. Что-то я делаю не так, видимо. twitter.com/aktuba/status/…

16:10
@backendsecret Главное не то, что он их пишет, а какие они. Если это будет: //this is bridge
Это не помогает.

Да, Кэп! twitter.com/bitomaxsp/stat…

16:15
Ребята, помните, что если у вас есть семья, личная жизнь и какие-то интересы, помимо работы, то вы лентяй и бездель… twitter.com/i/web/status/9…

Владислав, у меня есть всё что вы перечислили, так не надо так категорично советовать. Интернет то всё помнит кто к… twitter.com/i/web/status/9…

16:19
@backendsecret Он всегда шутит, Козуля же, ну кто его не знает?

Я не знаю. Мало ли в интернетах Козуль? :) twitter.com/igor_maslik/st…

16:24
@backendsecret Пока Postgresql и MongoDb. Дальше как процесс налажу с другими буду вопрос решать

А как бэкап происходит? twitter.com/randomazer/sta…

16:24
А как бэкап происходит? twitter.com/randomazer/sta…

В яндексе у DBA есть решение, которое для PostgreSQL делает снапшоты и между ними сохраняет binlog. Можно на любой… twitter.com/i/web/status/9…

16:28
@backendsecret Посоны, спокойно, в какую-нибудь нормальную компанию типа Гугла, Амазона, MS и т.д. вас возьмут и бе… twitter.com/i/web/status/9…

Да да, забейте на меня все кому тема не интересна. Утомили. twitter.com/onepinchman/st…

16:29
@backendsecret Штатными средствами самой БД. Dump и Mongodump. Но с некоторыми фитчами. В виде распараллеливания по базам на горутинах

А на какого размера базы оно рассчитано? twitter.com/randomazer/sta…

16:31
@aarexer @backendsecret Мои поинт в том, что не нужно делать выводов о человеке по каким-то внешним признакам. Есть… twitter.com/i/web/status/9…

Когда ты собеседуешь чувака, и решаешь брать его или не брать, то всё что у тебя есть, это такие вот внешние призна… twitter.com/i/web/status/9…

16:32
@backendsecret оно опенсорсное ?

Да, вот оно: pgbarman.org twitter.com/basili4_1982/s…

16:36
@backendsecret да, описываете свой опыт как единственно верный

А где были слова про “единственно верный”? twitter.com/kitsuneo9tails…

16:38
@borovikov @backendsecret по мне, так кроме профессиональных вопросов надо вопросы на характер, псизологию. поняьь, впишется ли.

Ответы на такие вопросы это тоже лишь внешние сигналы. Понять такой человек как говорит или нет, можно только пораб… twitter.com/i/web/status/9…

16:39
Аааа, в @backendsecret на этой неделе яндексоид. Тогда всё понятно. Сразу бы сказали.

Так сразу и сказали. С утра надо приходить, соня :-D twitter.com/webholt/status…

16:40
@backendsecret Это неважно, отлаживать буду на своих продовых по 1ТБ. Хочу сделать тюн бекапа. Чтобы в зависимости… twitter.com/i/web/status/9…

А как можно распараллелить pgdump? Если он дампит 1T базу, он же это будет в один поток делать. twitter.com/randomazer/sta…

16:41
@backendsecret Вообще готов на критику, предложения по созжанию. Очень не хватает фидбека от знающих людей

Посмотри на pgbarman.org восстановление на любой момент времени – крутая фича. twitter.com/randomazer/sta…

16:44
@backendsecret Сорян, я с утра бутылки резал пластиковые, не до твиттера было.

Вот это я понимаю, хобби! Тоже в детстве “Очумелых Ручек” пересмотрел? Они там всё из пластиковых бутылок делали :) twitter.com/webholt/status…

16:45
@backendsecret у вас кажется work/life balance сломался

Ты прав. Пойду я лучше с детишками в XBox поиграю. twitter.com/iamstarkov/sta…

16:46
@backendsecret В Postgres может быть несколько баз или таблиц. На уровне таблиц и баз будем параллелить.

Пришли ссылочку где посмотреть. twitter.com/randomazer/sta…

16:48
@backendsecret В pgdump указываем какую базу и таблицу дампим. Получается несколько запросов. По ним и параллеим. И… twitter.com/i/web/status/9…

А разве так не получится, что ты таблички сдампишь неконсистентно? Ведь каждый дамп будет происходить в своей сесси… twitter.com/i/web/status/9…

16:49
@backendsecret Сколько часов в день на работе? Сколько из них непосредственно на работу отводятся?

Часов 9. В пути между офисом и домом ещё часа 3, из них часть времени как раз на пет-прожекты трачу и на чтение кни… twitter.com/i/web/status/9…

16:50
@backendsecret Только по будням?

Конечно. Один день в неделю удалённо работаю. Тогда строгого расписания нет. twitter.com/webholt/status…

17:18
@backendsecret расскажи тогда про минусы языка/платформы, не про скобочки. жив ли вообще язык, насколько живое коммьюнити, библиотеки?

Завтра. twitter.com/iambernik/stat…

19:12

# Вторник 38 твитов

@backendsecret Яндекс оплачивает лишний час каждый день, или это твой подарок начальнику?

Это мой такой подарок тому проекту, которым я занимаюсь. Начальник тут ни при чём. В Яндексе никто не ходит за тобо… twitter.com/i/web/status/9…

5:44

Напомню, вчера мы здорово провели время, обсуждая нужно ли иметь pet-project или лучше проводить время с семьёй/собакой/катаясь на лыжах.

7:45
Напомню, вчера мы здорово провели время, обсуждая нужно ли иметь pet-project или лучше проводить время с семьёй/собакой/катаясь на лыжах.

Однако, переубеждать я никого не собираюсь. Не нравится тема, проходите мимо, не тратьте своё время и время других… twitter.com/i/web/status/9…

7:45
Однако, переубеждать я никого не собираюсь. Не нравится тема, проходите мимо, не тратьте своё время и время других… twitter.com/i/web/status/9…

Давайте сегодня снова поговорим о том, как стать лучшим программистом. Именно ради этого я пришел к изучению лиспа,… twitter.com/i/web/status/9…

7:46
Давайте сегодня снова поговорим о том, как стать лучшим программистом. Именно ради этого я пришел к изучению лиспа,… twitter.com/i/web/status/9…

…рекомендую посмотреть на него другим. Почему Lisp вдруг сделает меня лучше, спросишь ты? Отвечаю - он предлагает и… twitter.com/i/web/status/9…

7:47
…рекомендую посмотреть на него другим. Почему Lisp вдруг сделает меня лучше, спросишь ты? Отвечаю - он предлагает и… twitter.com/i/web/status/9…

Когда ты можешь в рантайме менять функции, или, скажем, задекорировать функцию из чужой библиотеки, не меняя её код… twitter.com/i/web/status/9…

7:47
Когда ты можешь в рантайме менять функции, или, скажем, задекорировать функцию из чужой библиотеки, не меняя её код… twitter.com/i/web/status/9…

В отличии от традиционного подхода скомпилировал/запустил/оно-там-пошуршало, подход REPL позволяет легко анализиров… twitter.com/i/web/status/9…

7:47
В отличии от традиционного подхода скомпилировал/запустил/оно-там-пошуршало, подход REPL позволяет легко анализиров… twitter.com/i/web/status/9…

Конечно, я не специалист, изучаю Common Lisp всего несколько лет, наверняка найдутся люди, которые разбираются лучш… twitter.com/i/web/status/9…

7:47
Конечно, я не специалист, изучаю Common Lisp всего несколько лет, наверняка найдутся люди, которые разбираются лучш… twitter.com/i/web/status/9…

Предупреждая вопросы типа: "А почему не Scheme/Clojure/Arc/Hylang/…" хочу сказать. Диалектов много. Просто выбери о… twitter.com/i/web/status/9…

7:47
Предупреждая вопросы типа: "А почему не Scheme/Clojure/Arc/Hylang/…" хочу сказать. Диалектов много. Просто выбери о… twitter.com/i/web/status/9…

Итак, сегодня я отвечаю на вопросы про Common Lisp. Вопросы по-существу. Давайте не разводить холиваров. twitter.com/backendsecret/…

7:47
@backendsecret Начнём с вопроса, какие задачи требуют применения Common Lisp в наше время?

Благодаря тому, что есть много реализаций, применять можно где угодно от бэкенда до мобильных и чайников. twitter.com/egavrin/status…

8:22
@backendsecret В пайтоне тоже так можно.

Можно, но надо извернуться, а в CL очень многое удобно сделано для внесения изменений в рантайме. Те же packages ку… twitter.com/i/web/status/9…

8:23
@backendsecret В общем, я к тому что работать, а потом выкатывать какие-то полезные утилиты в опенсурс не такая зат… twitter.com/i/web/status/9…
8:25
@backendsecret Жена-фронтендер и совместные прожекты

Жена фронтендер это ценно! Береги её! twitter.com/sorx00/status/…

8:26
@backendsecret лиспу сто лет уже, но такое чувство, что на нем пишут только для фана
реальные компании на нем пишут?
почему да, почему нет?

Компаний которые пишут и были бы на слуху – не много. Наличией Lisp в продуктах обычно не афишируют. Просто использ… twitter.com/i/web/status/9…

8:29
@backendsecret лиспу сто лет уже, но такое чувство, что на нем пишут только для фана
реальные компании на нем пишут?
почему да, почему нет?

Область применения очень широка: и веб, и игрушки (all-things-andy-gavin.com/2011/03/12/mak…) и разные CAD системы, и логистика. twitter.com/ngalayko/statu…

8:30
@backendsecret Если ранее с ООП работали. Как CLOS en.m.wikipedia.org/wiki/Common_Li… на это ложится?

CLOS прекрасен. Я конечно всё ещё его осваиваю, а к Meta Object Protocol ещё и не подступался. Но CLOS с его женери… twitter.com/i/web/status/9…

8:41
@backendsecret Вопрос другой. Почему Common Lisp?

Мощный. Мультипарадигменный. Язык можно менять под себя. Не привязан к конкретной платформе. Несколько хороших реал… twitter.com/i/web/status/9…

8:43
@backendsecret Не то, чтобы я придирался, но полторы игры - это не сильно-то и много. Скорее похоже на "да, мы попр… twitter.com/i/web/status/9…

Попробуй сам, а через год приходи – расскажешь. twitter.com/lifchicker/sta…

8:50
@backendsecret Легко ли поддерживать код другому разработчику?

Мне кажется, что сравнимо с другими языками. Если конечно написано нормально. У Google есть Style Guide по Lisp:… twitter.com/i/web/status/9…

9:03
@backendsecret а в чём разнятся реализации и какая для чего лучше?

ABCL – если с JAVA либами работать нужно
SBCL – если нужен производительный код
ClozureCL – удобен в разработке и е… twitter.com/i/web/status/9…

9:06
@backendsecret а в чём разнятся реализации и какая для чего лучше?

ECL – копилируется в C и можно запускать на микроконтроллерах и телефонах.
AllegroCL и LispWorks – в них много энте… twitter.com/i/web/status/9…

9:07
@backendsecret А это так есть, что ClozureCL нету в x86_64 сборке? Или я что-то не то находил?

Переформулируй вопрос пожалуйста, я не понимаю о чем речь. twitter.com/alexcleac_ua/s…

9:26
@backendsecret Что можешь посоветовать для вимера? Тулсет плагинов интересует :)

Кроме как перейти на emacs, если можно ;)

Как вимер (c 10 летним стажем), вимеру могу посоветовать – переходи на Emacs. Cначала с Vim помучился а потом переш… twitter.com/i/web/status/9…

9:28
@backendsecret Что можешь посоветовать для вимера? Тулсет плагинов интересует :)

Кроме как перейти на emacs, если можно ;)

Или тут почитай: lisp-lang.org/wiki/article/e…

Там есть пара плагинов и даже для Atom что-то. twitter.com/alexcleac_ua/s…

9:29
@backendsecret можно реальный пример кода? )

Без проблем:

github.com/40ants/hacrm/b… twitter.com/pavse/status/9…

9:50
@backendsecret Я нашёл только 32-битную сборку ClozureCL. 64-битной нету, или я плохо искал? :)

Используй Roswell для установки разных реализаций CL: github.com/roswell/roswell twitter.com/alexcleac_ua/s…

9:54
@backendsecret про достоинства лиспов и Common Lisp говорят часто, а расскажите о недостатках.

1. Крутая кривая обучения – поначалу сложно разобраться что и как.

10:55
@backendsecret про достоинства лиспов и Common Lisp говорят часто, а расскажите о недостатках.

10:58
@backendsecret Linux :)

На странице: ccl.clozure.com/download.html

> All versions include both 32- and 64-bit binaries (except for ARM, which is… twitter.com/i/web/status/9…

11:04
@backendsecret а без Emacs никак? Я не против, интересно просто есть ли альтернативы

Есть плагины для Vim и Atom: lisp-lang.org/wiki/article/e…
но я не знаю насколько они работоспособны. В Emacs просто всё… twitter.com/i/web/status/9…

11:06
@backendsecret а из нелисповых диалектов какие-нибудь функциональные альтернативы котируете?)

Не особо. Пока прокачиваю Common Lisp. Он, кстати, не особо функциональный. twitter.com/last_khajiit/s…

11:44
@backendsecret ок, если я хочу написать игрушку, почему мне стоит использовать Лисп а не Unity3d/Unreal?

Unity3d и Unreal это движки же? Попробуй arcadia-unity.github.io это Clojure интегрированная в Unity3D. Демки круты… twitter.com/i/web/status/9…

13:57
@backendsecret ок, если я хочу написать игрушку, почему мне стоит использовать Лисп а не Unity3d/Unreal?

Вот ещё статья (на русском) про разработку графики на Common Lisp и SDL2: habrahabr.ru/post/275651/ twitter.com/samspavel/stat…

14:07
@backendsecret ок, если я хочу написать игрушку, почему мне стоит использовать Лисп а не Unity3d/Unreal?

И вот есть русский товарищ, который делает игровой движок целиком на Common Lisp: github.com/borodust/cl-bo… twitter.com/samspavel/stat…

14:09
@backendsecret Думаю, что не о языке стоит говорить, а о подходе, декларативное программирование в отличие от императивного.

Ну, на Common Lisp можно и в императивном стиле писать и в функциональном и с использованием pattern-matching. twitter.com/sarman/status/…

14:51
@backendsecret мне нравится, что кармак твитнул про лисп twitter.com/id_aa_carmack/… оказывается Кармак хорош в лиспе

Он же совсем другое пишет – что “много дал бы за то, чтобы уметь кодить на лиспе, но нет времени”. twitter.com/sarman/status/…

14:53
@backendsecret Я ебанул в emacs полгода, жалею об этом, cursive вполне достаточно

А как же SLIME? twitter.com/sarman/status/…

14:54

# Среда 44 твита

@backendsecret Написал на CL систему управления для промышленных ускорителей электронов, движок правил для PostgreS… twitter.com/i/web/status/9…
7:34
@backendsecret ... но если нужен community вокруг проекта, то мимо. Идеальный язык для "ковбойской" разработки. Сид… twitter.com/i/web/status/9…

Да, поэтому надо стараться развивать библиотеки и инфраструктуру, чтобы коммюнити росло. Иначе эта проблема так и о… twitter.com/i/web/status/9…

7:36

Напомню, вчера мы обсуждали полезность разных диалектов Lisp и Common Lisp в частности, что будем делать дальше? Голосуем до 11:30.

7:39

А пока мы голосуем, вот в тему вчерашнего дня картинка с одного вайтборда в нашем офисе: pic.twitter.com/VNyG0L12bS

7:40

Каждое утро подобные надписи мистическим образом проступают на стене…

7:41
@backendsecret Зачем переходить на Emacs? Чем он удобнее или лучше? Проще ли в нем разобраться чем в Vim?

В Emacs просто интеграция с Common Lisp лучше сделана. Отладчик, инспектор объектов, и многое другое. Хотя может и… twitter.com/i/web/status/9…

7:49
@backendsecret Зачем переходить на Emacs? Чем он удобнее или лучше? Проще ли в нем разобраться чем в Vim?

Emacs и Vim реально разные. Но и то и другое надо настраивать и привыкать к ним, чтобы реально эффективно работать.… twitter.com/i/web/status/9…

7:50
@backendsecret Старался. Написал plexippus-xpath, часть CommonQt, контрибьютил в cl-async, чинил CCL на ARMе, сдела… twitter.com/i/web/status/9…

Бурного роста не будет. Надо улучшать в первую очередь инструменты, упрощающую жизнь новичкам. Расписывать всё по ш… twitter.com/i/web/status/9…

7:51
@backendsecret Старался. Написал plexippus-xpath, часть CommonQt, контрибьютил в cl-async, чинил CCL на ARMе, сдела… twitter.com/i/web/status/9…

Вот типичная история – чтобы загрузить локальный проект из asd, нужно сделать (push “./“ asdf:*central-registry*).… twitter.com/i/web/status/9…

7:52
@backendsecret а на emacs что-то наворачивать нужно, или прям из коробки? Слышал про spacemacs, который вроде удобнее

Spacemacs это комплект модулей, в том числе и Evilmode, который делает из Emacs подобие Vim. Не пробовал, только ви… twitter.com/i/web/status/9…

8:15
@backendsecret а на emacs что-то наворачивать нужно, или прям из коробки? Слышал про spacemacs, который вроде удобнее

Вот, посмотри видео, тут товарищ интересно рассказывает и показывает как у него Emacs настроен:… twitter.com/i/web/status/9…

8:17
@backendsecret Мне кажется, самая большая ошибка лисперов, особенно с небольшим опытом (менее 10 лет, хаха), это пр… twitter.com/i/web/status/9…

Я пока для себя не вижу причин с Python на Go перепрыгивать. Особенно учитывая то, что в больших компаниях не любят… twitter.com/i/web/status/9…

8:18
@backendsecret Мне кажется, самая большая ошибка лисперов, особенно с небольшим опытом (менее 10 лет, хаха), это пр… twitter.com/i/web/status/9…

А для себя, для фана – лучше уж Common Lisp. twitter.com/ivan4th/status…

8:19
@backendsecret Кстати, кто не знает, движок Google Flights написан на CL (разработка ITA, которых купил Гугл). Врем… twitter.com/i/web/status/9…
8:23

А где работаешь, если не секрет? twitter.com/ivan4th/status…

8:24

Возможно некоторые из вас согласятся, что для авторов opensource библиотек changelog это один из важных каналов общения с пользователями.

10:16
Возможно некоторые из вас согласятся, что для авторов opensource библиотек changelog это один из важных каналов общения с пользователями.

Не знаю как вы, но мне доставляет большой дискомфорт каждое обновление зависимостей. Часто приходится искать что же… twitter.com/i/web/status/9…

10:16
Не знаю как вы, но мне доставляет большой дискомфорт каждое обновление зависимостей. Часто приходится искать что же… twitter.com/i/web/status/9…

У каждой библиотеки changelog хранится в разном месте, кто-то вообще его не ведёт, и приходится читать коммит-месса… twitter.com/i/web/status/9…

10:16
У каждой библиотеки changelog хранится в разном месте, кто-то вообще его не ведёт, и приходится читать коммит-месса… twitter.com/i/web/status/9…

И вот, чтобы исправить ситуацию, несколько лет назад я начал side-project под названием allmychanges.com. twitter.com/backendsecret/…

10:17
И вот, чтобы исправить ситуацию, несколько лет назад я начал side-project под названием allmychanges.com. twitter.com/backendsecret/…

Allmychanges, это как Facebook, но для задротов, предпочитающих читать ченьджлоги вместо социального взаимодействия. twitter.com/backendsecret/…

10:17
Allmychanges, это как Facebook, но для задротов, предпочитающих читать ченьджлоги вместо социального взаимодействия. twitter.com/backendsecret/…

Работает он очень просто - кидаешь в него url репозитория, и сервис пытается найти и распарсить changelog. twitter.com/backendsecret/…

10:17

Дальше можно подписаться на обновления, и получать инфу о новых в версиях на email или в slack. Выглядит это так: pic.twitter.com/PbchchJFrG

10:17
Дальше можно подписаться на обновления, и получать инфу о новых в версиях на email или в slack. Выглядит это так: pic.twitter.com/PbchchJFrG

AllMyChanges умеет парсить файлы в разных форматах, понимает, если каждый релиз описан в отдельном файле, и даже из… twitter.com/i/web/status/9…

10:19
AllMyChanges умеет парсить файлы в разных форматах, понимает, если каждый релиз описан в отдельном файле, и даже из… twitter.com/i/web/status/9…

Правда в последний год, я заниматься им перестал, так как много сил уходит на поддержку, а помощи ни от кого не дож… twitter.com/i/web/status/9…

10:20
Правда в последний год, я заниматься им перестал, так как много сил уходит на поддержку, а помощи ни от кого не дож… twitter.com/i/web/status/9…

Больше всего меня мотивируют люди, которым проект оказался полезен. Пишите отзывы и багрепорты и кто знает, быть мо… twitter.com/i/web/status/9…

10:22

А вообще было бы интересно послушать, каким образом вы на своих проектах работаете с зависимостями. Фиксируете ли? Как часто обновляете?

10:23
@backendsecret Думаю, для больших это сложно. Особенно фронт. Вышел Реакт.16 и вся работа встала, пока не мигрируеш… twitter.com/i/web/status/9…

Ну вот как бы да. Мой сервис как раз и помогает тебе решить, стоит обновляться или нет – предоставляет инфу о новых… twitter.com/i/web/status/9…

10:50
@backendsecret Не фиксировал, обновляются сами, це опенсорс, мне пофиг. В продакшне, конечно, всё лежит вообще в би… twitter.com/i/web/status/9…

Бинарники всех зависимостей? В гите? twitter.com/strizhechenko/…

11:19
@backendsecret Фиксируем конечно. Апдейт зависимостей отдельная задача, если возникает необходимость.

А как определяете, что необходимость возникла? twitter.com/imdefined/stat…

11:21
@backendsecret А какая именно требуется помощь? Есть roadmap или что-то подобное?

Подобие роадмапа есть, но за этим лучше в личку. twitter.com/lambdaterm/sta…

11:32
@backendsecret А какая именно требуется помощь? Есть roadmap или что-то подобное?

Основная боль проекта – следить за правильностью урлов на исходники. Они иногда меняются и обновления ломаются. twitter.com/lambdaterm/sta…

11:33
Основная боль проекта – следить за правильностью урлов на исходники. Они иногда меняются и обновления ломаются. twitter.com/lambdaterm/sta…

Идея состоит в том, чтобы сделать удобный интерфейс и оповещение для мэйнтейнеров библиотек. Может геймификацию при… twitter.com/i/web/status/9…

11:34
@_bravit Пора заводить коллективный твиттер аккаунт @fpunderhood наряду с @backendsecret и @cssunderhood
11:37
@backendsecret С трудом :) Обычно когда нужны новые фичи из какой-то зависимости заодно подтягиваются и все остальные.

Можно попробовать настроить CI чтобы он раз в сутки обновлял все зависимости и прогонял тесты. Если ничего не слома… twitter.com/i/web/status/9…

11:38
@backendsecret Обновлять ради процесса обновления? Еще и unattended? Есть в этом что-то от русской рулетки.

Дело в том, что если обновлять раз в год, то одна нужная тебе зависимость потянет кучу других и сложно будет понять… twitter.com/i/web/status/9…

12:16
@backendsecret Ну это ведь не ответ на вопрос «зачем». Вот каково лично твоё «нафига»?

Об этом я писал раньше. С Vim на Emacs пересел исключительно ради лучшей среды для разработки на Common Lisp. twitter.com/bwh1te/status/…

12:18
@backendsecret Ну это ведь не ответ на вопрос «зачем». Вот каково лично твоё «нафига»?

Но помимо этого у Emacs есть еще штуки ради которых стоит на него пересесть:

1) один нормальный язык для расширени… twitter.com/i/web/status/9…

12:19
@backendsecret может вопрос не в кассу, ты все же по lisp знаток, но можешь подсказать чего почитать по такому зверю как Standart ML ?

Нет, такого не пробовал. twitter.com/galnikrom/stat…

12:45
@backendsecret Так ты пользуешься Emacs и в работе? Или нет?

Постоянно. Я вообще привык его на сервере запускать в текстовом режиме. Под tmux это очень удобно. twitter.com/alexcleac_ua/s…

12:46
@backendsecret можно плагины под него писать на коленке и в несколько строк на кложе!

На Clojure? Не слышал о таком. Покажи пример? twitter.com/niteashcollaps…

12:47
@axique Лол, да что ты споришь. Человек просто верит в мифы и легенды. @backendsecret

(with-sarkasm-mode
(princ “А как в них не верить, когда я сам легенда? ;-)”)) twitter.com/ctrlok/status/…

13:17
@galnikrom @backendsecret На Coursera есть отличный курс на котором используется Standard ML coursera.org/learn/programm…
13:48
@axel_user @backendsecret Artifactory, ясный пень.

Ну почему сразу “ясен пень”. Для Python проектов можно использовать PyPi proxy – github.com/jazzband/local… он закэшир… twitter.com/i/web/status/9…

14:23
@backendsecret Потому что это была шутка, ну

В каждой шутке лишь доля шутки. twitter.com/vkozulya/statu…

14:53

# Четверг 86 твитов

@backendsecret changelog’и - первая боль опенсорса, отсутствие понятного роадмапа - вторя

Кстати, для решения первой боли есть проект keepachangelog.com который пропагандирует правильное ведение Chang… twitter.com/i/web/status/9…

6:35
@backendsecret Я не понимаю смысла всё равно. Есть releases на github, коммиты пишутся для людей, в чём беда-то? Ил… twitter.com/i/web/status/9…

Коммиты пишутся для людей, который потом будут читать git blame. А changelog – для людей которые завясят от твоей л… twitter.com/i/web/status/9…

6:45
@backendsecret Хотя, я лжец и редко оглядываюсь посмотреть на сотворенное. pic.twitter.com/4Xj8j5FB6r

Вот кстати, Allmychanges, про который вчера рассказывал, умеет коммиты группировать по версиям, если ты делаешь sem… twitter.com/i/web/status/9…

7:04

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

10:27

В первую очередь, отмечу, что Lisp особенно хорош там, где задача слабо специфицирована и всё меняется на ходу. В стартапах например.

10:27

Процесс разработки устроен так, что ты постоянно подключен к работающей программе и меняешь её на ходу видя результат в realtime.

10:27

Достигается это за счёт того, что в процесс встраивается серверная часть которая слушает команды SWANK. И к ней подключается Emacs.

10:27

Со SWANK может работать не только Emacs, но и любой другой редактор, например Vim, Atom или что-то ещё. Если есть плагин конечно.

10:27

Но одного SWANK мало, в самом языке почти всё сделано с прицелом на быструю итеративную разработку. Но об этом чуть позже.

10:28
@krems5 У меня был опыт создания проектов с нуля в Яндексе. Не совсем стартапы, но условия те же – мало что понятно на входе и есть дедлайн.

Бывает, что если бы была возможность поэкспериментировать на QA в условиях приближенных к боевым, то проблема решал… twitter.com/i/web/status/9…

11:01
@backendsecret И что, интересно, на LISP-е можно сделать полезного?

Вчера @ivan4th писал, что разрабатывал софт для управление ускорителем электронных частиц. Промышленный. Это достат… twitter.com/i/web/status/9…

11:03
@backendsecret И что, интересно, на LISP-е можно сделать полезного?

AutoCAD можно сделать, или продвинутый текстовый редактор, типа Emacs. Это достаточно полезно? twitter.com/murcielagocat/…

11:04
@backendsecret И что, интересно, на LISP-е можно сделать полезного?

Opensource, self-hosted клон Slack:

github.com/cicakhq/potato

Это достаточно полезно? twitter.com/murcielagocat/…

11:07
@backendsecret И давно Автокад на лисп переписали?

Он всегда такой был. Только там не Common Lisp а свой диалект – AutoLisp. twitter.com/theaspect/stat…

11:10
@backendsecret Не достаточно. Какие есть data storage на лиспе, какие быстрые json-парсеры, gui? Как насчет обработ… twitter.com/i/web/status/9…

Посмотри тут: codys.club/awesome-cl/

Есть ещё по Machine Learning крутой модуль – clml, но там в списке его не не… twitter.com/i/web/status/9…

11:12
@hrdc0re @backendsecret Один из встроенных скриптовых языков != Написали на языке

Мы не знаем какая часть функционала там на лиспе. В Emacs тоже часть на C, но почти весь функционал редактора – на… twitter.com/i/web/status/9…

11:13
@backendsecret а я как-то на дельфи чатик написал

Молодцом! twitter.com/winnukem/statu…

11:13
@backendsecret Эм.. с клиентом для Emacs?
Яаасненько...

Вебный клиент там тоже есть – на ClojureScript. twitter.com/murcielagocat/…

11:22
@backendsecret @ivan4th Зависит от. Если этот софт на 3/4 состоит из вычислений какого-нибудь адского ада, то да, н… twitter.com/i/web/status/9…

А не надо стремиться всё на Lisp от и до. У большинства реализаций удобный FFI что позволяет любую бинарную либу по… twitter.com/i/web/status/9…

11:33
@mtreskin @backendsecret Он должен быть с нормальной системой абстракций и неплохо расширяем - см ASP .NET MVC.
А… twitter.com/i/web/status/9…

Шаблонизаторов для него море понаписано, и django-style, и moustache, и closure-template, и просто из лисп синтакси… twitter.com/i/web/status/9…

11:35
@backendsecret Шаблоны строго типизированные или как handlebars/moustache - пока в доку не посмотришь - не вспомниш… twitter.com/i/web/status/9…

Что значит “строго типизированные” шаблоны? twitter.com/murcielagocat/…

13:10
@vitalypavlenko О, это похоже на то, что на этой неделе обсуждает @backendsecret

Да, но только AllMyChanges ещё и описания релизов шлёт. Впрочем, мой сервис не единственный, но все что я знаю – не… twitter.com/i/web/status/9…

13:11
Да, но только AllMyChanges ещё и описания релизов шлёт. Впрочем, мой сервис не единственный, но все что я знаю – не… twitter.com/i/web/status/9…

VersionEye вот вообще закрывается. А хороший был сервис. twitter.com/backendsecret/…

13:12
@backendsecret если в Яндексе все так же, как в одной другой крупной компании, то ты должен понимать, что прототип… twitter.com/i/web/status/9…

Да, но на начальной стадии важно этот самый продукт выпустить как можно быстрее. Это требование от размера компании… twitter.com/i/web/status/9…

13:55
@backendsecret насколько будет применим лисп на стадии продукта?
не надо ли выбросить прототип и писать все заново на другом языке?

Если у разработчиков есть дисциплина и код написан нормально, то выбрасывать не придётся. Как и в любом другом язык… twitter.com/i/web/status/9…

13:56
@backendsecret насколько будет применим лисп на стадии продукта?
не надо ли выбросить прототип и писать все заново на другом языке?

Более того, Common Lisp позволяет оптимизировать код на уровне отдельных функций, с помощью хинтов для компилятора.… twitter.com/i/web/status/9…

13:57
@backendsecret @MurcielagoCat кстати, а что у CommonLisp с компиляцией в JS? Можно ли пилить фронтенды на нем?

Можно. Есть Parenscript: common-lisp.net/project/parens… я его использую.
А есть CLJS: github.com/jscl-project/j… twitter.com/last_khajiit/s…

14:45

В Common Lisp есть такое понятие, как Package. В других языках это модули и неймспейсы. В Lisp они заточены под работу с repl.

14:45
В Common Lisp есть такое понятие, как Package. В других языках это модули и неймспейсы. В Lisp они заточены под работу с repl.

Пакеты можно создавать прямо из репл, делать активным нужный пакет, добавлять и удалять функции на лету. twitter.com/backendsecret/…

14:46
Пакеты можно создавать прямо из репл, делать активным нужный пакет, добавлять и удалять функции на лету. twitter.com/backendsecret/…

У пакетов могут быть синонимы, для облегчения тайпинга, но главное не это, а то, что… twitter.com/backendsecret/…

14:46
У пакетов могут быть синонимы, для облегчения тайпинга, но главное не это, а то, что… twitter.com/backendsecret/…

…когда функция, проимпортированная из пакета, меняется, то она меняется везде, а не как в Python. twitter.com/backendsecret/…

14:46
…когда функция, проимпортированная из пакета, меняется, то она меняется везде, а не как в Python. twitter.com/backendsecret/…

Это удобно в при интерактивной разработке. И в тестировании - когда надо функцию замокать делаешь это в одном месте… twitter.com/i/web/status/9…

14:46
@backendsecret а почему был выбран CLJS, а не Parenscript? Есть какие-то преимущества или это вопрос личных предпочтений?

Я как раз Parenscript использую, потому что его проще генерить на бэкенде, использующем другую реализацию CL. twitter.com/last_khajiit/s…

16:00
@backendsecret а почему был выбран CLJS, а не Parenscript? Есть какие-то преимущества или это вопрос личных предпочтений?

Вот примеры из реального проекта, который сейчас пилю:

Генерация JS
gist.github.com/svetlyak40wt/9…

Генерация CSS:… twitter.com/i/web/status/9…

16:05

Но там на JavaScript минимум кода, и вся логика реализована на бэкенде. Приложение statefull, использует Weblocks.

16:06
@backendsecret Интересная фича CL, не знал. P.S. пишите пожалуйста лесенкой отвечая себе, а не ретвитя

Хорошо.

Думаю, я позже на Medium сделаю серию постов про такие штуки. Твиттер всё-таки не подходящее место для дли… twitter.com/i/web/status/9…

16:08
@backendsecret Там всё end-to-end сделано на лиспе, кроме прошивок микроконтроллеров (в которых логики не очень мно… twitter.com/i/web/status/9…
18:06
@backendsecret Согласен. В идеале changelog — это описание проблемы и решения. Если проект ведется хорошо, то всё м… twitter.com/i/web/status/9…
18:08
@backendsecret с чего начать лиспить если уже пищешь на лиспе для бедных (ruby)?

Расскажи поконкретнее в чем затруднения испытываешь? Непонятно с тулингом? Или неясно что за проектик сделать для н… twitter.com/i/web/status/9…

18:10
О чём вам расскажут CL джихаддисты: в кл есть ПАКЕТЫ
О чём не расскажут: в кл нету нормальной сборки проектов, а AS… twitter.com/i/web/status/9…

Так давай, расскажи чем там пользоваться невозможно? Поконкретнее. twitter.com/dkzdesu/status…

18:24
@backendsecret не говоря уже о том что по ASDF нет нормальной базы знаний, и завести его на рабочей машине занимает… twitter.com/i/web/status/9…

Про windows не могу ничего сказать, только в Linux и OSX работаю.

Чтобы CL запускать, нынче лучше всего использова… twitter.com/i/web/status/9…

18:32
@backendsecret ASDF? Почему для того, чтобы система подхватилась нужно на каждой рабочей машине проект либо держать… twitter.com/i/web/status/9…

Если для запуска CL используешь Roswell. Он сам для asdf путь настроит. А ещё ros build удобен чтобы бинарники соби… twitter.com/i/web/status/9…

18:33
@backendsecret не говоря уже о том что по ASDF нет нормальной базы знаний, и завести его на рабочей машине занимает… twitter.com/i/web/status/9…

То что “нет базы знаний” – полный бред. Есть подробнейший мануал:

common-lisp.net/project/asdf/a… twitter.com/dkzdesu/status…

18:34
@ivan4th @backendsecret Камон на каждый закачанный реп из гита конфиг править, очень удобно и по-программистки.

А не надо из гита руками качать. Используй Qlot, он за тебя всё сделает:

github.com/fukamachi/qlot twitter.com/dkzdesu/status…

18:35
@backendsecret Но если даже это можно было терпеть, то swank
вообще клёво работает если версия sbcl несовместима… twitter.com/i/web/status/9…

Уверен, ты бы сделал лучше. Но почему-то не сделал. Почему, кстати? twitter.com/dkzdesu/status…

18:36
@dkzdesu @backendsecret (:tree "/home/.../devlibs") и далее всё что хочу кладу в ~/devlibs. Не надо ничего править под каждую репу

Вообще, достаточно просто в ~/common-lisp/ класть, эта директория поддерживается по-умолчанию. Но лучше всё-таки Ql… twitter.com/i/web/status/9…

18:47
@backendsecret Сделал что? Вывел ошибочку о том, что у вас, дескать, бекенд сванка несовместим с сбцл?

Сделал свой swank с блэкджеком и обратной совместимостью. twitter.com/dkzdesu/status…

18:48

Пока не подтянулись другие хейтеры, продолжим. Ещё одной крутой фичей некоторых Lisp реализаций, является перезапуск функций ниже по стеку.

18:48

Представьте, вы кодите свой сервис, он бежит в бёкграунде и тут вдруг где-то при обработке запроса возникает исключение.

18:48

Emacs конечно показывает stack trace, где можно поинспектить содержимое каждого фрейма или сделать eval внутри фрейма.

18:48

Но есть в дебаггере пара интересных вещей.

18:49

Во-первых, можно нажать комбинацию клавиш, и скопировать значение объекта из любого фрейма прямо в repl, чтобы там его поисследовать.

18:49

Во-вторых, можно найдя ошибку, поправить её, скомпилировать исправленную функцию и перезапустить выполнение фрема ниже по стеку.

18:49

Благодаря этому, ваш сервис вернёт не HTTP 500, а 200 и правильный ответ.

18:49

Примерно так, наверное, патчили код аппарата Вояджер, когда в нем случился сбой где-то на границе солнечной системы :)

18:50

Очень хорошо эта фича проиллюстрирована вот в этой статье:

malisper.me/debugging-lisp…

18:51
@backendsecret «Привет, да у нас инструменты неудобные, но виноват всё равно ты, потому что несделал» Ясно.

Это opensource. Делай pull-request, и не ной. twitter.com/dkzdesu/status…

18:56
Охуительная позиция.
Не работает? А чё ты сам то не сделал? twitter.com/backendsecret/…

Это opensource, никто тебе ничего не должен. Видишь что где-то неправильно – поправь или хотя бы issue заведи. twitter.com/ccherya/status…

19:00
@backendsecret Непонятно, с чего начать. У меня есть петпрожект (который, впрочем, используется в продакшен). С чуж… twitter.com/i/web/status/9…

Интерфейс это библиотека для работы с тем HTTP сервисом, GUI? Command line утилита? twitter.com/ponitozhekoni/…

19:02
@backendsecret библиотека

Тогда тебе помогут либы dexador – ходить по HTTP и jonathan – быстрый и удобный парсер JSON.

Ищи либы на… twitter.com/i/web/status/9…

19:11
@backendsecret библиотека

Сейчас для тебя демку запишу :) twitter.com/ponitozhekoni/…

19:14
@backendsecret Заранее спасибо

Вот демка того, как работать с HTTP API гитхаба. Показывает как ставить либы и инспектор объектов.… twitter.com/i/web/status/9…

19:24
@backendsecret Но в нём нет никакой "бытовухи". Логи? Конфиги?

Не понял вопроса. Разверни мысль :) twitter.com/ponitozhekoni/…

19:25
@backendsecret @svetlyak40wt слушай ты так интересно рассказываешь про CL, что я подумал,а как тебе предложение записать про это подкаст? ;)

У меня уже много лет как сломался Rode Podcaster :)

Можно записать, а что, ты подкаст ведёшь? twitter.com/ksdaemon/statu…

19:33
@backendsecret IDE не выглядит хорошо

Это не IDE, это Emacs. Да ещё и в REPL режиме, когда он скобки автоматически не расставляет. Обычно я функции в rep… twitter.com/i/web/status/9…

19:50
@backendsecret Эмакс не выглядит хорошо. В идее есть плагин?

Зато работает хорошо. На счёт Идеи – не в курсе. Лучшее что у них может быть это авторасстановка скобок в Lisp-like… twitter.com/i/web/status/9…

20:13
@backendsecret Пользовались мы на работе одной open source key-value базой. Ну так на нее завязались, что отыскали… twitter.com/i/web/status/9…

Наверное поэтому у данного проекта 1054 форка? :) twitter.com/randomazer/sta…

20:32
@backendsecret Но все таки стоит признать, что отсутствие ide о чем то, даних должо говорить, нет?

Что такое IDE? В Emacs есть всё что нужно. Целью ролика не было подемить все возможности. twitter.com/skyryl/status/…

20:40
@backendsecret Но все таки стоит признать, что отсутствие ide о чем то, даних должо говорить, нет?

IDE не отсутствуют, они есть в коммерческих реализациях AllegroCL и LispWorks. Хочешь – покупай и пользуйся. Но ден… twitter.com/i/web/status/9…

20:41
@backendsecret Проблема Emacs в том что там надо долго и упорно всё затачивать под свои руки, а потом допиливать пл… twitter.com/i/web/status/9…

Лично мне не нужно “отдельное IDE для Lisp”, “другое IDE для Python” и ещё “IDE для bash”. Есть Emacs и он работает… twitter.com/i/web/status/9…

21:05
@backendsecret Проблема Emacs в том что там надо долго и упорно всё затачивать под свои руки, а потом допиливать пл… twitter.com/i/web/status/9…

Если человек собирается зарабатывать на жизнь кодом и ленится потратить пару дней на то, чтобы остаток жизни удобно… twitter.com/i/web/status/9…

21:09
@backendsecret Кроме текстового редактора, или как правильно звучить цитата? Если хорошая удобная программа, почему… twitter.com/i/web/status/9…

Откуда такие выводы. Мне вот почему-то кажется что пользователей Emacs в мире больше чем пользователей любой отдель… twitter.com/i/web/status/9…

21:36

Жаль что статистики у нас нет.

21:36
@ponitozhekoni @backendsecret Для CL плагина нету (он был но для 6й версии). Есть плагин для Clojure -> Cursive. Ес… twitter.com/i/web/status/9…

А что тот плагин “в 6 версии” умел делать кроме подсветки синтаксиса? twitter.com/muhango/status…

21:37
Заслуга @backendsecret этой недели -- захотел снова освоить LISP и снова попробовать emacs. Нуёмаё.

Если что, обращайся. Всегда буду рад помочь.
@svetlyak40wt twitter.com/felixthebest/s…

21:39
@backendsecret Уф… хорошо иметь возможность деплоить код. Полагаться на типизацию и тесты, а не сидеть дебажить продакшн :)

Ничто ж не мешает – пиши тесты, указывай типы, деплой. Всё это есть. Проверка типов, если надо тоже есть:… twitter.com/i/web/status/9…

21:55
@backendsecret Уф… хорошо иметь возможность деплоить код. Полагаться на типизацию и тесты, а не сидеть дебажить продакшн :)

Тесты писать лучше вот с этой либой: 40ants.com/cl-hamcrest/ twitter.com/stasartemkin/s…

21:57
@backendsecret Уф… хорошо иметь возможность деплоить код. Полагаться на типизацию и тесты, а не сидеть дебажить продакшн :)

Библиотечка 40ants.com/cl-hamcrest/ кстати, хороший пример того, что можно делать нормальную доку и для Lisp либы. twitter.com/stasartemkin/s…

21:58
@backendsecret Кстати, когда-то давно я сделал swank backend для JS (заодно чтобы попробовать ноду, которая мне, вп… twitter.com/i/web/status/9…

Видел в репозитории. Так проект сейчас уже на заработает? twitter.com/ivan4th/status…

21:59
@backendsecret а можете про метапрограммирование рассказать, реально ли киллер фича в лиспе, или щас везде такое есть?

А что ты подразумеваешь под метапрограммированием? Генерацию кода через макросы или модификацию классов объектов че… twitter.com/i/web/status/9…

22:02
@backendsecret И за год, то есть на 2017 популярність упала на 20% - с 5.2% до 4.2%.

У них странная какая-то статистика. Перекос в сторону вебразработки и джаваскриптизеров, и вдруг Visual Studio – на… twitter.com/i/web/status/9…

22:06
@backendsecret И за год, то есть на 2017 популярність упала на 20% - с 5.2% до 4.2%.

Не вижу смысла спорить. Недавно вон было – миллионы нацистов выбрали Гитлера и пошли за ним. И чем всё закончилось?… twitter.com/i/web/status/9…

22:14
@backendsecret ну про пару дней вы немного утрируете

Пара дней уйдёт на то, чтобы разобраться как что настраивается и нагуглить на GitHub годные куски конфига. А дальше… twitter.com/i/web/status/9…

22:33
@backendsecret да и про, и про другое было бы интересно. Я просто много слышал, что самое сильное метапрограммирова… twitter.com/i/web/status/9…

Эту тему сложно в твиты уместить. Я подыщу ссылки на демки и разные источники. Хотя до Meta Object Protocol сам пок… twitter.com/i/web/status/9…

22:35
@backendsecret За счет бесплатной ide и растущей популярности dotnet core, например. Да и реакт приложения хорошо пишутся в vs.

Интересно. Не знал. Я Visual Studio перестал пользоваться в 2005 и примерно тогда же полностью пересел на Vim. twitter.com/russianlagman/…

22:36
@backendsecret Базовый paredit + repl.

В таком виде этот плагин даже отдалённо до возможностей Emacs + Slime не дотягивал. Правильно что его выпилили. twitter.com/muhango/status…

22:37

# Пятница 49 твитов

Кстати, ещё немного про Changelog. У меня в команде принято, что каждый пулл должен содержать описание изменений для ChangeLog.

4:15

Но чтобы при правке одного файла в разных пулл-реквестах не возникали конфликты, мы создаём крохотные файлики в поддиректории changelog.d.

4:16

При сборке релиза, кусочки из changelog.d добавляются в общий ChangeLog.rst, а сверху них дописыватся номер релиза.

4:16

ChangeLog.rst рендерится в финальный HTML с помощью библиотечки releases. И уже его видят смежные команды, которым важны изменения.

4:16

Вот вам кусочек секретного ChangeLog (это же @backendsecret, в конце то концов!), чтобы понять как это в итоге выгл… twitter.com/i/web/status/9…

4:16

А вот и сама библиотечка releases:

releases.readthedocs.io

4:17
@backendsecret Можно по старинке одежду стирать на доске на речке и лучину жечь по вечерам у окна из бычьего пузыря… twitter.com/i/web/status/9…

Хорошие были времена. Детей можно было розгами пороть и никто бы тебе и слова не сказал :) twitter.com/russianlagman/…

4:46
@backendsecret Моя "пара дней" растянулась на куда больший период. А можно следующий ведущий будет про EMACS примен… twitter.com/i/web/status/9…

А чего там про Emacs и Python рассказывать, поставил elpy, nose, yasnippet и вперёд. Вот пример моих конфигов:… twitter.com/i/web/status/9…

5:44
@Muhango @backendsecret Я юзаю #spacemacs с evil-mode(vim). Все устраивает на 100%. Правда, юзают для ruby. Мне каж… twitter.com/i/web/status/9…
5:45
@Muhango @backendsecret Я юзаю #spacemacs с evil-mode(vim). Все устраивает на 100%. Правда, юзают для ruby. Мне каж… twitter.com/i/web/status/9…

А тудушечки в org-mode держишь? twitter.com/maxborisov/sta…

5:45
@russianlagman @backendsecret Alan Kay тут недавно выразил мысль, что инструменты разработчика тоже проходят естест… twitter.com/i/web/status/9…
7:24
@ponitozhekoni @backendsecret логи – sites.google.com/site/sabraonth… / конфиги – не знаю, но частый паттерн – *глобальные-п… twitter.com/i/web/status/9…

Я для логов использую log4cl. Очень гибко настраивается, есть интеграция с Emacs и можно уровнем логгирования даже… twitter.com/i/web/status/9…

7:28
@ponitozhekoni @backendsecret логи – sites.google.com/site/sabraonth… / конфиги – не знаю, но частый паттерн – *глобальные-п… twitter.com/i/web/status/9…

Для конфигов да – uiop:getenv. Для более продвинутых – Ubiquitos:

quickdocs.org/ubiquitous/ twitter.com/sudodoki/statu…

7:30
@backendsecret не видел, упоминал ли ты gigamonkeys.com/book/ – возможно, не самый глубокий труд по CLOS, emacs,… twitter.com/i/web/status/9…

Да, Practical Common Lisp отличная книга. Легко читается, и бесплатно доступна online. Всегда её рекомендую. А пото… twitter.com/i/web/status/9…

7:31
@backendsecret пробовал ли abcl и можешь сравнить уровень с clojure по уровню интеропа с джавой?

Нет, ABCL не пробовал, мне с Java не приходится иметь дело пока. twitter.com/sudodoki/statu…

7:32
@backendsecret считаешь ли ты вопросы поиска решений в существующей экосистеме / повышенному порогу входа (потому ч… twitter.com/i/web/status/9…

Конечно! Надо развивать quicklisp, quickdocs, roswell, qlot, cl-project. Писать статьи для начинающих, улучшать док… twitter.com/i/web/status/9…

7:37
@backendsecret считаешь ли ты вопросы поиска решений в существующей экосистеме / повышенному порогу входа (потому ч… twitter.com/i/web/status/9…

А либы бесхозные форкать в организации типа:

github.com/sharplispers
github.com/40ants

чтобы у них было бол… twitter.com/i/web/status/9…

7:38
@backendsecret считаешь ли ты вопросы поиска решений в существующей экосистеме / повышенному порогу входа (потому ч… twitter.com/i/web/status/9…

Прямо сейчас я реставрирую фреймворк Weblocks, делая его более понятным, структурированым и документированным. twitter.com/sudodoki/statu…

7:39
@backendsecret считаешь ли ты вопросы поиска решений в существующей экосистеме / повышенному порогу входа (потому ч… twitter.com/i/web/status/9…

Присоединяйся к github.com/40ants будем улучшать мир вместе. twitter.com/sudodoki/statu…

7:39
@backendsecret а кто в твиттерке поднимает интересные CL темы?

В основном японцы пишут. Я регулярно просто по “Common Lisp” твиты ищу. twitter.com/sudodoki/statu…

7:40
@backendsecret блин, не знал про sharplispers / 40ants, но в квиклисп они ведь не имеют права паблишить, все самому руками тащить?

Каждый может свой quicklisp репозиторий поднять. Только это нетривиально. И паблиши туда хоть по 10 раз на дню. twitter.com/sudodoki/statu…

7:43
Каждый может свой quicklisp репозиторий поднять. Только это нетривиально. И паблиши туда хоть по 10 раз на дню. twitter.com/sudodoki/statu…

Я собираюсь для Weblocks сделать отдельный quicklisp dist. Задокументирую процесс, чтобы дальше делать это было пр… twitter.com/i/web/status/9…

7:44

Например отдельный quicklisp репозиторий есть у вебфреймворка Radiance:

shirakumo.github.io/radiance/

7:47
В свою текущую компанию ищу нодистов, php(laravel), фронт(реакт+reactnative и vue), девопса. СПб, пока Старая дерев… twitter.com/i/web/status/9…
10:29
@Tantir @backendsecret Год назад перебрался с idea на Vim. До сих пор понемногу дописываю vimrc. Исходники плагинов… twitter.com/i/web/status/9…
11:02
@ivan4th @roman01la @russianlagman @backendsecret можно ссылку на оригинал

Возможно он имел в виду вот это (весьма интересное) интервью:

fastcompany.com/40435064/what-…

Раздел “How Stupid Is It, V… twitter.com/i/web/status/9…

12:41

Вчера я рассказал про то, почему в Common Lisp удобна устроена отладка кода, а сегодня давайте ещё немного поговорим про клёвые фишки Лиспа.

16:30

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

16:30

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

16:30

Common Lisp предоставляет куда более продвинутые инструменты помимо традиционных try/catch.

16:30

Аналог исключений в CL называется signal. Сигналы можно сигналить и перехватывать по аналогии с try/catch.

16:30

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

16:30

При этом на разных уровнях стека вызовов могут быть определены "рестарты" - варианты поведения в том или ином случае.

16:30

IDE Emacs знает про рестарты, и если исключение не обработано явно, показывает меню с разными вариантами действий.

16:31

К примеру так устроен механизм компиляции Lisp исходников.

16:31

Если что-то пошло не так, он спрашивает: Попробовать снова? Проигнорировать? Прервать всё операцию?

16:31

А если Lisp встречает вызов функции (foo:blah), а её нет, но есть (bar:blah), он такой: "Может попробуем вызвать (bar:blah)?

16:31

Это как интерактивное кино, где герою предлагают выбор - спасать любимую или автобус с детишками, падающий в пропасть, и шоу продолжается.

16:31

Я так вдохновился этой идеей, что даже попробовал воспроизвести её для Python:

python-cl-conditions.readthedocs.io/en/latest/

Но получилось не так красиво.

16:31

Десятком твитов не описать всю красоту такого подхода, рекомендую почитать эту главу книги Practical Common Lisp:
gigamonkeys.com/book/beyond-ex…

16:32
@russianlagman @ivan4th @backendsecret А вот разработчики IDE зачастую забывают что в первую очередь нужно обеспечи… twitter.com/i/web/status/9…
17:04
@skyryl @backendsecret потому как также как кары формулы 1 и суперкары не нужны большинству водителей. Их устраивае… twitter.com/i/web/status/9…
17:06
@backendsecret Достаточно просто делается с помощью github.com/orivej/quickdi… есть в @quicklisp
Я правда форкнул, чт… twitter.com/i/web/status/9…

Спасибо. Попробую. А где у тебя dist? twitter.com/borodust/statu…

17:09
@almalexey @backendsecret @russianlagman @ivan4th Скорее соглашусь, сам сидел лет пять на InteliJ. Но впоследствии… twitter.com/i/web/status/9…
17:12
@iLemming @backendsecret @russianlagman @ivan4th "Нормальная работа с текстом" - это "выучи эти 40 нелогичных сочет… twitter.com/i/web/status/9…

Нет. Например вот это:

youtube.com/watch?v=EQAd41… twitter.com/winnukem/statu…

17:35
@winnukem @iLemming @backendsecret @russianlagman @ivan4th Посмотри на spacemacs.org Там логичнее сочетан… twitter.com/i/web/status/9…

Не надо spacemacs. Лучше пусть люди смотрят youtube.com/watch?v=p6K4iI… и учатся использовать тот редактор, который хот… twitter.com/i/web/status/9…

17:37
@develop7 @backendsecret @russianlagman @ivan4th да любых. я прошёл через VisualStudio, Ecllipse, Netbeans, Intelli… twitter.com/i/web/status/9…
17:45
@atomic_dreamer @russianlagman @ivan4th @backendsecret директории переименовывать регексом. indirect buffers создав… twitter.com/i/web/status/9…

Малая часть, я бы сказал. twitter.com/ilemming/statu…

19:13

Лан, народ, что-то вы зафлеймили совсем. Давайте поставим точку.

Emacs круче всех, Vim тоже молодец. Специальные IDE подтянутся.

19:19

# Суббота 51 твит

@ivan4th @cadet354 @iLemming @redmoonstudio @backendsecret А зачем пытаться использовать редактор, когда требуется ide?

Отвали. Emacs это IDE. В нём всё Iнтегрировано посредством elisp. В нём можно Dевелопить. И это всем средам Eреда.… twitter.com/i/web/status/9…

11:01
@cadet354 @russianlagman @iLemming @redmoonstudio @backendsecret Если у вас никогда не возникает желания исправить… twitter.com/i/web/status/9…
11:36
@backendsecret Все никак не поробую. Я разными todo листами пользовался до перехода на #spacemacs, там все и держу по-старинке.

Попробуй. org-mode довольно удобен и как TODO и просто как outliner, чтобы иерархические заметки держать. twitter.com/maxborisov/sta…

12:15
@backendsecret прикрепи голосование, что бы было наглядно видно, на сколько аудитории интересно то, что ты пишешь и… twitter.com/i/web/status/9…

Значит я не для тебя пишу. Не интересно – не читай, потерпи ещё два дня. Ради чего флеймить, я не понимаю. Одни тро… twitter.com/i/web/status/9…

12:18

Вчера я писал про уникальную систему исключений в Common Lisp, и немного напутал в терминах, назвав condition - сигналом.

12:20

Но никто меня не поправил а вместо этого развязали бессмыссленный флейм про IDE/не-IDE. Давайте сегодняшний день проведём с пользой?

12:20

Сегодня я хочу привлечь ваше внимание к возможностям ООП, которые предоставляет Common Lisp, и поговорить про CLOS.

12:21

Не сказал бы что я в CLOS большой специалист, просто хочу осветить некоторые его особенности.

12:21

CLOS расшифровывается, как Common Lisp Object System и предоставляет возможность описывать классы и применимые к ним методы.

12:21

Итак, что же там есть? Множественное наследование, дженерики, мультиметоды с разными способами комбинации.

12:21

Все части CLOS, включая атрибуты классов, могут иметь докстринги, что добавляет +100500 к поддерживаемости кода.

12:22

Методы в CLOS определяются отдельно от классов. Это позволяет изменять поведение библиотеки не влезая в её код.

12:22

А так же это означает то, что сами методы не привязаны к конкретной иерархии классов.

12:22

Например, в стандартной библиотеке CL есть метод print-object, который принимает два аргумента - объект и стрим.

12:22

Объект может быть любого типа, его не обязательно наследовать от родительского класса, определяющего протокол Printable.

12:22

Так как print-object принимает два аргумента, а Common Lisp поддерживает мультиметоды, то можно переопределить его для обоих аргументов.

12:23

К примеру, можно сделать один вариант print-object для stdout, и он будет выводить объект в человеко-читаемом виде.

12:23

И можно определить вариант print-object для файлового стрима, и он будет сериализовать объект в json.

12:23

При этом определить print-object можно и для классов из чужой библиотеки, не меняя её исходников.

12:23

Круто так же то, что методы можно определить не только для классов, но даже для конкретных инстансов объектов.

12:23

Раньше я писал, что в Common Lisp очень много заточено на быструю итеративную разработку. И CLOS - не исключение.

12:24

К примеру, CLOS автоматически обновляет в памяти все инстансы класса когда вы меняете описание этого класса.

12:24

Когда инстанс меняется, есть возможность выполнить миграцию данных. За счёт этого можно реализовать hot-reload без остановки программы.

12:24

Можно даже на лету менять у класса его родителя или у конкретного объекта менять его класс.

12:24

Зачем это может быть нужно, прекрасно проиллюстрировано в этой статье:
snellman.net/blog/archive/2…

12:24

А есть ведь ещё и метаклассы - MOP, про которые я вам ничего не расскажу, потому что сам мало что знаю.

12:25

В общем, про CLOS стоит почитать этот туториал: cl-cookbook.sourceforge.net/clos-tutorial/

12:25

А для более глубокого изучения - книгу "A Programmer's Guide to CLOS" (Sonya E. Keene), отсюда nozdr.ru/biblio/kolxo3/…

12:26
@ivan4th @cadet354 @iLemming @redmoonstudio @backendsecret Ты не понимаешь сути. Нет задачи делать чпу. Есть задача… twitter.com/i/web/status/9…

Это ты не понимаешь сути. Есть если задача – зарабатывать деньги, то делать ЧПУ выгоднее чем крафтить детальки на о… twitter.com/i/web/status/9…

12:31
@antgubarev @backendsecret @russianlagman @ivan4th Я то ладно буду утверждать (есть многолетний опыт работы с разли… twitter.com/i/web/status/9…

Давай перестанем кормить этих троллей? twitter.com/ilemming/statu…

12:32
@backendsecret Можешь рассказать про свой сетап/воркфлоу в оргмоде?

Конечно. Во-первых, вот конфига кусок про это: github.com/svetlyak40wt/d… twitter.com/kindnordiccat/…

12:57
@backendsecret Можешь рассказать про свой сетап/воркфлоу в оргмоде?

Во-вторых, общий подход такой. Есть директория с кучей org файлов. Иерархия папок задаёт разделы. Типа life, work,… twitter.com/i/web/status/9…

12:58

Внутри каждой папки могут быть подпапки. Так, в life живут dom, children, auto, travel,…

12:59

В любой папке может быть файл todo.org. Тогда emacs его сам найдёт и будет использовать для построения Agenda на день.

12:59

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

13:00

На самом верхнем уровне есть файл inbox.org, куда автоматически подтягиваются айтемы из RSS.

13:01

Кусок конфига для подтягивания RSS:

github.com/svetlyak40wt/d…

13:01

Сам RSS формируется через IFTTT.com, из писем отправленных на специальный ящик, полайканных твитов и так далее.

13:02

Содержимое inbox.org надо периодически разгребать и раскладывать по todo.org или notes.org.

13:03

Такой вот setup :)

13:03

А нет, напутал, это раньше у меня с IFTTT.com фид подтягивался. А теперь он локально формируется с помощью Processor.

13:04

Processor, это мой небольшой проектик – локальная замена IFTTT, которую можно скриптовать на Python:

github.com/svetlyak40wt/p…

13:05

Да, и вот содержимое ~/.org-feed:

(setq org-inbox-rss-feed "file:/Users/art/projects/processor-tasks/rss-feed.xml")

13:06

А скрипт для python-processor выглядит примерно так:

gist.github.com/svetlyak40wt/4…

13:09
@russianlagman @cadet354 @iLemming @redmoonstudio @backendsecret Суть в том, что аналогия с токарем не очень коррек… twitter.com/i/web/status/9…
13:56
@russianlagman @iLemming @antgubarev @backendsecret Каждый день этим пользуюсь. Застейджить "надёжные" изменения дл… twitter.com/i/web/status/9…
14:36
@cadet354 @russianlagman @ivan4th @redmoonstudio @backendsecret Нет никакого чувства элитарности. живу и работаю в… twitter.com/i/web/status/9…
14:41
@backendsecret Суть MOP в том, что вся реализация CLOS является хорошим примером ООП, прим этом CLOS до мелких дета… twitter.com/i/web/status/9…
14:41
Фак, пропустив цікавий фід від @backendsecret.

Зате наліпив вареників :)

Ты с большей пользой провёл время. Радуйся. twitter.com/alexcleac_ua/s…

17:31
@backendsecret Мне кажется ты перегнул границы, когда рассказывал о СВОИХ инструментах. Ты сейчас выполняешь роль п… twitter.com/i/web/status/9…

Заметь, люди настроенные на конструктивный диалог, почему-то получают конструктивные ответы. Почему, интересно? twitter.com/s_larionov/sta…

19:27
@backendsecret И тему для срача ты выбрал топовую, конечно - "какой редактор круче"
Каждый дрочит, как он хочет. Ко… twitter.com/i/web/status/9…

Не я начал срач Emacs vs. “Нормальные” IDE. Я про лисп вообще то рассказывал тем, кому это не интересно. За срач тр… twitter.com/i/web/status/9…

20:42

# Воскресенье 25 твитов

@backendsecret На самом деле под тем срачем скрывается гораздо глубокая, можно сказать философская тема. О фундамен… twitter.com/i/web/status/9…
5:06
@backendsecret Ну да, в интернете же нельзя игнорировать людей или один раз дать понять свою позицию и то, что даль… twitter.com/i/web/status/9…

Увы, твиттер устроен так, что приходят люди и они не читают предысторию, где ты уже дал понять свою позицию. И начи… twitter.com/i/web/status/9…

5:09
@MurcielagoCat @backendsecret в один твит не уместишь. читайте их. Посмотрите Simple Made Easy и другие ролики с Ri… twitter.com/i/web/status/9…
5:11

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

7:52

Надеюсь, вчерашний рассказ про ООП в Lisp хоть кому-нибудь понравился, а сегодня мы продолжим тему продвинутых фич и поговорим о макросах.

7:52

Начну сразу постулата, который наверняка покажется кому-то спорным - макросы есть только в Lisp (не конкретно в CL, а в разных диалектах).

7:52

Макросы же это что? Способ создавать синтаксические абстрации, неотличимые от базовых конструкций языка.

7:53

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

7:53

Именно поэтому и возникают постоянные попытки принести lisp синтаксис в другие языки: HyLang для Python, GISP для GO, LFE для Erlang, и т.д.

7:53

Вчера мне попалась на глаза статья "Ten interesting features from various modern languages": medium.com/@kasperpeulen/… и знаете что?…

7:53

…всё это либо уже есть в lisp, либо делается с помощью макросов за полчаса. Эти фичи не обязательно должны быть реализованы в ядре Lisp.

7:53

Я не хочу, чтобы сейчас опять начался флейм типа "Да в нашем C++ тоже…". Нет, не "тоже".

7:54

Тем же, кто заинтересовался использованием макросов в Lisp, могу порекомендовать почитать книгу OnLisp Пола Грэма. paulgraham.com/onlisp.html

7:54
@backendsecret Последние пару дней её читал. Она для тех, кто _уже_ знает cl более-менне хорошо.
Сейчас читаю ANSI… twitter.com/i/web/status/9…

Да, OnLisp можно читать, когда уже более менее разобрался с CL и хочешь научиться хорошо писать макросы. twitter.com/alexcleac_ua/s…

8:31
@backendsecret Нужна статическая типизация хорошая. Компилятор проверяет, что в коде обрабатываются все возможные в… twitter.com/i/web/status/9…

Ты лучше про pattern matching расскажи. Не надо тут холивара начинать ещё и про типизацию.

Почему pattern matching… twitter.com/i/web/status/9…

8:59
@backendsecret От тебя столько ссылок классных на этой неделе, что не попробовать Lisp просто невозможно! Не было и… twitter.com/i/web/status/9…

Мысли были конечно, но пока не приступил. Там очень большую работу надо проделать и переписывать по частям. twitter.com/vovanbo/status…

14:08
@backendsecret Я говорил про exhaustive pattern matching.

Ты объясни что значит “exhaustive”, я просто не в курсе пока. twitter.com/stasartemkin/s…

14:10
@StasArtemkin @backendsecret Кстати возможно кому-то интересно будет мнение R.Hickey по поводу pattern matching.… twitter.com/i/web/status/9…
14:10
@backendsecret Вот на примере F# vs C# fsharpforfunandprofit.com/posts/correctn…

Спасибо. Изучу. twitter.com/stasartemkin/s…

15:52

Вот и пролетела эта неделя. Когда волна флейма несёт тебя, время проходит незаметно.

20:30

Я хотел заинтересовать вас языком Common Lisp, а не разжигать междоусобные войны. Надеюсь, нашлись такие, кому захотелось попробовать Lisp.

20:30

Чтобы начинающим было легче, я решил время от времени выкладывать более подробные статьи на Medium.

20:30

Вот первая такая статья - про то, как настроить рабочее окружение и сделать простое HTTP API: medium.com/@40_ants/2dada…

20:31

Извините, если кого обидел, я не со зла, а просто троллей не люблю ;-)

20:31

За сим прощаюсь. С вами был @svetlyak40wt. Обращайтесь, если будет нужна помощь. Всегда рад помочь.

20:31

github.com

other


@tolkv