Dmitry
всегда в выигрыше
Alexander
:)
Anatolii
в смысле просто от самого факта его наличия? а туда тоже приходят php-шники что бы строго спросить с поцонов за go ? зачем он нужен, с какого района и какие авторитеты на нем пишут?
если кто-то упоминает про него - то там начинается обуждение про баги с ленивостью и все такое. Ну и что он никому не нужен, вот на го посмотрите, на нем все пишут
Alexander
@adhoc в чем кстати прикол во вступании за троллей после каждого бана?
Anonymous
Даже не догадываюсь.
Зигохистоморфный
https://scontent-frt3-2.xx.fbcdn.net/v/t1.0-9/19029340_1716436075036430_6391158397611438888_n.jpg?oh=34548a39ea4f627cf40d67e21908c282&oe=59A43F2B
Зигохистоморфный
разве возмножно нормальный type level programming сделать на TS?)) https://github.com/gcanti/typelevel-ts
Дима
разве возмножно нормальный type level programming сделать на TS?)) https://github.com/gcanti/typelevel-ts
На ts — нельзя, из-за проблем с бивариантностью. На Flow — можно, но у gcanti жестокое в нём разочарование и продолжать свои разработки на нём он не будет)
Дима
Я почитал его блог, прямо грустно стало, дневник разочарования в в окамл-типизаторе)) Выдержки были в таком духе Jul 25. Flow has Row Polymorphism (yaay) Sep 5. Flow doesn’t support higher kinded types: Sep 27. Unfortunatelly, flow throws an error Oct 20. Im stuck ... Mar 17. Higher kinded types in TypeScript
Anonymous
а где скала?
Дима
а где скала?
Картинку просто делал питонист)
Дима
Вероятно он просто не знал о её существовании)
Alexander
кто-нить использует zeromq и haskell в production?
Aλeχ
кто-нибудь использует
Alexander
не факт, там какая-то гора проблем
Alexander
если чуть чуть отойти от пары хороших путей
Max
Zeromq в продакшен уже опасная идея.
Max
Хотя эти... как их... Мирантис пытаются в опенстеке спрыгнуть на него с кролика.
Alexander
ну если жить в c/cpp я могу понять
Alexander
там часть проблем уйдет
Max
А другая появится.
Max
Магия, когда внезапно подписка шла юзом на тесте, когда в разраб режиме все работало, очень сильно доставляла.
Max
Мне сложно говорить за всю Одессу, поэтому скажу за свой опыт: - требуется подстройка приложения под логику ZeroMQ. Ну т.е. хвост витяет собакой. - иногда оно непредсказуемо глючит. В моем случае был pub-sub который внезапно терял подписку под нагрузкой и не самой большой. - наличие подобных библиотек дает ложную уверенность, что с транспортом будет все ок. По факту же получается, что и с транспортом не ок (потому что глючит) и инфраструктура уровнем ниже требуется. В свете этого непонятно, что можно получить от zeromq полезного относительно работы с обычными сокетами, с которыми худо-бедно научились справляться в т.ч. и административно-инфраструктурными методами.
Max
Отдельно скажу про зоопарк версий - помнится, было такое, что при смене минора налаженный ранее механизм работать переставал, а при смене мажора - вновь начинал, но потом опять переставал.
Влад
Понял, а что ты юзаешь?
Max
У меня Э-к, сокеты для устройств, web-сокеты для дальнего интерконнекта (если на обоих оконечниках Э-к).
Max
http://gearman.org/ http://nanomsg.org/ - ссылочки в тему :)
Влад
Окей спасибо большое
Max
А, да, еще отдельный цирк, когда сеть далека от тепличных условий. И когда требуется соблюсти порядок доставки сообщений.
Alexander
в хацкель у него ещё и евентпол отдельный
Max
А, да. Если падает zeromq - то падает вся аппликушка.
Max
А оно падает... ну, не сильно редко.
Max
Поэтому все делать надо с расчетом, что в любой момент прилетит.
Alexander
да сигаборт на фейле какой-то операции меня порадовал
Alexander
у меня сейчас проблема что он фд не закрывает хотя должен
Alexander
и я в лимит влетаю
Max
Огонь
Alexander
собственно вместо того чтобы выдать ошибку он абортится
Alexander
я боюсь что там паттерн использования кривой
Зигохистоморфный
ReaderT наше все?) https://www.fpcomplete.com/blog/2017/06/readert-design-pattern
Alexander
ReaderT Env IO хорошая штука и правильно пишет, а после как обычно какую-то хреноту
Alexander
ну т.е. не совсем хреноту, а как обычно
Alexander
интересно, а то, что я с FP complete-овками разговаривал объясняя как мы используем такой паттерн повлияло на блог или нет
Dmitrii
@qnikst А можешь пояснить, что за хренота? Ну, в смысле, что как и обычно
Зигохистоморфный
ReaderT Env IO удобно читать окружения, конфиги я так понял
Зигохистоморфный
это же вроде в Servant?
Alexander
в общем ReaderT Env IO это половина того, что всегда надо
Alexander
HasFoo класс типов это тоже хорошо, но я бы и методы в класс типов засунул т.к. можно переопределить иногда это важно
Alexander
unsafePerformIO и котята это неверно, иногда оно очень надо
Alexander
ну и там про State и ещё что-то странные размышления
Alexander
то, что WriterT это монада для создания space leaks это верно (у него немного не так но смысл верный)
Alexander
ну и его можно сделать правильным если через стейт написать, а стейт сам пофиксить или взять последние tf
Dmitrii
ну и его можно сделать правильным если через стейт написать, а стейт сам пофиксить или взять последние tf
Согласен. Это не монада плохая, это конкретная реализация не самая удачная. При другой реализации вполне себе отличный подход, который можно использовать в разных целях.
Alexander
ну поидее writer не делает создает зависимость в собираемой части из-за этого проблемы
Alexander
решается переписыванием через стейт
Alexander
но там *> возникает
Alexander
а т.к. по дефолту *> пишется через <*> (в непоследних tf) то там форсится значение где не надо
Alexander
в итоге память все равно выжирается
Alexander
но это исправляется специальным *> для стейта
Alexander
@async_prince IO a -> a
Alexander
под локом
Alexander
т.е. можно сделать thunk с IO действием в чистый контекст
Alexander
там есть ряд проблем, и лучше не понимая что ты делаешь не трогать
Anonymous
@async_prince IO a -> a
ну это как раз unsafePerformIO, это я знаю, а котята это что?
Alexander
а..
Alexander
ну в топике что выше снойман написал, что котёнок умирает, когда это используют
Anatolii
а чем EitherT не угодил? мне нравится идея разделения на ошибки приложения и на все остальное(IO)
Зигохистоморфный
наверное в пользу ExceptT?
Alexander
ExcepT поверх IO кучу проблем приносит
Alexander
отсутствие MonadMask как минимальное
Alexander
в итоге это заканчивается переизобретением исключений
Alexander
у Сноймана есть статья но этому поводу (как обычно biased и opionated),\ но норм
Alexander
он там доказывает для это бесполезно
Alexander
я согласен что оно бесполезно для юзера либы, с другой стороны для пишущего либу есть плюсы, он видит, с чем он может валиться и что будет выше обработано пользователем, все остально нужно через throwM
Alexander
часто ли такое случается - если честно не знаю
Vasiliy
возможно, ExceptT и ErrorT станут экземплярами MonadMask https://github.com/ekmett/exceptions/pull/59
Евгений
ExcepT поверх IO кучу проблем приносит
Каких проблем, не очень понимаю? По мне так исключения это дётихак. Не такой страшный как unsafePerformIO, но всё равно: чем ближе код к тайп-сейфному, тем лучше.
Alexander
Vasiliy я не понимаю инстанса для ErrorT и почему он правильный..