
Imants
13.02.2018
22:37:41
А (reverse) прокси сервером можно взять хоть nginx, или что привычнее

Alex
13.02.2018
22:37:54
Но я хоть убей не могу понять как его добавить в проект
dependencies в stack.yaml?

Alexander
13.02.2018
22:38:33
vim package.cabal / cabal new-build

Google

Alexander
13.02.2018
22:38:36
sorry
хм.. а какой наиболее простой примитив для генерации стримов (любых) (CC @xgrommx) коалгебы, куда смотреть?

Imants
13.02.2018
22:39:28
Прокси сервер будет сам по себе, а своя апп будет общаться с прокси сервером по tcp.
Эти 2 части не будут одним проектом

Denis
13.02.2018
22:40:46

Alexander
13.02.2018
22:41:16
мне просто нужно сейчас примитивы правильные для STM сделать, чтобы из них кондуиты композить
у меня пока есть для STM a / STM (Maybe a), но ведь есть же обобщение

Alex
13.02.2018
22:44:43
Большое спасибо всем кто отвечал!

Alexander
13.02.2018
22:45:32
серьезно помогло?!

Alex
13.02.2018
22:50:53
Да
Я нашел на гите работающий пакет
Он пашет
Мне еще сток понравился
Надо его тоже чекнуть

Google

Dmitry
13.02.2018
23:04:53
А Stack умеет параллельно собирать, как cabal build -j? Что-то такое впечатление, что только одно ядро занято...

Alexander
13.02.2018
23:06:56
умеет

Dmitry
13.02.2018
23:07:22
А как ему это сказать? Или он по умолчанию параллельный?

Alexander
13.02.2018
23:07:53
раньше был по умолчанию, сейчас не уверен
скорее всего -j
я обычно не парюсь у меня столько оперативки нету чтобы параллельно собирать

Dmitry
14.02.2018
00:31:33

Artyom
14.02.2018
02:35:33
stack build --jobs=<N> --ghc-options=-j
правда, лучше параллельный ghc не включать, а вместо этого выдать ему больше оперативы
ну, если только у тебя не 60 гиг оперативы (или проект маленький)
тогда можно и то, и другое
(а вообще советую самому побаловаться)

Vasiliy
14.02.2018
06:05:14
хм, не понимаю этот пакет https://github.com/mauke/data-default
это просто класс типов Default и дефолтные значения для некоторых типов (для которых они имеют смысл)
т.е. в этом его назначение, ну да, ок

Aleksey
14.02.2018
06:11:34
Есть мнение, что злоупотреблять этим пакетом не стоит. Для некоторого типа мужет быть несколько валидных и логичных умолчаний
Вот уже для Maybe два варианта возможны: Nothing и Just def

Yuriy
14.02.2018
06:20:21
есть мнение, что этот класс вреден

Vasiliy
14.02.2018
06:22:36
да, вот сразу как увидел возникло смутное противоречие, не зря написал
т.е. им как бы не зашквар пользоваться в ограниченных случаях? ну вот когда и правда у меня единственное значение по-умолчанию существует для некоторого типа

Kirill
14.02.2018
06:29:14
часто приводят мою либу как оправдание :)
xlsx, там def используется для получения "пуcтой" части эксель файла

Google

Vasiliy
14.02.2018
06:30:06
ага, уже нашел) крутой пакет

Kirill
14.02.2018
06:31:04
по сути это DRY, но он тоже не всегда полезный принцип
теоретически можно былоб фигачить что-нибудь типа emptyCell, defaulStyle и т.п.

Yuriy
14.02.2018
06:31:56

Kirill
14.02.2018
06:33:53
в данном случае "теоретически" казалось одной конкретной либы :)

kana
14.02.2018
08:14:15

Vasiliy
14.02.2018
08:15:33
вообще да, согласен, возможно это лучше, чем тащить пакет еще один, особенно если ничего из него не нужно (кроме класса самого)

Aleksey
14.02.2018
08:16:27
Default в виде класса кажется удобным, т.к. позволяет делать полиморфный контекнер и инстанциировать
instance Default a => Default (Foo a) where
def = ... def
Но на деле у полиморфного контейнера просто странно иметь какие-либо умолчания
А у мономорфного можно и defaultBlaBla в defaultFoo вызвать
Наверное больший смысл могут иметь классы типа class CanBeEmpty a where { empty :: a }. Или что-то ещё более близкое к доменной области, как @kana_sama говорит

Pineapple
14.02.2018
08:20:13
Зато с Default не надо вспоминать какой именно defaultWhatever надо писать. def и всё

