@scala_ru

Страница 347 из 1499
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
Вообще, такой ход выглядит не очень. Твои возвращаемые типы должны отражать действительно то, что может вернутся. Если ты возвращаешь Option, то значит может вернуться и None. Вот я не знал про force и мог бы допустить ошибку, если бы работал с таким кодом.
Соглашусь, но тогда там не было бы force. Но вообще - это просто заплатка что бы просто написать и посмотреть что оно работает, далее я бы это убрал, просто пока надо запустить "просто что-бы работало"

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
нет, не странно. sender - это метод. А tmp - это val.
вар тоже бы подошел) просто есть факт копирования памяти и доки мне кажется тут не при чем)

Anatoliy
19.12.2016
11:42:49
вар тоже бы подошел) просто есть факт копирования памяти и доки мне кажется тут не при чем)
Мда... видимо мнепросто мозгов еще не хватает всё это дело сразу понимать....(

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

Mikhail
19.12.2016
11:49:05
Да это то понятно. Просто я всегда считал что sender() - это хоть и метод но он всегда ссылается на вызывающего. И соответственно париться с этим не надо. А тут оказывается надо...
"ссылается на вызывающего" - это у него семантика такая и она не меняется. а вот существенным является то, что это - метод и соответственно фактически он возвращает какие-то вычислимые ( в конкретный момент вызова) данные

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 пробовали?

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
Отдельный роутинг или поверх директив?
Отдельный на уровне типов. Фактически перенос servant на скалу

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
А откуда берутся возможные варианты кодов ответа?

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
ок

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 было бы точнее

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
Kirill ты ба на скалафидл набросал кусок, проще было бы подправить)
с телефона, как только домой доберусь попробую накатать

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 - то и методы сломаются в компайл тайм

Страница 347 из 1499