
Anatoliy
19.12.2016
11:24:09
Да без проблем, просто кусочки вроде маленькие потому кидал так

Aleksei
19.12.2016
11:24:33
да это прост
строчки по длине форматируются и скачет все

Anatoliy
19.12.2016
11:25:10
Так лучше?

Google

Aleksei
19.12.2016
11:26:20
ога

Юрий
19.12.2016
11:28:00
Не делай actor.get. Возвращай Future[Option[ActorRef]]

Anatoliy
19.12.2016
11:31:53
Знаю, но в этом случае(если force=true) всегда вернется ActorRef
В общем у меня sender это: Actor[akka://application/deadLetters] ... Это из за того что он в мапе?

Юрий
19.12.2016
11:32:35
что за force?
а, понял

Anatoliy
19.12.2016
11:33:38
Если смотреть на Sender за пределами map - Actor[akka://application/temp/$a]

Mikhail
19.12.2016
11:34:25
future.map - ты шедулишь выполнение блока и когда именно он выполнится ты не контролируешь. sender() - вызов метода, который вернет сендера в конкретный момент времени вызова (не момент шедула), а ззначит он к тому времени может быть (и скорее всего и будет если у тебя не одно сообщение в столети) совсем отличный от того который был при шедулинге

Юрий
19.12.2016
11:34:37
Вообще, такой ход выглядит не очень. Твои возвращаемые типы должны отражать действительно то, что может вернутся. Если ты возвращаешь Option, то значит может вернуться и None. Вот я не знал про force и мог бы допустить ошибку, если бы работал с таким кодом.

Anatoliy
19.12.2016
11:35:48


Mikhail
19.12.2016
11:37:44
не бывает такого - видно или не видно. иначе бы у тебя не скомпилилось) у тебя происходит вызов метода сендер конкретного экземпляра обьекта
сомневаешься, что именно он делает - тыкни в него с контролом и посмотри что внутри)

Google

Anatoliy
19.12.2016
11:38:58
в общем если до map сделать val tmp = sender() и отправлять в tmp - всё проходит успешно, что на самом деле странно...

Юрий
19.12.2016
11:39:54
про это всё есть в доках :)

Anatoliy
19.12.2016
11:40:39

Mikhail
19.12.2016
11:40:46

Anatoliy
19.12.2016
11:42:49

Mikhail
19.12.2016
11:46:23
Мда... видимо мнепросто мозгов еще не хватает всё это дело сразу понимать....(
так там нечего понимать то. замыкания - это не просто, а очень просто) метод возвращает тебе свойство обьекта в определенный момент времени и естественно, что оно может изменяться с течением времени и функция будет возвращать разные значения. а запоминая внутри вызова метода что-то в переменную ты тем самым порождаешь замыкание именно в рамках конкретного вызова метода - тобишь добавляешь на какую-то область память дополнительную ссылку (которая к тому же не позволит данным уйти в небытие) - соответственно в мапе ты уже дергаешь данные через эту доп ссылку которую ты запомнил в уме - не знаю как еще проще обьяснить)

Anatoliy
19.12.2016
11:47:29

Mikhail
19.12.2016
11:49:05

Anatoliy
19.12.2016
11:56:47
Тэкс... ладно, это сделали и починили, а если брать например schedule?
Он же первый раз сразу выполняется, так? А можно его запустить не сразу а через секунду например?
Угу, прошу пощения, глупый вопрос был

Vladimir
19.12.2016
12:18:49
Вообще надо в сторону готовых биндингов у swagger-scala смотреть

Grigory
19.12.2016
12:22:09
они честно говоря не очень ): ну из моего опыта

Aleksey
19.12.2016
12:22:57
у сваггера вроде бы простая спека? легко написать свой генертор, не? (не пробовал).

Alexey
19.12.2016
12:24:58
А http4s/rho пробовали?

Oleg
19.12.2016
12:35:34

Alexey
19.12.2016
12:36:45

Oleg
19.12.2016
12:36:56
akka-http 10

Alexey
19.12.2016
12:37:25
Отдельный роутинг или поверх директив?

Google

Oleg
19.12.2016
12:38:03

Alexey
19.12.2016
12:38:22
Есть где посмотреть уже?

Oleg
19.12.2016
12:39:23
пока не выкладывал, но постараюсь пробить разрешение, выглядит как-то так

Alexey
19.12.2016
12:41:18
?повтыкаю вечером

Oleg
19.12.2016
12:41:58
сорса нет пока
если внутри команды придём к решению юзать что-то другое, выложу

Alexey
19.12.2016
12:43:23
А откуда берутся возможные варианты кодов ответа?

