
KrivdaTheTriewe
19.05.2017
11:43:42
с кафкой такое прокатывало , собственно

Daniel
19.05.2017
11:44:58
так где здесь компаньон?
он же на класс ссылается

Google

Alexander
19.05.2017
11:45:43
Тут часто на красноту в идее жалуются, но почему то не слышал ни разу чтобы кто-то из чата в плагин контрибьютил. А почему?

Grigory
19.05.2017
11:45:53
а вот это где:
field (class: Aggregator$Word2VecModel, name: $outer, type: class Aggregator)

Aleksei
19.05.2017
11:46:05
не кошерно

Alexander
19.05.2017
11:46:33
Хороший аргумент :D

folex
19.05.2017
11:48:51
А в кошках обвязка над Either убирает проблему с выводом типов при конструкции either?
Например
scala> val a: Either[Int, Long] = (Some(1)).fold(Left(1))(Right(_))
<console>:11: error: type mismatch;
found : scala.util.Right[Nothing,Int]
required: scala.util.Left[Int,Nothing]
val a: Either[Int, Long] = (Some(1)).fold(Left(1))(Right(_))
Или вообще как-то можно это обойти, не делая Left(1): Either[Int, Long]?
Кроме opt.map(Right(_)).getOrElse(Left(1))

Denis
19.05.2017
11:52:14
Там есть asLeft, asRight

Aleksei
19.05.2017
11:52:33
Хороший аргумент :D
Если бы не купленная подписка на идею, я бы уже на атоме сидел =) Все крутые на атоме сидят.

KrivdaTheTriewe
19.05.2017
11:52:36
так где здесь компаньон?
неправильно вопрос поставил , val word2Vec =
spark.broadcast(Word2VecModel(trainedModelFileName)) , поидее я создаю объект в котором Word2Vec явно не проинициализирован до первого вызова, и его сериализовать не нужно, а по факту валится.
криотоже валится

?Ivan
19.05.2017
11:53:36

Grigory
19.05.2017
11:53:41
1. явный транзиент влепи попробуй в конструктор
2. что за Aggregator?

Aleksei
19.05.2017
11:53:48

Google

Daniel
19.05.2017
11:53:48

Alexander
19.05.2017
11:54:05

Aleksei
19.05.2017
11:55:10

Grigory
19.05.2017
11:55:39
да кстате говоря, у меня были случаи когда ленивость на спарке не спасала; (логгер который типа сериализуемый всеравно пришлось помечать транзиентом)

Daniel
19.05.2017
11:57:27
судя по приписке броадкастить надо только Word2Vec

Kirill
19.05.2017
11:57:30
ну когда атом перестанет по 10 секунд запускаться, тогда можно будет поговорить о нем

Grigory
19.05.2017
11:58:24

Alexander
19.05.2017
12:00:36

KrivdaTheTriewe
19.05.2017
12:01:43
1. Логика джоба была расписана в классе.Внутри класса были Определен Word2VecModel . Проблема решилась тем, что вся логика была вынесена в def main () объекта , а Word2VecModel стал топлевел классом. @transient не потребовался @pomadchin @optician_owl спасибо
собственно пока всю логику в мейн не перенесешь, оно пытается сериализовать класс в котором определена логика , даже если ты те объекты которые ты хочешь броадкастить уже вынесены наружу

Daniel
19.05.2017
12:09:28
ну разница то в том, что мейн у тебя статик
по спеке джавовой он сериализуем по определению
если ты работаешь со своими классами, то тогда надо следить, что и куда доставляется

KrivdaTheTriewe
19.05.2017
12:11:41

Nick
19.05.2017
12:20:13

Wystan
19.05.2017
12:20:23
Я как-то две недели по вечерам играл в пинг понг у друга во дворе. И каждый вечер местные синяки обсуждали одну и ту же историю, как один из них подрался с другим синяком из другого двора. Две недели. Одно и то же.
Это я к чему вспомнил. Котлин вс скала, атом вс емакс

