
Юрий
12.01.2018
08:43:02

Diemust
12.01.2018
08:43:16
а где такие вещи из коробки есть?

Robert
12.01.2018
08:43:22

Google

Robert
12.01.2018
08:43:56
Если залезть в кишки гейтвея в исходниках то это сразу найдется

Юрий
12.01.2018
08:50:34
можно использовать низкоуровневые апи в акка хттп, но толку тогда? раз придётся всё равно свой пул руками писать

Robert
12.01.2018
08:51:19
Православный способ - создать очередь и в нее пихать реквесты, так можно нарулить политики что с протухшими реквестами и переполнением делать
Это не так уж низкоуровнево
Более того при singlerequest в актор внутри гейтвея просто напихиваются реквесты что приводит к встреванию в пулл сайз

Oleg
12.01.2018
08:53:56


Юрий
12.01.2018
08:54:02
да это всё днище. Хочется просто флажочек в конфиге иметь, а не вот это вот

Robert
12.01.2018
08:54:49

Nikita
12.01.2018
09:40:41
скаланы, а у кого осталась такая картинка с Одерски (фото лица с курсов, типа пьяный) и подпись "КАК ЖЕ ТАК БРАТАН" ?

Google

Alex
12.01.2018
09:42:06
Ток такая есть, из мемориз

Nikita
12.01.2018
09:43:25
не та) но тоже прикольная

Daniel
12.01.2018
09:43:34
там никто не дописал к списку дженерики явы?

Андрей
12.01.2018
09:43:58
https://pbs.twimg.com/media/DRQxo3uW4AE1fxa.jpg надо увеличивать ?

Alex
12.01.2018
09:44:17
@cryro на святое посягаешь

Aleksey
12.01.2018
09:44:18
ТЕОРИЯ КОТЕГОРИЙ УБИВАЕТ

Nikita
12.01.2018
09:44:34
а скаланы еще вопрос, вот есть у меня стрим, на входе A на выходе B, и я хочу этот стрим сконвертить в Task[A => List[B]] или Future, как такое сделать?)

Oleg
12.01.2018
09:44:49

Denis
12.01.2018
09:45:05
cocancer

Aleksey
12.01.2018
09:45:16

Aybek
12.01.2018
09:45:27

Denis
12.01.2018
09:45:35
:)))

Oleg
12.01.2018
09:45:35
Flow?

Nikita
12.01.2018
09:46:26
да любой, мне главное получить на выходе Future/Task[A=>List[B]]

Oleg
12.01.2018
09:47:50
эммм
внутри таска будет функция с эвэйтом?

Google

Denis
12.01.2018
09:48:08
def convert[Flow[_, _], A, B](f: Flow[A, B]): Task[A => List[B]] = Task.raiseError(new TrololoException)
пойдет?

Nikita
12.01.2018
09:48:19
нет

Denis
12.01.2018
09:48:26
значит не любой

Nikita
12.01.2018
09:48:59

Oleg
12.01.2018
09:48:59

Denis
12.01.2018
09:49:23

Nikita
12.01.2018
09:49:49

Denis
12.01.2018
09:50:36
напиши функцию которою хочешь иметь а после = напиши ???, возможно мы сможем помочь

Oleg
12.01.2018
09:51:27
https://gist.github.com/Odomontois/699cd9ae7a14096a73da893e2c5a54c3

Nikita
12.01.2018
09:51:30
просто у меня мысли такие, что source: A, sink: B, и потом у этого стрима хочу сделать collect List[B] и превратить в Task[A => List[B]]

Oleg
12.01.2018
09:52:35
не уверен, что там нужен implicit ec
да
Task.deferFuture(Source.single(x).via(flow).runWith(Sink.seq)).map(_.toList)
пойдёт
или Await

Denis
12.01.2018
09:54:30
возвращаясь ко вчерашнему вопросу, нельзя имея A => Task[B] получить Task[A => B]

Nikita
12.01.2018
09:55:25
Эвейт я не буду делать, пытаюсь от него уйти как раз

Alexey
12.01.2018
09:55:32

Google

Denis
12.01.2018
09:55:44

Oleg
12.01.2018
09:55:55
ну как... нельзя

Alexey
12.01.2018
09:56:04
лель

Denis
12.01.2018
09:56:07
вчера уже проходили ))

Oleg
12.01.2018
09:56:14
возвращаясь к твоему собственному ответу, в еррор монаде можно всё

Denis
12.01.2018
09:56:17
зависит от законов

Nikita
12.01.2018
09:56:29
А вот мне вчера подсказали
Если у тебя есть функция
f: A => F[B]
То нужны инстансы:
a: Applicative[F]
t: Traverse[Function[A, ?]]
val res = t.sequence(f)(a)

Denis
12.01.2018
09:57:45

Oleg
12.01.2018
09:58:56
не обязательно

Admin
ERROR: S client not available

Oleg
12.01.2018
09:59:03
можно ещё Functor и Distribute
на самом деле есть несколько комбинаций, превращающих F[G[A]] в G[F[A]]
https://hackage.haskell.org/package/distributive-0.5.3/docs/Data-Distributive.html
одна из них - это F ~ G

Kirill
12.01.2018
10:02:18
А как можно в Скала Макро проверить тип (TypeTree) на соответствие ограничению (что он наследует определенный родительский класс)?

Oleg
12.01.2018
10:02:40
рефлект?

Vic
12.01.2018
10:03:07

Oleg
12.01.2018
10:03:17

Google

Kirill
12.01.2018
10:03:18

Oleg
12.01.2018
10:04:23
В котах есть?
https://oss.sonatype.org/service/local/repositories/snapshots/archive/org/scalaz/scalaz_2.12/7.3.0-SNAPSHOT/scalaz_2.12-7.3.0-SNAPSHOT-javadoc.jar/!/scalaz/Distributive.html

Vic
12.01.2018
10:04:54

Denis
12.01.2018
10:05:59
https://akka.io/blog/news/2018/01/11/akka-2.5.9-released-2.4.x-end-of-life

Vic
12.01.2018
11:01:22

Nikita
12.01.2018
11:09:15

Oleg
12.01.2018
11:17:57

Denis
12.01.2018
11:21:51
:)
чтд

Oleg
12.01.2018
11:24:08
Но для таска можно написать в общем-то дистрибутив
Через Await
Если добавить Await runAsync, Task ~ Id
Который дистрибутивен, очевидно

Eugene
12.01.2018
11:26:39
странно, компилятор понимает что Id[List] это List, но при этом не пускает его в random.shuffle, который ожидает List
[error] found : scalaz.Scalaz.Id[List[java.util.UUID]]
[error] (which expands to) List[java.util.UUID]
[error] required: CC[T]
[error] state.random.shuffle(opponents2)
а если явно указать тип
val opponents: List[UUID] = env.matchmakingRepository.findOpponents[Id](state.serverTime)
то все получается
как-то можно избавиться от явного указания типа? как думаете?

Denis
12.01.2018
11:30:23
А серверТайм какой тип?
Он врапнут в Айди?

Eugene
12.01.2018
11:31:19
ну это не имеет отношения к выводу типа ))
считай что там может быть все что угодно
вообще это jodatime в обертке от nscala_time

Denis
12.01.2018
11:32:15
Ну сам компилятор Id не подставит

Eugene
12.01.2018
11:32:17
врапнут в монаду только ответ, в данном случае враппером является Id монада