
Leonid
16.05.2018
09:48:29
но там даже тикета нет, никому не нужно.

Alexander
16.05.2018
09:49:17
сделай тикет!
(потом напиши код)

Leonid
16.05.2018
09:49:43
у меня дедлайны :(

Google

Alexander
16.05.2018
09:51:06
а что какой-нибудь ssh-proxy не поднять из проги самой?
сердито и вообще

Leonid
16.05.2018
09:51:33
ну наверно

Alexander
16.05.2018
09:51:56
и.е. прога стартует запускает ssh-proxy и к нему коннектится
юзер в неведении
симметричный ключ - почтовым голубем посылать
ой, не туда шутка

Leonid
16.05.2018
09:53:25
а ты не нашел n-t-websockets ?

Alexander
16.05.2018
09:57:08
https://github.com/picussecurity/network-transport-websockets
вот прям второй результат в гугле
судя по никам они пилили

Leonid
16.05.2018
10:00:02
хм, а у меня не нагугливался
— * It does not gracefully handle closeConnection calls and connection failures.
— It may even give @thread blocked indefinitely in an MVar operation@ sometimes.
— * It can not pass some tests on "Network.Transport.Tests". They are mostly
— about connection failures.
обнадёживает

Google

Alexander
16.05.2018
10:01:42
не тесты там ещё те
я очень задолбался заставлять n-t-zeromq из пройти

Leonid
16.05.2018
10:03:42
чёт я не вижу в n-t-zeromq никаких опций для шифрования. а из аутентификации только странный юзейрнейм-пассворд

Alexander
16.05.2018
10:34:06
а значит я недопилил
но оно там в протоколе есть
а скорее всего я не допилил и.к. в zeromq криво было
но сейчас уже много лет прошло, должны были запилить

Александр
16.05.2018
11:00:47
Знали бы вы, в какие дебри нас завело использование freer + extensible effects и Servant одновременно ??
Что-то надо менять в небесной канцелярии

Denis
16.05.2018
11:03:19

Александр
16.05.2018
11:07:18
в какие?)
К сожалению, не могу показать код. В чудовищные дебри описания всяких эффектов в типах, и при этом очень важно сохранять порядок при вызове интерпретаторов. И все это усугубляется системой типов Серванта
А потом еще припорошили эффектом транзакционности (БД), и он принес с собой еще и тип ошибок вдобавок к типу эффектов.

Alexander
16.05.2018
11:09:33
мне кажется о типах серванта ты забываешь в Server.hs когда вызываешь hoist
после этого моменты ты думаешь только о своем стеке, который не в курсе про сервант

Александр
16.05.2018
11:10:36
А, еще забыл упомянуть тип генеричных конфигов, которые можно извлекать из места, где указан такой эффект ?

Alexander
16.05.2018
11:11:52
ну когда ты из их стека в свой прыгаешь
я не помню комбинатор как зовется

Александр
16.05.2018
11:16:22
Все-таки, это темная сторона Haskell. Не нужно так делать.

Alexander
16.05.2018
11:17:14
сервант нужен чтобы вам написать и код сгенерирь завязывать на его типы приложение не надо

Google

Alexander
16.05.2018
11:18:08
с эффектами сложнее, я даже не знаю того как там быть

Александр
16.05.2018
11:18:37
Вот я про эффекты. Но Сервант мне тоже не очень.

kana
16.05.2018
11:19:33
так

Александр
16.05.2018
11:19:36
В PureScript всегда раздражала эта система эффектов. Вот ничегошеньки полезного она не дает.

kana
16.05.2018
11:19:40
эффекты и сервант никак не связаны же
пишется один раз нат трансформация из Eff r ~> Handle и все
разве это не единственная точка соприкосновения? Причем даже не с самим сервантом, а просто с ExceptT IO

Александр
16.05.2018
11:21:43
Они сами по себе не связаны. Но в нашем коде есть, например, механизм преобразования наших ошибок из эффектов в Envelope

A64m
16.05.2018
11:22:27
в пурскрипте-то какая система эффектов? там же просто индексированный IO

kana
16.05.2018
11:23:17

Александр
16.05.2018
11:23:25
Система эффектов на открытых записях там. Ну, они ее так называют. А уж индексированный он там или нет, это вам виднее

kana
16.05.2018
11:24:13
ну типа просто как я помню некоторый хаскель код, в хаскеле делают точно так же

Denis
16.05.2018
11:24:26

Александр
16.05.2018
11:24:31
Вот делаешь ты рефакторинг, решаешь немного эффекты перераспределить. И внезапно, та функция, которую ты считал, что она не должна делать этот эффект, начинает его делать. И ты такой: ну ок, обновлю эффект, чо

kana
16.05.2018
11:24:47
не используют IO напрямую, а делают N тайпклассов под конкретные задачи, у которых есть IO инстанс

Александр
16.05.2018
11:26:37
Возня с эффектами в PureScript ужасно раздражает. Тот пресловутый IO / IOSync не зря появлися. Там, кажется, эффект INFINITY какой-то используется, и все дела.