Nick
19.05.2017
12:20:56

folex
19.05.2017
12:24:09
Не понимаю, почему так
implicit class OptionOps[T, A <: C, B <: C, C](opt: Option[T]) {
final def foldMy(ifEmpty: => B)(f: T => A): C = if (opt.isEmpty) ifEmpty else f(opt.get)
final def foldMy2(ifEmpty: => B)(f: T => A): C = opt match {
case None => ifEmpty
case Some(v) => f(v)
}
final def foldMy3(ifEmpty: => B, f: T => A): C = if (opt.isEmpty) ifEmpty else f(opt.get)
}
val res: Either[Int, Long] = (Some(2L)).foldMy(Left(1))(w => Right(w)) //compile error
val res2: Either[Int, Long] = (Some(2L)).foldMy2(Left(1))(w => Right(w)) //compile error
val res3: Either[Int, Long] = (Some(2L)).foldMy3(Left(1))(w => Right(w)) //works
А так работает
val res: Either[Int, Long] = if (true) Left(1) else Right(2L)
и как заставить работать? %)

Daniel
19.05.2017
12:28:16
сериализуем?
да, не прав, не сериализуется как раз
по сути поведение похоже на
@transient lazy

KrivdaTheTriewe
19.05.2017
12:28:30

Wystan
19.05.2017
12:28:49

Google

Nick
19.05.2017
12:28:50
@optician_owl а ну да, в каком то смысле lazy)

Daniel
19.05.2017
12:29:35
похожи в плане что заново будут инстанциироваться после десериализации

Nick
19.05.2017
12:30:16

Daniel
19.05.2017
12:30:57
статики, угу

Diemust
19.05.2017
12:31:44

folex
19.05.2017
12:34:07
%)

Dmitriy
19.05.2017
13:02:51

Alex
19.05.2017
13:04:59
"разойдутся наши дорожечки"
чтобы ритм держался

Denis
19.05.2017
13:05:58
ну вторая строчка может и с пропущенного такта начинаться н

Vyatcheslav
19.05.2017
13:08:16
@folexeyy
implicit class OptionOps[T](opt: Option[T]) {
final def foldMy[A, B, C](ifEmpty: => B)(f: T => A)(implicit ev1: A <:< C, ev2: B <:< C): C = if (opt.isEmpty) ifEmpty else f(opt.get)

Daniel
19.05.2017
13:08:29
осталость еще в фа мажор положить

Андрей
19.05.2017
13:10:10

folex
19.05.2017
13:10:11
@arzfreezy эх, сам вывести все равно не может

Sergey
19.05.2017
13:11:00
<% плодит же, но уже deprecated
пишите имплиситы ручками

anton
19.05.2017
13:12:05
коллеги, для нубаса подойдет в кач-ве наглядного примера как нужно делать?
https://github.com/cdiniz/slick-akka-http
или если это то, как не нужно делать, на что посоветуете посмотреть в качестве правильного примера?
(без холивара на тему слика/дуби)

Sergey
19.05.2017
13:13:56
делать что? оформлять репозиторий в гитхабе?

Google

Vyatcheslav
19.05.2017
13:20:05
@folexeyy Плодит, но:
implicit class OptionOps[T](opt: Option[T]) {
final def foldMy[A, B, C](ifEmpty: => B)(f: T => A)(implicit ev1: A <:< C, ev2: B <:< C): C = if (opt.isEmpty) ifEmpty else f(opt.get)
}
val res: Either[Int, Long] = Some(2L).foldMy(Left(1))(Right(_))
этот вариант у меня компилируется в отличие от <:

anton
19.05.2017
13:20:35
а, сорри..
нужно сделать примтивную рестовую апишку для туду-менеджера: писать в базу/читать из базы..
считаем что я первый раз сел что-то такое делать и хочется понять как правильно делать... как там правильно DAL написать, cake pattern для DI применить, ну и то что вместо spray-json нужно взять circe :)

