@scala_ru

Страница 673 из 1499
Anatoliy
18.05.2017
10:37:19
Сейчас просто смотрю - вроде не видно..

Aleksey
18.05.2017
10:37:50
Нет.

Wystan
18.05.2017
10:38:21
Какова она скала в Тинькове?
А много свалило скалистов за последние два года?

Google
Wystan
18.05.2017
10:39:22
Я как минимум троих видел. Думаю, повезло мне или тенденция.

Wystan
18.05.2017
10:39:49
Да, один в сингапуре, два других в европке

Oleg
18.05.2017
10:40:19
Может, наши просто самые заметные

Anatoliy
18.05.2017
10:40:36
Нет.
Хорошо, спасибо, дальше буду думать тогда

Mikhail
18.05.2017
10:42:33
Есть возможность пропустить поле? Парсинг не интересует от слова совсем. Нужно просто пропустить одно поле(ActorRef в моем случае) Есть для этого возможность?)
возьми хенкан. сделай вью-кейс-класс (пропуская ненужные поля) для основного и красиво приводи одно к другому ван операндом)

Anatoliy
18.05.2017
10:43:18
Ну так это и остается) Просто не думал что пропуск поля не предусмотрен)

KrivdaTheTriewe
18.05.2017
10:43:22
Anatoliy
18.05.2017
10:44:07
Просто не могу удалить это поле, по нему сверка идет, а вот вывод должен быть без него(

Юрий
18.05.2017
10:46:06
Просто не могу удалить это поле, по нему сверка идет, а вот вывод должен быть без него(
Мне кажется, ты что-то делаешь не так. Зачем сериализовать что-то, что содержит ссылку на акторреф?

Anatoliy
18.05.2017
10:47:10
Мне кажется, ты что-то делаешь не так. Зачем сериализовать что-то, что содержит ссылку на акторреф?
он у меня завязан на вебсокет и работает с открытой страницей пользователя. я по нему определяю что это именно уникальная открытая страница. т.е. урлы могут быть одинаковыми, а вот актор будет отличаться

Google
Anatoliy
18.05.2017
10:47:14
или не правильно делаю?

Mikhail
18.05.2017
10:47:55
или не правильно делаю?
вынеси просто реф из модели сериализации. это практичнее)

Юрий
18.05.2017
10:48:02
без контекста сложно понять

Mikhail
18.05.2017
10:48:30
как?
Ref( ref, model) - утрированно конечно)

Anatoliy
18.05.2017
10:49:09
у меня есть case class tmp(ActorRef, String, Map[ActorRef, String]) Вот мне надо вывести получается tmp2(String, List[String])

Mikhail
18.05.2017
10:51:31
у меня есть case class tmp(ActorRef, String, Map[ActorRef, String]) Вот мне надо вывести получается tmp2(String, List[String])
как именно тебе надо сделать - без контекста не сказать. это довольно абстрактный кейс класс. по нему вобще нет нужды что-либо сериализовывать)

Anatoliy
18.05.2017
10:52:21
собственно всё. просто пропуск одного из полей при выводе

Юрий
18.05.2017
10:52:52
Anatoliy
18.05.2017
10:53:19
А зачем тебе его выводить?
вывод пользователей и какие у них открыты страницы

Юрий
18.05.2017
10:53:36
у тебя явно смешаны в одном месте доменные данные и технические данные

сделай явное разделение и проблем не будет

твоя доменная сущность не должна содержать ссылку на актор реф.

Anatoliy
18.05.2017
10:54:56
сделай явное разделение и проблем не будет
просто первый case class содержит в себе активных пользователей и их страницы. И я с ними работаю. Если я хочу просто выдать часть этих данных, просто без актора, я не могу что ли это сделать? странно честно говоря..

Юрий
18.05.2017
10:56:01
активные пользователи и их страницы - это доменные данные. Актор реф не должен быть ВНУТРИ них.

Anatoliy
18.05.2017
10:58:02
эм... видимо я действительно что-то не понимаю... зачем эти данные дублировать если они находятся в одном месте?

Юрий
18.05.2017
10:58:16
затем, что это разные слои

Anatoliy
18.05.2017
10:59:02
Хорошо, где тогда можно прочитать про это? Какие они вообще могут и какой за что отвечает? Если можно - с примерами?