Denis
16.05.2018
11:27:10

Alexander
16.05.2018
11:28:27

Александр
16.05.2018
11:28:29

Google

Alexander
16.05.2018
11:28:57
когда они приносят достаточно бонусов по сравнению с тем что за это заплатишь
если с сервантом она ещё видна и есть понимание начиная с какой сложности лучше сразу его взять, а не переизобретать на споке, то тут сложнее

Александр
16.05.2018
11:29:42
Куча библиотек, которые не пойми как использовать.
Кстати, в PureScript том же Time сделал комонадой. И пока ты этот факт не узнал, ты будешь долго искать функцию, как значение-то достать
Что мешало сделать удобные аксессоры - неясно

Alexander
16.05.2018
11:30:22
особенно в heavy IO коде, а то в эффектах поддержки асинхронных расширяемых исключений не так давно не было

Александр
16.05.2018
11:30:47

Denis
16.05.2018
11:31:12

Alexander
16.05.2018
11:32:15
ну я не вижу проблем с сервантом больших, точнее вижу, но это не те проблемы с которыми обычно столкнешься
и.е. мне не понравилось добавлять свои Verb
для стриминг запросов и ответтв

Александр
16.05.2018
11:32:42
где там такое?
Гм, сейчас смотрю и не нахожу ? Может, попутал с другим родственным типом

kana
16.05.2018
11:32:47

Alexander
16.05.2018
11:32:59
и авторизацию, которая была не допилена

Александр
16.05.2018
11:33:09

kana
16.05.2018
11:33:47
так вы же про пурсу говорили

Alexander
16.05.2018
11:34:06
кстати о hackage вот вспоминая опыт с джавой, он на порядок полезнее чем жавадоки

Александр
16.05.2018
11:34:25

Alexander
16.05.2018
11:34:32
в которых черт ногу сломит, ничего не понятно как использовать, сложно искать и до исходников не доберешься

kana
16.05.2018
11:34:43
я конкретно про time комонадой

Google

Александр
16.05.2018
11:36:37
@kana_sama @xgrommx Все, нашел, это был Locale:
https://pursuit.purescript.org/packages/purescript-datetime/3.4.1/docs/Data.DateTime.Locale
Есть там тип LocalValue, и он комонада
c ним удобно новые либы писать
Ох, сорри, я прочитал сообщение неверно ("с ними", понимая как "эффекты"), и ответил неверно. Да, с ним удобнее, чем с эффектами.
Приношу извинения

Piu
16.05.2018
12:09:52
Это хорошая практика переводить эксепшины в Maybe/Either везде где это возможно?

Denis
16.05.2018
12:10:22
it depends

Oleg
16.05.2018
12:11:36
Мне кажется, эту тему обсуждают в последнее время всюду

Piu
16.05.2018
12:12:25

Александр
16.05.2018
12:13:52
BTW, я что-то не хочу быть админом

Yuriy
16.05.2018
12:17:32
хорошая практика — не бросать исключения там, где можешь не бросать
а ловить ранее брошенные и переводить в Either? зачем?

Oleg
16.05.2018
12:18:21
В расте всё никак не успокоятся с этой темой Try trait, try catch и подобного
В скалке бушуют по поводу bifunctor IO

Piu
16.05.2018
12:21:06

Dmitry
16.05.2018
12:34:44
Всем привет! Не подскажете библиотеку/пример проекта/блог-пост с очень простым примером фронтенда с Haskell в качестве бекенда? С хаскеллем проблем нет, хоть сервант могу сделать, но в том, как делать фронтенд и как связывать с бекендом, ничего не понимаю ? Мне хочется просто иметь несколько разных списков и возможность редактировать из UI эти списки (удалять, изменять, добавлять) и сортировать по разным полям. Короче, Google Sheets на очень сильных минималках. Дизайн не важен)

Евгений
16.05.2018
12:36:16
Склепай фронтенд на elm'е (ща в меня полетят кирпичи)

J
16.05.2018
12:37:10
...если тебе не нужно ничего кроме non-persistent демок на конференциях показывать.
На самом деле, все очень плохо. Я для пет проджектов использую фулл стек purescript с очень компактным и элегантным тайп-бриджем.

Dmitry
16.05.2018
12:39:38
Я-то не против elm. PureScript даже лучше! Мне бы простой пример проекта, с командами для обезьянок, как билдить (а то каждый раз страшно трогать npm)...

J
16.05.2018
12:40:28
Ну подожди, ты на бекенде именно Haskell хочешь?
Если ты привязан к Haskell, то ничего умнее чем то, что мы делали в блок эксплорере карданы не придумать (пьюрскриптовский Aeson генератор и сериализация/десериализация данных). Можешь у Антэ спросить, он всё это добро мейнтейнил.

Alexander
16.05.2018
12:42:29
у нас excel в web и прочее, но для фронта там typescript и бездны ада
общение json данными