folex
19.05.2017
13:20:36
Верно, жалко только что если убрать явное определение типа, то не компилируется
все равно Nothing выводит

Nikolay
19.05.2017
13:25:12

Daniel
19.05.2017
13:26:17
имхо, в первый раз вообще до лампочки, лишь бы завелось и понятно было

?Ivan
19.05.2017
13:39:26

Henadz
19.05.2017
13:40:03

anton
19.05.2017
13:40:55

?Ivan
19.05.2017
13:41:43

Eduard
19.05.2017
13:41:55

folex
19.05.2017
13:41:58
:DD

?Ivan
19.05.2017
13:42:24
я в общем тоже считаю, что ORM часто нафиг не надо.

Sergey
19.05.2017
13:42:28
как перестать беспокоиться и начать ~жить~ любить слик

Nikolay
19.05.2017
13:43:06

Wystan
19.05.2017
13:55:06
А можно наболевший вопрос. Я тут увольнялся и сдавал лаптоп, попросил удалить мой аккаунт с мака - ну потому что там в хроме куча паролей от сайтиков. На что был дан ответ: "нельзя. все данные на машине - это наши данные. И вообще вы выглядите подозрительно, никто так не делает - отдайте лептоп." На эти словах я послал нахуй этого директора ай-ти департмента. и сел удалять гугл-аккаунт, все данные в скайпо-истории, и на всякий случай все локальные файлы. И

Alex
19.05.2017
13:55:34
на полуслове ноут таки отобрали?

Wystan
19.05.2017
13:55:36
Вопрос, собественно, как вы считаете, действительно ли все данные на рабочем компе - это собственность компании?

Vadim
19.05.2017
13:55:57
это вообще какая-то дичь)

S
19.05.2017
13:56:19
Сам насрал - сам и убирай. Что не так?

Google

Wystan
19.05.2017
13:56:21
Не, случайно отправил. Ну вообще меня разозлила фраза "и вообще вы выглядите подозрительно. отдайте нам свой лептоп" Я думал щас замес начнется

?Ivan
19.05.2017
13:56:31

Wystan
19.05.2017
13:56:44
Допустим, в абстрактном мире поней.

Alex
19.05.2017
13:56:59
ну это стандартная практика, когда я в бельгии начал стирать личные файлы при уходе, меня тоже попросили отойти от компа и больше ничего не нажимать

Vadim
19.05.2017
13:57:09
а зачем ты вообще спрашивал, вместо того чтобы самому все вычистить?)

Wystan
19.05.2017
13:57:33
Я даже не думал, что это такая проблема. думал щас хоп и удалим пользователя

Alex
19.05.2017
13:57:37
на текущей конторе была недавно волна увольнений, там челам вообще сразу аккаунты лочили, чтоб со злости не наломали дров

Grigory
19.05.2017
13:58:00

Wystan
19.05.2017
13:58:15
в следующий раз, поставлю шифрование домашней папки.

Vadim
19.05.2017
13:59:55
а я чего-то не понимаю - или это проблема удалить пользвателя с мака?

Wystan
19.05.2017
14:00:14
Если на маке ты не знаешь админский пароль, то да.

Митко Соловец?
19.05.2017
14:00:35
https://lenta.ru/news/2017/05/18/kotlin/

Wystan
19.05.2017
14:00:38
Или можно было сделать другого пользователя и удалить самого себя? о, кстати, я не подумал

Митко Соловец?
19.05.2017
14:00:46
котлин наносит ответный удар

Wystan
19.05.2017
14:01:31
котлин наносит ответный удар
мы собираем все новости про котли и рассказываем их разом в субботу в 17:00, в 17:15 про го и в 17:30 про хаскель. теперь такой порядок.

KrivdaTheTriewe
19.05.2017
14:02:02

Митко Соловец?
19.05.2017
14:02:14
не в тему
я же про подачу новости
а не про содержание