@scala_ru

Страница 1300 из 1499
Daniel
19.02.2018
13:44:36
в каком репле и какого кода?)
классический скаларепл, классический скалакод

~console попробуй
не сожрало

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

Grigory
19.02.2018
13:47:34
я так понимаю в сбт? в классическом репле скалы точно нету ~console
мне кажется работало раньше ): не помню когда

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

Daniel
19.02.2018
13:48:03
я так понимаю в сбт? в классическом репле скалы точно нету ~console
сейчас сбт, но вообще пофиг, и без тоже ок было б

мне кажется работало раньше ): не помню когда
у меня гребанная тильда в принципе работает по своему хотению

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)

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
Еще один день странных вопросов. Представим, что у меня есть достаточно развесистая доменная область - там сотня разных объектов вложенных друг в друга. И есть один топлевел объект. Мне нужно сделать дифф двух инстанцов этих моделей. Какие ключевые слова почитать? Какую теорию?

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
диф который представляет из себя набор действий который сможет одну модель в другую
ну я бы придумал какой-то trait Diffable[A]{ type Repr def compute(source: A, target: A): Repr def applyDiff(source: A, diff: Repr): A }

и выводил бы для кейз\силд его как 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: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
ага... но это уже детали реализации конкретных структурных диффалок

будут ли они оптимальными или нет

Alexey
19.02.2018
14:16:06


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

но вообще оно работает конечно)

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

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

я не вдавался в этот дифф который вы тут обсуждаеие

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

Google
Oleg
19.02.2018
14:19:38
не понятно какой Repr только будет, что то типо ('a ->> Lens[A, B]) :: HNil ?
все зависит от типа 1) для кейз-класса - это Labelled HList для каждого поля 2) для sealed trait а - это Either[A, U] - где U - это labelled coproduct для каждого подтипа 3) для коллекций - какой-то свой формат, но тоже зависит от Repr для Item

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
Надо еще понять что за дифы хочется иметь
уточни вопрос? дифы как описание как из existing получить desired.

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: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
ясно понятно

Тогда на уровне типов тебе это врядли нужно

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

Grigory
19.02.2018
14:26:13
чо ты такое говоришь

Алексей попробуй! быть может родится amazon-diffless

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

Alexey
19.02.2018
14:27:14
Тебе нужно что то типа List[Diff]
типы все равно нужны, потому что в зависимости от положения в дереве разные АПИ на его изменения.

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