Fork me on GitHub
#clojure-russia
<
2016-04-24
>
andmed07:04:44

Из засвеченных докладов на jpoint где упомяналась clojure http://javapoint.ru/talks/grebennikov/ и в целом: конечно, впечатляет. Я впервой на j-коференции. Дикое количество людей разбирающихся в фичах-багах jvm и java досканально. Как там массивы выравниваются и пересылаются между процом и l1cache, или как создать массив листов генериков третьего уровня вложенности или как реализовывать параллелизм без локов используя неочевидные возможности стандартных библиотек (Елизаров). Главные темы: перфоманс и параллелизация - все то что clojure вроде не актуально, а такие фичи кложуры как персистентые коллекции или dynamic development в целом как и удобство коддинга в мире энтерпрайза кажется не интересны совсем. Пример: Был доклад про багофичи стримов восьмой жавы. Мужик замудреннейшие комбинации джавастримов перформил. Вот уже спец есть. Скоро эти багофичи все знать будут. Так и живут. Чем более багофич знаешь - тем круче разработчик. В крайнем случае есть гуру. На вечеринке был вопрос из зала: сколько надо scala разработчиков, чтобы разрушить успешный коммерческий проект на java? Вот как то так про real-world java...

dottedmag07:04:18

Перформанс и параллелизация на кложуре тоже нужны.

lapooh07:04:02

@andmed: а в каком контексте на этом докладе было упоминание о clj?

andmed07:04:38

@lapooh: я как раз на этом докладе не был. мне была интересна hardcore java. но по словам присутствующих на clojure прогонялись тесты, и они как бы сглючили simple_smile надо смотреть видео

maxp11:04:56

Уважаемые, а расскажите, как вы работаете в vim или emacs с русской раскладкой клавиатуры?

maxp11:04:27

в смысле, когда приходится не только ascii символы в текстах печатать

bernik11:04:53

@maxp: настроил быструю смену раскладки на caps lock, кроме этого ничего больше не делал

maxp11:04:14

у меня shift-caps

maxp11:04:19

но это не меняет сути

maxp11:04:45

скажите, а правда с этими редакторами до сих пор невозможно работать не переключая раскладки ?

maxp11:04:16

какой-то же должен быть номальный выход...

bernik11:04:49

первое что нашел в гугле https://habrahabr.ru/post/98393/

maxp11:04:35

эту статью на протыжении последних 5-и лет мне рекомендовали раз 10

maxp11:04:16

согласитесь, это пи$#@#% настраивать в редакторе отдельно специальное переключения раскладки

bernik11:04:32

а остальные, наверное, советовали прописать кучу map-ов

maxp11:04:36

чтобы оно не совпадало с раскладкой ОС

maxp11:04:34

а вообще, я vim'ом пользуюсь уже лет 20 без малого

maxp11:04:37

но блн!

bernik11:04:00

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

maxp11:04:42

просто я разговариваю на русском и пишу тоже не только на clojure

dottedmag11:04:04

@maxp: У меня русский повешан на Right-Alt, причём незащёлкивающийся. Как Shift.

maxp11:04:47

то есть ты сейчас текст набираешь не отпуская R-Alt? simple_smile

dottedmag11:04:21

Поэтому не все клавиатуры удобны, но эппловые и мокрософтовые гнутые - норм

dottedmag11:04:32

На эппловых - rcmd

maxp11:04:48

ну то есть мир vim/emacs вне ascii не существует?

maxp11:04:53

прискорбно

maxp11:04:41

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

maxp11:04:21

(под ДОС я даже самолично писал резидентные клавиатурные драйвера :)

maxp11:04:57

а что в емаксе нельзя сделать так, как везде

maxp11:04:31

ну чтоа Ctrl-A при включенном русском регистре считалась Ctrl-A, а не Ctrl-ф

maxp11:04:09

вообще-то, такой прикол только тут.

maxp12:04:48

