
Daniel
19.02.2018
13:44:36

Vadim
19.02.2018
13:47:01
я так понимаю в сбт? в классическом репле скалы точно нету ~console

Grigory
19.02.2018
13:47:34

Google

Grigory
19.02.2018
13:47:38
ну или я что-то путаю

Daniel
19.02.2018
13:48:03

Grigory
19.02.2018
13:50:51
а, с тильдой он просто по :quit будет рестартить консоль подхватывая изменения

Aleksandr
19.02.2018
13:51:06
ииииии. Прод сервера редиса были потрачены

Grigory
19.02.2018
13:51:28

Aleksandr
19.02.2018
13:51:36
сори, не знал

Grigory
19.02.2018
13:51:49
поправь (правый клик мышки, edit)

Alexandr
19.02.2018
13:52:07

Aleksandr
19.02.2018
13:52:28
Где?
тут уж палиться наверно не стоит

Alexandr
19.02.2018
13:53:41
Номер телефона, фотки, ник, редис. Вообще никак не выяснить, о чем речь...

Александр
19.02.2018
13:57:33
рассказывай как сервер потратили

Aleksandr
19.02.2018
13:59:13
рассказывай как сервер потратили
таска - начать складывать бекапы редиса в s3. чувак походу изменил амазоновкий инстанс и по этому поводу амазон пришибил старый (с базой) и намутил новый.

Google

Aleksandr
19.02.2018
13:59:37
комичненько

Anton
19.02.2018
13:59:53
Легко, воздушно, облачно.

Александр
19.02.2018
14:00:16
ну так только бэкапы профукали

Aleksandr
19.02.2018
14:03:01

Alexey
19.02.2018
14:03:14
Еще один день странных вопросов. Представим, что у меня есть достаточно развесистая доменная область - там сотня разных объектов вложенных друг в друга. И есть один топлевел объект. Мне нужно сделать дифф двух инстанцов этих моделей. Какие ключевые слова почитать? Какую теорию?

Oleg
19.02.2018
14:05:00

Alexey
19.02.2018
14:05:40
им генерить такие дифалки?

Oleg
19.02.2018
14:07:07
как вариант
зависит от того, какой конкретно диф ты хочешь
когда ты углубляешься в дифы листов, например, всё становится очень сложно

Alexey
19.02.2018
14:08:06
диф который представляет из себя набор действий который сможет одну модель в другую

Oleg
19.02.2018
14:08:08
и ты хочешь какой-то хорошо типизированный объект, или нет

Alexey
19.02.2018
14:09:35
да, хочется типизированный объект. Задача такая - есть системы с определенным состоянием. Есть желаемое состояние. Нужно сначала описать что нужно сделать чтобы синхронизировать их состояния, а потом - подергать АПИ изменения состояния

Oleg
19.02.2018
14:10:15
и выводил бы для кейз\силд его как labelled generic
а для остальных дерайвил

Alexey
19.02.2018
14:11:35
Написать какой нибудь typeclass
trait Convert[A, B] {
def convert(a: A): B
}
и генерить шаплезом инстансы, но тоже будет боль

Alexey
19.02.2018
14:11:46
норм идея. мне нравится ) первый раз шейплез похоже нужен

Alexey
19.02.2018
14:13:20

Alexey
19.02.2018
14:13:36
не, нужно два одинаковых объекта

Google

Alexey
19.02.2018
14:13:41
Аааааа
ясн
тогда да, что типо того

Alexey
19.02.2018
14:14:26
типа State(a: List[StateA], b: Set[StateB], ...)
и дальше
val existingState: State = ???
val desiredState: State = ???
val migration = diff(existingState, desiredState)

Wystan
19.02.2018
14:15:16

Alexey
19.02.2018
14:15:43
ага... но это уже детали реализации конкретных структурных диффалок
будут ли они оптимальными или нет