Юрий
18.05.2017
10:59:27
Ты проходил курс на курсере? Там про что-то такое упоминают

Google
Anatoliy
18.05.2017
11:00:26
хм... честно говоря не помню там такого... но это единственное место где рассказывают про слои? ведь я правильно понимаю что они вообще не привязаны к языку?

Юрий
18.05.2017
11:01:36
там на это не акцентируют большого внимания. Но вообще всё довольно просто - сделай доменную модель со своими сущностями и уже от нее пляши. А всякие актор рефы - это чисто техническая часть, которая не относится к ней. Она должна быть сбоку

Anatoliy
18.05.2017
11:03:08
Видимо придется... просто не понимаю зачем фактически дублировать данные... ведь это именно дублирование будет...

Aleksander
18.05.2017
11:04:28
https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html

Anatoliy
18.05.2017
11:07:12
покажи код, так будет понятнее
browser ! Json.obj("type" -> "showActiveUsers", "data" -> Json.arr( activeUsers.map { user => Json.obj("login" -> user.login, "pages" -> Json.arr(user.browsers.map(_._2)) ) } ) ) В общем я такое хотел сделать

Юрий
18.05.2017
11:07:53
покажи класс activeUsers

Anatoliy
18.05.2017
11:08:39
protected[this] var activeUsers: scala.collection.mutable.Seq[ImAlive] = scala.collection.mutable.Seq.empty[ImAlive]

case class ImAlive(login: String, user: ActorRef, var browsers: Map[ActorRef, String])

Юрий
18.05.2017
11:11:55
постой, а как ты собрался browseers отдавать?

там же тоже реф

Anatoliy
18.05.2017
11:13:09
так я и не хочу отдавать ActorRef

Mikhail
18.05.2017
11:13:24
Видимо придется... просто не понимаю зачем фактически дублировать данные... ведь это именно дублирование будет...
данные и не нужно дублировать. нужно композировать. ты композитор или обезьянка код набирающая? ) просто отделяй мух от котлет. можешь их класть в один холодильник, в один отсек (более общая служебная модель хранящая связанные ссылки на более простые модели) - но в разные пакетики(кейс классы). да - на обслуживающие джоины этих данных у тебя прибавиться памяти, но это будут ссылки на существующие экземпляры.

Oleg
18.05.2017
11:14:39
вот
всё потому что тебе нужен data class

now official on android

Юрий
18.05.2017
11:18:20
case class ImAlive(login: String, user: ActorRef, var browsers: Map[ActorRef, String])
Можно сделать еще один кейс класс, и для него уже сериализацию: case class Ololo(login: String, browsers: Seq[String]) И перегонять из твоего в этот

но вообще, что-то у тебя в коде точно не то

Sergey
18.05.2017
11:19:26
Может, наши просто самые заметные
где на ваших можно посмотреть? код/публикации/выступления?

Google
Oleg
18.05.2017
11:20:15
где на ваших можно посмотреть? код/публикации/выступления?
на гитхабе есть, на фпконфе был доклад про макрокеш, Марина там регулярно рассказывает про Аэроспайк ДСЛ

Sergey
18.05.2017
11:20:44
на гитхабе есть, на фпконфе был доклад про макрокеш, Марина там регулярно рассказывает про Аэроспайк ДСЛ
кинь в меня парой ссылочек если не трудно, особенно на Марину с аэроспайком

Sergey
18.05.2017
11:21:34
ок, Марину в принципе нашел, как и либу

клево что в открытом доступе, молодцы

Юрий
18.05.2017
11:21:51
на гитхабе есть, на фпконфе был доклад про макрокеш, Марина там регулярно рассказывает про Аэроспайк ДСЛ
А вы энтерпрайз версию используете? Я посмотрел, там кросс дц репликация только в ней

Daniel
18.05.2017
11:23:12
А вы энтерпрайз версию используете? Я посмотрел, там кросс дц репликация только в ней
нет, комьюнити даже не смотря на два дц проблем нет с обычным мешом

правда дц жирным каналом связаны

в энтерпрайзе есть еще "забавные" фичи аля durable delete

Юрий
18.05.2017
11:24:55
для нас важна кросс дц репликация. Вчера обнаружил, что в аэроспайке есть гео запросы и очень обрадовался этому факту (в кассандре без напильника не сделать), но платная кросс дц репликация вернула меня на землю