Aleksey
19.12.2016
12:43:44

Oleg
19.12.2016
12:44:12

Alexey
19.12.2016
12:44:40
Хм. Будет интересно взглянуть.

Oleg
19.12.2016
12:44:43
если нужно что-то добавить совсем своё, можно потом просто в результирующий MkSwagger

Alexey
19.12.2016
12:44:48
Ждём :)

Oleg
19.12.2016
12:44:58
ок

Denis
19.12.2016
12:53:32

Oleg
19.12.2016
12:53:46

Grigory
19.12.2016
12:57:39
мы еще ждем супер тинькофф кеш
?

Oleg
19.12.2016
12:58:11

KrivdaTheTriewe
19.12.2016
13:14:00

Grigory
19.12.2016
13:14:47
неа; пока нет

Google

Alex
19.12.2016
13:14:53
много писать?
such spark, much write?

Admin
ERROR: S client not available

Aleksey
19.12.2016
13:17:31
ЙЙЙЙОООЖ

KrivdaTheTriewe
19.12.2016
13:17:46
вот есть касандра
и есть сриминг
Вроде можно и поженить нормально, а не через одно место :)

Alex
19.12.2016
13:18:34
как говорится, database is a cache of a subset of the log

Denis
19.12.2016
13:19:51
cache of folded subset of the log было бы точнее

Andrey
19.12.2016
14:00:56

Max
19.12.2016
14:04:43
Не, я собирал таской сбт - я просто генерировал их не в target, а в сорсы и думал под версионный контроль положить сгенерированные - видел так в одном проекте(но оказалось что там так сложилось исторически) - и соответственно перегенерация отваливалась

Kirill
19.12.2016
14:45:33
знатоки типов, вопрос - у меня есть некоторый параметризованный трейт, например
MyMap[K, V]
, и классы которые его наследуют, например MyMap1[String, Int] могу ли я сделать некоторый трейт, у которого будет сигнатура что-то вроде
trait MyTrait[F: MyMap[K, V]]
. Хотелось бы чтобы я мог создать нечто похожее -
class A extends MyTrait[MyMap1]
с реализацией методов, использующие K и V, которые подхватились бы из сигнатуры MyMap1. Цель следующая - хотелось бы, чтобы если кто-то пойдёт и сломает сигнатуру MyMap1(поменяет местами String и Int), класс A сломался бы в компайлтайме
Или я совсем охренел и слишком много хочу?

Oleg
19.12.2016
14:47:19
F: MyMap[K, V] это context bound?
их нельзя в трейтах

Kirill
19.12.2016
14:47:48
Ага, мне идея так и сказала. А решение есть?

Mikhail
19.12.2016
14:48:17
эм. F: MyMap[K,V] - тут же помимо контекст баунда имплисит

Grigory
19.12.2016
14:48:35
контекст баунт это шуга для имплисита

Oleg
19.12.2016
14:48:36
контекст баунд и есть имплисит

Google

Alex
19.12.2016
14:48:41
опередили :)

Mikhail
19.12.2016
14:48:47
понаразвели терминов

Grigory
19.12.2016
14:48:54
знатоки))
нельзя импилсит сувать в трейт - у трейта нет конструктора) надо по-другому делать

Mikhail
19.12.2016
14:49:50
Kirill ты ба на скалафидл набросал кусок, проще было бы подправить)

Oleg
19.12.2016
14:50:02
MyTrait - это что такое? как оно связано с MyMap?

Alexey
19.12.2016
14:50:05
Kirill ты расскажи еще что сделать хочешь

Kirill
19.12.2016
14:50:14

Grigory
19.12.2016
14:50:34
конкурс майлз сабин телегрум чатика открыт

Oleg
19.12.2016
14:50:43
и что такое MyMap1?

Kirill
19.12.2016
14:52:26
ща-ща, парни, доберусь - кину в фидл что хочу) зачем - в конце написал, хочу чтобы если кто-то поменял сигнатуру класса MyMap1, то класс, использующий K и V оттуда, сломался бы

Oleg
19.12.2016
14:53:53
trait MyMap[K, V]
trait MyTrait[K, V, MapType <: MyMap[K, V]]{
type Impl <: MapType
}
trait MyMap1 extends MyMap[Int, String]
class A extends MyTrait[Int, String, MyMap1]{
class Impl extends MyMap1
}

Mikhail
19.12.2016
14:54:00
а чем тебя не устраивает
trait MyMap1 extends MyMap[String,Int]
class A extends MyMap1
??? если сломают мап1 - то и методы сломаются в компайл тайм