Grigory
19.02.2018
14:15:54
я пробовал выводить цепочки преобразований

Alexey
19.02.2018
14:16:06

Oleg
19.02.2018
14:16:09

Alexey
19.02.2018
14:16:39

Grigory
19.02.2018
14:16:45
прост нужно искать композиции разной длины и кроме как полным переборов в обмщем случае это не сделать
надо правила какието и евристики вводить чтобы хоть как-то работало
но вообще оно работает конечно)

Alexey
19.02.2018
14:17:16
не понятно какой Repr только будет, что то типо ('a ->> Lens[A, B]) :: HNil ?

Oleg
19.02.2018
14:17:17

Grigory
19.02.2018
14:17:32
нее совсем
ну я их искал, именно цепочки всевозможных преобразований правда (у мя немног другая цель была мб)
я не вдавался в этот дифф который вы тут обсуждаеие

Alexey
19.02.2018
14:19:16
раз уж вы все в теме - а есть что почитать по теории таких поисков кратчайшего дифа?

Google

Oleg
19.02.2018
14:19:38

Alexey
19.02.2018
14:20:05
сложна

Oleg
19.02.2018
14:20:07
для примитивов какие-то предопределённые

Alexey
19.02.2018
14:20:15
ну для коллекции это же добавить/удалить/обновить, не?

Alexey
19.02.2018
14:20:16
Надо еще понять что за дифы хочется иметь
Просто так делать функцию, которая будет делать из A -> A
это какая то чушь

Grigory
19.02.2018
14:20:49

Oleg
19.02.2018
14:20:53

Alexey
19.02.2018
14:21:01

Oleg
19.02.2018
14:21:18
только, если как в React и подобных решениях делать для Item ов идентификаторы

Alexey
19.02.2018
14:21:18
Ну что ты будешь делать с этим дифом?

Grigory
19.02.2018
14:21:30

Alexey
19.02.2018
14:21:35

Oleg
19.02.2018
14:22:09
Т.е.
implicit listDiff[A: Diffable : Identifiable]: Diffable[List[A]]

Grigory
19.02.2018
14:22:24
а ты возмущаешься тут, см. Алексей так и ответил

Alexey
19.02.2018
14:22:48
Ну это же тупняк, чем это лучше чем просто заменить ссылку

Oleg
19.02.2018
14:22:49
где
sealed trait Identifiable[A]{
type Id
def getId(obj: A): Id
}

Alexey
19.02.2018
14:22:58
То есть по сути то нужен читаемый диф

Google

Alexey
19.02.2018
14:23:16

Alexey
19.02.2018
14:24:01

Grigory
19.02.2018
14:24:20
а дифабл между двумя только дифами нужен то или вообще список дифов нужен?

Wystan
19.02.2018
14:24:33
раз уж вы все в теме - а есть что почитать по теории таких поисков кратчайшего дифа?
Я не в теме, но очень похожая задача решается в probabilistic graphical models в дискретном случае. Там как раз определен некоторый граф, ноды которго с некоторой вероятностью переходят в другие ноды. И одной из задачек как раз является близость графов, как получить один из другого путем преобразований. Но там решения нет ? Там всякие эвристики по типу кластеризации графа, и машинка.

Alexey
19.02.2018
14:24:56
Или тебе надо куски дифа применять?
Как при мерже в гите?

Alexey
19.02.2018
14:25:25

Alexey
19.02.2018
14:25:36
ясно понятно
Тогда на уровне типов тебе это врядли нужно

Grigory
19.02.2018
14:26:10

Alexey
19.02.2018
14:26:11
Тебе нужно что то типа List[Diff]

Grigory
19.02.2018
14:26:13
чо ты такое говоришь
Алексей попробуй! быть может родится amazon-diffless

Alexey
19.02.2018
14:26:49

Grigory
19.02.2018
14:27:04
название хорошее да)

Alexey
19.02.2018
14:27:14