Aleksey
14.02.2018
08:20:37
Вот это то и плохо. Надо вспоминать! И думать тоже надо

Pineapple
14.02.2018
08:21:05
Только в половине случаев

Aleksey
14.02.2018
08:21:07
foo def def 0 Nothing def def - ниочень

Sergey
14.02.2018
08:21:42

Pineapple
14.02.2018
08:21:58
Пять полей, господи... foo def def def def def!

Aleksey
14.02.2018
08:22:22

Pineapple
14.02.2018
08:22:50
Подобную байду удобно собирать в одну структуру: foo def

Arthur
14.02.2018
08:25:16
Этот курс чем то лучше или хуже того, который в вышке читали? @bravit111
Этот курс рассчитан на людей, которые уже знакомы с ФП, и, в частности, с Хаскеллем. А курс в Вышке, соответственно, рассчитан на студентов, которые знают императивные языки, но при этом им надо объяснять самые азы ФП - начиная от того, что такое чистые функции, и заканчивая тем, что такое функторы, монады и т.д. Т.е. этот курс он хардкорно про Идрис, а тот, который в Вышке - больше вводный в тему ФП на примере Идриса. И тот, и другой хороши для своей аудитории.

Google

Yuriy
14.02.2018
08:32:01
а можно вообще никакого дефолта не экспортировать
sheet = mkSheet $ do
cellValueAt (1, 2) ?= CellDouble 42.0
cellValueAt (3, 2) ?= CellText "foo"

Leonid
14.02.2018
08:59:19
А может и вправду сделать рекорд функций вместо тайпкласса?
Что-бы не превратиться в есод
В общем пишу я либу которая будет oauth2 (openid?) сервером. И например нужно абстрактнуть мне бэкэенд для хранения юзеров.
И абстрактнуть как делается аутентификация - куки там всякие, хтмл с формочками

A64m
14.02.2018
09:01:30
хаскель слишком неразвитый язык для такого

Leonid
14.02.2018
09:01:31
И не хочется всё это навешивать на m

A64m
14.02.2018
09:02:06
ну, экспериментальные-то фичи для этого есть, но они не готовы для продакшона

Leonid
14.02.2018
09:02:28
вот такое есть http://hackage.haskell.org/package/snap-1.1.0.0/docs/Snap-Snaplet-Auth.html#t:AuthManager

Kirill
14.02.2018
09:03:50

Leonid
14.02.2018
09:04:00
нет, я хочу сам Auth сделать.
но думаю вот какой делать апи
наверно сделаю всё через рекорд, и будет initAuth :: Config -> IO AuthEnv, runTokenEndpoint :: AuthEnv -> Wai.Application
ну и т.д.
только в снапе зачем-то existential сделан

Alister
14.02.2018
09:05:50
http://loveplusplus.ru/

Leonid
14.02.2018
09:06:19

Denis
14.02.2018
09:06:28

Yuriy
14.02.2018
09:18:42

Yuuri
14.02.2018
09:19:35
Java?

Google

A64m
14.02.2018
09:20:05

Leonid
14.02.2018
09:21:18
Модули сделают из хаскеля энтерпрайз?

A64m
14.02.2018
09:21:57
не сделают

Leonid
14.02.2018
09:22:15
Может и вправду прикрутить рюкзак...

Denis
14.02.2018
09:24:21
для чего хорош бэкпак?
я как-то мимо всей это модульной темы

A64m
14.02.2018
09:26:29
теоретически, вот для обсуждаемого он и нужен, где в хаскеле всякие рекорды с функциями надо передавать или адовые классы писать а-ля ЛистЛайк и в обертки оборачивать
практически - не известно, может и ни для чего

Denis
14.02.2018
09:32:46

Leonid
14.02.2018
09:34:49

Denis
14.02.2018
09:37:37
кстати надо багу зарепортить..

A64m
14.02.2018
09:38:05

Denis
14.02.2018
09:38:23
спасибо, погляжу

A64m
14.02.2018
09:39:58
или вот очень простой для начала https://github.com/ezyang/backpack-regex-example

Denis
14.02.2018
09:40:37
меня издавна терзал вопрос чем же хороши ML модули, но я так и не удосужился разобраться

A64m
14.02.2018
09:41:12
да с этим и эмелисты не то чтобы разобрались

Dmitry
14.02.2018
09:41:31
они не то, что бы хороши
они довольно удобны
своей параметризацией
это то, что на нашем уютненьком получается нецелевым использованием TF/DF
и тайпклассов