Daniel
18.05.2017
11:26:01
в платной версии более продвинутая репликация но стоит проверить, вам может обычного варианта каждый с каждым хватит

Anatoliy
18.05.2017
11:26:59
но вообще, что-то у тебя в коде точно не то
а как тогда должно быть? ну хотя бы в общих чертах?

Daniel
18.05.2017
11:27:11
у нас 2 дц для надежности, поэтому думали еще над вариантом отправлять в оба независимых кластера

Mikhail
18.05.2017
11:27:34
а как тогда должно быть? ну хотя бы в общих чертах?
case class UserLogin(value:String) extends AnyVal case class ImAlive(user:UserLogin, ref:ActorRef) case class Link(value:String) extends AnyVal object BrowsersAlive { def forUser(user:UserLogin):Map[Link, ActorRef] def register(user:UserLogin, link:Link, ref:ActorRef) } object UsersAlive { def forUser(user:UserLogin):Option[ImAlive] } BrowsersAlive("gogi").keys // links BrowsersAlive("gogi").("xyandex") // ref for concrete link это только общее направление. как пример разделения мух и котлет в базовом виде. будет гораздо лучше, чем то, что есть сейчас у тебя

Sergey
18.05.2017
11:29:00
Oleg кстати, для доступа к базе какую либу юзаете? slick, doobie?

Anatoliy
18.05.2017
11:31:01
case class UserLogin(value:String) extends AnyVal case class ImAlive(user:UserLogin, ref:ActorRef) case class Link(value:String) extends AnyVal object BrowsersAlive { def forUser(user:UserLogin):Map[Link, ActorRef] def register(user:UserLogin, link:Link, ref:ActorRef) } object UsersAlive { def forUser(user:UserLogin):Option[ImAlive] } BrowsersAlive("gogi").keys // links BrowsersAlive("gogi").("xyandex") // ref for concrete link это только общее направление. как пример разделения мух и котлет в базовом виде. будет гораздо лучше, чем то, что есть сейчас у тебя
ну это я понял, кроме как зачем нужен Link. Но вообще у меня оно тоже отделено. И создается тоже отделньо и получить тоже можно всё что надо как надо. Просто сейчас хочу именно вывести наружу список активных пользователей. Список - есть. Но он же содержит линки на акторы для обращения к ним. так смысл дублировать класс просто без акторов если можно просто его без них вывести? А обновления и учет и открытых окон и пользователей уже есть?

Google
Nikita
18.05.2017
11:33:07
помнится недавно афир ругал аэроспайк

что он при нетсплитах плохо себя ведет

Daniel
18.05.2017
11:34:56
не совсем недавно, сейчас актуальность не понятна там могли быть потери данных в период от потери соединения до осознания кластером проблемы

сам период около 2 секунд что ли был

Alexander
18.05.2017
12:48:59
Oleg кстати, для доступа к базе какую либу юзаете? slick, doobie?
Slick в tcs, по-крайней мере на тех модулях, что я был

Sergey
18.05.2017
12:49:38
найс, на 3.2.0 переехали?

Alexander
18.05.2017
12:55:29
когда я уходил, потиху мигрировали на 3, так что вероятнее всего

Oleg
18.05.2017
13:16:22
Где-то slick, где-то не slick

У нас вот не slick

Sergey
18.05.2017
13:16:44
doobie?

Oleg
18.05.2017
13:17:19
Своё

Nick
18.05.2017
13:17:53
olejkadb у них

Kirill
18.05.2017
13:18:15
ToxicDB, ты хотел сказать ))

Sergey
18.05.2017
13:24:40
https://github.com/TinkoffCreditSystems/ScalaDatabase это?

Oleg
18.05.2017
13:26:16
Что-то, что видимо, когда-то с этого начиналось

Там же всё синхронно

Nikita
18.05.2017
13:50:24
@gurinderu я для тебя картинку нашел про ломающийся докер - https://scontent-frt3-1.xx.fbcdn.net/v/t1.0-9/18485579_1309166202537291_8268558682155087676_n.jpg?oh=560e41367e04c50e49a0fb7a2a9ae4d4&oe=5976595E

Nick
18.05.2017
14:17:55
@nikitamatveenko это скорее картинка для авторов докера

Alex
18.05.2017
14:22:35
чо там когда уже vagga взлетит

или этот, забыл название, который консорциум из редхата и его друзей пилил

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