самое обидное, что все остальное в этих редакторах вполне устраивает, но вот эта хрень просто полный show stopper

maxp12:04:12

и похоже это не лечится...

maxp12:04:47

эхх.... пошел включать Atom и любоваться на его repl-window

maxp12:04:14

Пинцет, нравятся мне советы типа "а вы просто переопределите ваши дополнительные русские Ctrl-ф кнопочки"

maxp12:04:57

их там всего-то сотни четыре будет, и неизвестно как оно в результате будет вообще работать.

niquola13:04:34

@maxp Погугли и для vim и для emacs есть такие плагины

niquola13:04:07

Которые просто переопределили байндинги ;)

maxp13:04:47

а если не только evil надо?

maxp13:04:23

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

maxp13:04:54

ну и потом снова добавлять трансляцию, если что-нибудь новое доставил.

maxp13:04:49

... и потом где-нибудь обнаружить, что в каком-то месте так и не заработало...

maxp13:04:57

Или другой вопрос, а кто-нибудь в atom/sublime всякими этими закосами под cider пользуется?

lich14:04:45

@maxp: а какая ос?

maxp14:04:12

Убунта

maxp14:04:38

Это, как я понимаю без разницы.

maxp14:04:11

Но во всех других осах и программах Ctrl-A это Ctrl-A, и вовсе не Ctrl-ф. Но тут, как я понимаю это принципиальный архитектурный момент.

lich14:04:13

у меня мак, там смена раскладки по cmd-space. Так вот, я скачал специальную прогу karabiner, и в ней настроено правило, что когда запущен emacs, то нужно отключить этот биндинг. В emacs смена раскладки назначена на cmd-space

maxp14:04:39

О как...

lich14:04:09

то есть, e-macs всегда запускается с одной раскладкой и возможность сменить в нем раскладку средствами ос отключена.

maxp14:04:26

Понятно.

maxp14:04:01

Но как-то не хочется жить с таким извратом.

maxp14:04:12

Тем более, у меня свитч глобальный, а не по окнам. Хотя это уже мелочи.

lich14:04:34

это всего пара настроек, все просто. У меня свитч по окнам, да.

maxp14:04:03

Меня просто коробит от самой мысли, что в 2016 году я буду снова писать драйвер русской клавиатуры :)

lich14:04:42

то есть, тебя не устраивает то, что в самом редакторе?

maxp14:04:19

Там же этим не ограничится наверняка.

lich14:04:15

почему? Но в моем случае не ограничилось, так как в emacs нет русской раскладки под мак

maxp14:04:24

Надо как-то заставить свитчер ОС делать исключение для емакса. Еще надо правильно определить его окно.

maxp14:04:26

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

lich14:04:47

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

lich14:04:08

а в чем проблема ему объяснить?

lich14:04:22

#C0D2M7JEN

maxp14:04:51

Пока не знаю... А как у него отличаются внутри, например ввод команды и ввод имени файла/посковой строки или чего там еще вводится?

maxp14:04:15

Ну и тут сразу появляется мысль, "а может в Атоме не такой уж и плохой репл?" :)

lich14:04:10

я перешел на emacs год назад, если что, с нуля.

maxp14:04:51

В смысле с какого нуля?

lich14:04:13

ну то есть ничего про emacs не зная)

lich14:04:50

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

maxp14:04:04

А вот расскажи, на каком уровне там рус.кнопки делаются?

lich14:04:59

я могу все рассказать, да. Но предлагаю двинуть в #C0D2M7JEN

maxp14:04:47

Ок, завтра поспрошаю. У нас тут поздновато уже :)

lich14:04:20

вообще могу и конфиг дать, как дело дойдет. Там, конечно, нужны будут правки.

leov15:04:10

посоны, ring.util.repsponse/redirect не понимает относительных урлов https://github.com/ring-clojure/ring/blob/1.4.0/ring-core/src/ring/util/response.clj#L19

