Влод
да, забавно вышло. за чатом не уследить
Anonymous
@sergsyr будет жить. Поприветствуем!
Alexander
лучше скажите, как с помощью http-reverse-proxy запроксировать web-socket при этом проверив заголовки
Alexander
у меня вроде все работало, решил токен передавать с сообщением, чтобы на проксе сразу права проверить
Alexander
т.к. заголовки устанавливать нельзя, то установил протокол и в нём передаею
Alexander
на прокси приходит оно все проверяет, но дальше ничего не работает
Alexander
без логов нормальных
Anonymous
@Rinfox будет жить. Поприветствуем!
Alexander
вопрос снят
Alexander
нет, я глупости просто делал
Alexander
перестал делать глупости все заработало
Alexander
вообще когда-нибудь нужно будет все через nginx делать, но там не все так просто
Anonymous
Сергей Семёнов будет жить. Поприветствуем!
Андрей
Alexander
там ingress стоит, который nginx под прикрытием
Alexander
там логика достаточно сложная, я не уверен что с accel redirect или как там его все взлетит
Alexander
да и все равно мой вопрос останется
Евгений
Alexander
+
Евгений
Прогрессивненько. Вам дивапс не нужон? :)
Konstantin
вашей маме зять...
Андрей
😅
Alexander
@elemir90 напиши на jobs@tweag.io
Alexander
я точно не знаю достаточно ли у нас дивопсов
Евгений
ok, напишу когда меня в JB пошлют :)
Kirill
в FP Complete можешь написать, но тебеж ремоут не нравится?
Alexander
у нас пока Tweag Russia не открывается..
Konstantin
@qnikst а ты в офисе или ремоут?
Alexander
впрочем если будут контракты в РФ и наличие локальной ветки будет выгодно, то откроется
Alexander
ремоут
Alexander
я из-за family illness не могу дольше, чем на 2 недели уезжать от дома
Alexander
у нас удаленных на самом деле не мало, просто не на все проекты получится
Alexander
вопрос по теме канала, а что с cabal new-run происходит, он в каких версиях нормально работает?
Зигохистоморфный
существует HFunctor вида
class HFunctor hf where
hfmap :: forall g h. (g ~> h) -> (hf g ~> hf h)
я вот думаю какой должен быть тогда HBifunctor
class HBifunctor hb where
hbimap :: (f ~> f') -> (g ~> g') -> (hb f g ~> hb f' g')
правильно?
кана
ну да
Зигохистоморфный
а теперь как бифунктор написать для)
data MonadF f g a = DoneM a | MoreM (f (g a))
Oleg
Очевидно никак, только инвариантный
Ю ли я? 🤔
К "хаскель - лучший императивный язык": как можно в каком-нибудь State имитировать бесконечный цикл с выходом из него? Вроде
forever $ do
bar <- get
if foo bar then break else put (qux bar)
Anonymous
@olegafx будет жить. Поприветствуем!
Зигохистоморфный
A64m
Alexander
Alexander
fix $ \next -> do
if foo bar then pure () else ... » next
Зигохистоморфный
вообще какой-нибудь монадический апоморфизм)
Oleg
Зигохистоморфный
но можно и его частный вариант
loopM :: Monad m => (a -> m (Either a b)) -> a -> m b
loopM act x = do
res <- act x
case res of
Left x -> loopM act x
Right v -> return v
Alexander
люблю fix
Alexander
он не течет случайно
Ю ли я? 🤔
Ух ты, всем спасибо :)
Alexander
``
m ^. unregisteredClaims . at "isRw" . _Just . _Bool
`
ка это правильно на линзах написать?
Ю ли я? 🤔
Alexander
unregisteredClaims :: Lens' ClaimsSet (HashMap Text Value)
A64m
а что пример в вопросе не работает? (только там ^?)
Alexander
щас попробую
Ilya
A64m
ссылка выше, только там пост старый, так что EitherT вместо ExceptT
Зигохистоморфный
зачем оборачивать в newtype? хватит и
break :: forall m r a. Monad m => r -> ExceptT r m a
break = throwError
loop :: forall r m. Monad m => ExceptT r m Unit -> m r
loop = either pure pure <=< runExceptT . forever
Alexander
@A64m_qb0 а если у меня есть Maybe x, и (x->Either y z) и y как это объединить?
Alexander
mx ^? _Just . to(Right . f) . non (Left y) // f :: x -> z
Alexander
чуть с типами наврал
Alexander
на non отвативается
A64m
я что-то не понял зачем Right и non
Alexander
мне нужно на выходе Either
Alexander
в общем у меня из Maybe a -> Either Text x и с преобразованиями внутри
A64m
ну тут не ^? тогда должен быть
A64m
т.е. mx ^? _Just . to f будет Maybe z
Alexander
ок, как сделать из Maybe z , z
Alexander
я думал non для этого, чтобы значение дать в случае Nothing
Alexander
(бесит когда только линзоапи есть)
кана
обобщил
A64m
A64m
(foo ^? _Just . to (Right . f)) ^. non (Left bar)
кана
Alexander
а
A64m
но to портит конвейер в любом случае, так что можно не стараться один делсть
A64m
если б не to а нормальня призма отавалась было бы что-то вроде
matching (_Just . _f) & _Left .~ "my error message"
кана