leov15:04:32

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

leov15:04:14

есть и решение! просто его надо тоже включать! ура! подход когда всё по библиотекам просто супер! так ведь удобней! пойду попью водички. ещё минус час яка)

leov15:04:48

походу надо уворовать у люминуса или пьедестала все включённые миддлвари, а то это не больно, это агония какая-то

leov15:04:40

может, только хром на линуксе не понимает относительных путей в редиректах.. =/

niquola15:04:21

Мог бы и сам статус с хэдером ответить ;) для всего им хэлперы подавай

leov15:04:47

ну я и клеил. это мне надо вытаскивать из реквеста :host

leov15:04:01

у меня теперь другая драма

leov15:04:10

надо в одном хендлере выключить csrf

leov15:04:14

защиту

leov15:04:30

просто на месте прописать skip-protection я, выходит, не смогу, так?

leov15:04:43

ща "рефакторю" маршруты (их три)

niquola15:04:02

Исходники посмотри миддлвары ;)

leov15:04:13

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

leov15:04:16

и хотел посмотреть

leov15:04:24

супер. пять сек simple_smile

niquola15:04:45

Я обычно свой стэк mw собираю, так все под контролем и никаких сюрпризов.

leov16:04:58

а что такое mw

leov16:04:18

и второй вопрос - нету в сорсах unless (:skip-protection response)

leov16:04:24

так что способа пропустить в одном аварийном хендлере цсрф-токен без разделения маршрутов на "такие" и "сякие" не вижу

leov16:04:36

к слову, хендлер же вообще под wrap-anti-forgery

leov16:04:35

как я понимаю, поэтому - они должны договариваться на этапе компиляции как пропускать эту защиту. потому что сначала будет работать wrap-anti-forgery, и, выходит, ему всегда придётся вызывать (handler request), потому что так уж они устроены

leov16:04:07

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

leov16:04:56

нашёл, кстати, плохо включенный у себя ring-defaults, так что wrap-всё что угодно там, вообще говоря, был. я недовключил в девелопмент режиме

leov16:04:25

в общем, скипнуть цсрф похоже на уровне подлежащего хендлера нельзя.

leov16:04:51

мнда. это вот тогда не удобно нифига получается. то есть чего, мне на каждый хак надо будет разделять маршруты на (csrf-routes | no-csrf-routes), а потом csrf-noxframe-routes, nocsrf-noxframe-routes, csrf-xframe-routes, nocsrf-noxframe-routes

leov16:04:50

ну да, по идее каждая миддлварь где-то должна иметь настройку skip-me. ща поищу

seryh16:04:17

Всегда же можно форкнуть и доаисать mw, они простые обычно

seryh16:04:33

Дописать*

leov16:04:26

чорд. короче монады не коммутируют и вообще, кажется, надо смотреть в сторону других маршрутизаторов

niquola16:04:45

В route-map middle-ware можно по веткам роутов раскидать

leov17:04:18

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

leov17:04:04

наверное надо все миддлвари, которые прерывают исполнение, строить иначе: собирать ошибки в кучу, передавать в маршрутизатор, там тоже собирать возможную ошибку -

leov17:04:17

а потом передавать уже в хендлер перед приложением, очевидно

leov17:04:31

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

az19:04:23

народ, кто тут бота писал для толи для слака толи для телеграмма?

leov19:04:44

ну, вивджестер мне сказал, что он не понимает, нафига это надо

konukhov21:04:25

@leov посмотри pedestal, он намного гибче compojure

konukhov21:04:54

“ нельзя в девелопмент режиме понять, то ли токен цсрф неправильный, то ли маршрут неправильный”, он же вроде invalid anti-forgery token пишет

konukhov21:04:08

если токен неправильный

lich21:04:12

@az: попытки были, и, вероятно, я снова этим займусь в ближайшее время.

lich21:04:51

@az так что было бы интересно обсудить.