@scala_ru

Страница 1217 из 1499
Dmitry
24.01.2018
11:00:54
инсерт не прошел

все, откатилось

Google
Grigory
24.01.2018
11:06:07
Nikolay
24.01.2018
11:06:37
а вы что, думаете что перформанс просядет?

Grigory
24.01.2018
11:06:47
да не, булы вообще рудимент

только боксирование и фолды

Nikolay
24.01.2018
11:06:54
без костра - не тру

Oleg
24.01.2018
11:11:04
Интересно изучить разные варианты. В самообразовательных целях.
https://gist.github.com/Odomontois/f4b9ed4d1bfaf7faa925eed6e567e554 вот сильно упрощённый с Observable при должной сноровке на него можно нацепить любой код с фьючами

Ilya
24.01.2018
11:12:40
@odomontois Спасибо, буду пробовать

Ivan
24.01.2018
11:54:46
Как подружить Spray с LocalDateTime? Error:(48, 44) could not find implicit value for evidence parameter of type JsonSupport.this.JF[java.time.LocalDateTime] implicit val eventFormatter = jsonFormat2(Event) Код Event: case class Event( startTime: LocalDateTime, endTime: LocalDateTime

Код форматтера: trait JsonSupport extends DefaultJsonProtocol with SprayJsonSupport { implicit val eventFormatter = jsonFormat7(Event) }

Nikolay
24.01.2018
11:55:34
нужно написать Format для LocalDateTime если его нет

или импортировать его, если он где-то уже есть

Ivan
24.01.2018
11:57:05
нужно написать Format для LocalDateTime если его нет
А как это может примерно выглядеть?

нужно написать Format для LocalDateTime если его нет
Я правильно понимаю, что нужно написать object, экстендящий RootJsonFormat[LocalDateTIme]?

Google
Nikolay
24.01.2018
12:01:09
да, скорее всего

А как это может примерно выглядеть?
так чтобы ты мог LocalDateTime превратить в строчку, а потом обратно смог распарсить дату

Oleg
24.01.2018
12:03:56
@odomontois monix - модно-молодежно?

насколько это продакшн реди вопрос

Nick
24.01.2018
12:05:47
насколько это продакшн реди вопрос
нормально продакшн реди

Igor
24.01.2018
12:09:02
@odomontois monix - модно-молодежно?
Почти 1 в 1 с rx, вполне-таки годно, только ИМХО, дроч на backpressure с из подходом при Observable.create какой-то, странный, что-ли.

Kirill
24.01.2018
12:17:33
так оно в рамках ConnectionIO транзакционо ж
да, спс, я просто дуби раньше не щупал, хз как там работает

Dmitry
24.01.2018
12:18:09
ну ты собираешь огромную фрю

и исполняешь ее транзактором

тип

Kirill
24.01.2018
12:18:37
Делаете ли вы какой-то промежуточный слой абстракции для таких методов или прямо ConnectionIO возвращаете и наслаиваете?

Dmitry
24.01.2018
12:18:42
а что там делает транзактор зависит от него самого

но в поставке там все в транзакции

Kirill
24.01.2018
12:23:01
каких таких?
Для методов где надо логику отката транзакции группировать, ну например сделал два инсерта друг за другом, если хоть один зафейлился - откатываешь всю транзакцию, после этого сделал еще 3 таким же макаром, но уже например не откатываешь транзакцию, а делаешь что-то другое, это всё - connectionio которые друг на друга наслаиваются или там можно вот так вот как-то группировать и объяснять что вот здесь надо откатить а вот здесь по дефолту?

Dmitry
24.01.2018
12:34:22
возвращает эффект

хочеш IOLite, хочешь Task

и да, эффекты можно композировать

a.
24.01.2018
12:34:54
IOLite же вроде из старых версий?

Google
Kirill
24.01.2018
12:35:11
Я не знаю, я открыл ссылку с житхаба, там 0.4 версия

Dmitry
24.01.2018
12:35:25
ну 0.4 норм

a.
24.01.2018
12:35:27
там две ветки

Dmitry
24.01.2018
12:35:27
но бери 0.5

a.
24.01.2018
12:35:32
лучше 0.5

Dmitry
24.01.2018
12:35:39
там уже cats-effect завезли

Kirill
24.01.2018
12:36:23
Ну короче говоря, эти эффекты, которые представляют собой разные транзакции, я могу скомпоновать, отлично

Oleg
24.01.2018
13:11:37
Почти 1 в 1 с rx, вполне-таки годно, только ИМХО, дроч на backpressure с из подходом при Observable.create какой-то, странный, что-ли.
RX уже продакшн-анреди, старо-плесневелое говно, моникс впереди на пять поколений

Vadim
24.01.2018
13:17:09
господа,не могу в state монаду вкурить.Может у кого были такие проблемы?Есть рекомендации?

Daniel
24.01.2018
13:18:05
Vadim
24.01.2018
13:18:23
Ща подумаю

Vadim
24.01.2018
13:28:08
все,догнал.Сорян

чувство будто бы портал в ад открыл

Daniel
24.01.2018
13:29:19


Oleg
24.01.2018
13:39:16
А в чем такая большая разница?
Ленивость, батч-экзекьюшон, куча ништяков, коты

Igor
24.01.2018
13:43:17
Ленивость, батч-экзекьюшон, куча ништяков, коты
А что под ленивостью подразумеваете?

Oleg
24.01.2018
13:46:30
А что под ленивостью подразумеваете?
Значит, что таск и обсёрвабл - это не штука, которая начинает фигачить свою грязь как только ты её производишь. Это некий чертёж реального эффекта\потока, который запустится, как только его найдёт экзекьютор. Благодаря этому ты получаешь что-то типа referential transparency

sherzod
24.01.2018
13:48:22
можно пояснить, как ленивость даёт referential transparency

Anton
24.01.2018
13:50:07
Так же как IO монада — конструирование Observable не приводит к сайд эффектам, это просто описание вычисления.

Google
sherzod
24.01.2018
13:51:31
а да, понятно, внутри описанного графа у нас есть RT

вообще, что-то в голове сложилось сейчас, то есть всегда когда мы можем описать граф вычислений, без зависимости от того когда и как эти вычисления будут производиться мы получаем RT

Eugene
24.01.2018
13:57:15
ну если функция выкидывает exception, то она уже не RT, хотя ни от кого не зависит

sherzod
24.01.2018
13:57:30
ну предполагая чистые функции, конечно

Eugene
24.01.2018
14:01:40
слушайте, есть идеи как паттерн Listener, когда кто-то постоянно висит и слушает событие и меняет внутренний var (например pub/sub в редисе или изменение ноды в зукипере) оформить в ФП стиле? пока достаточно уродливый кусок кода выходит в прекрасном мире чистых функций

Anton
24.01.2018
14:02:32
Похоже на концепцию агентов: https://doc.akka.io/docs/akka/current/agents.html

Admin
ERROR: S client not available

Anton
24.01.2018
14:02:51
Только в Akka они задепрекейчены и не очень “ЭфПэ”.

Eugene
24.01.2018
14:02:57
Agents have been deprecated сразу в лицо )

Anton
24.01.2018
14:03:41
Но кажется это очень похоже на неблокирующий MVar. Самом недавно о чем-то таком думал, может общественность знает как такая штука может называться?

Хотя если тебе нужно просто получать update по мере доступности, то это MVar и делает.

А мне как раз интересен пример похожий на Agent — асинхронная переменная a la MVar, которая упорядочивает чтения и записи, но не блокирует их.

Alex
24.01.2018
14:12:41
стрим походу да

Vladimir
24.01.2018
14:13:00
т.е. тот же Source.fromQueue или как оно сейчас модно в акке

Anton
24.01.2018
14:13:33
Я знаком только с акковскими но у них жопаболь с взаимодействием с материализованным стримом.

Alex
24.01.2018
14:13:45
дык тот же моникс или fs2

Denis
24.01.2018
14:13:48
там нельзя просто фигачить offer

Anton
24.01.2018
14:14:06
То есть если очень хочется, то поприседать можно, конечно, но в душе свербит ощущение, что должна быть более простая абстракция, может быть в том же monix.

Google
Denis
24.01.2018
14:14:10
надо респектить протокол

Anton
24.01.2018
14:14:22
Но пока ничего подобного не видел.

Alex
24.01.2018
14:14:30
https://oss.sonatype.org/service/local/repositories/releases/archive/co/fs2/fs2-core_2.12/0.10.0-RC1/fs2-core_2.12-0.10.0-RC1-javadoc.jar/!/fs2/async/index.html

Anton
24.01.2018
14:14:50
С offer’ом норм, очевидно что нужно как-то ограничивать количество команд отправленных в переменную, чтобы не лопнуть по памяти.

Vladimir
24.01.2018
14:14:55
на плее делал через такую схема адаптер из актора в sse, оно работало; глубже не лез

Vladimir
24.01.2018
14:15:17
но это был старый плей и старая акка

Alex
24.01.2018
14:15:30
Signal вон: https://oss.sonatype.org/service/local/repositories/releases/archive/co/fs2/fs2-core_2.12/0.10.0-RC1/fs2-core_2.12-0.10.0-RC1-javadoc.jar/!/fs2/async/mutable/Signal.html

Denis
24.01.2018
14:15:40
там контракт что нельзя делать оффер, пока последний офферн не отработал вроде

Anton
24.01.2018
14:15:52
Ну тебе надо значит это как-то координировать
Да нет, как раз тут вариант Акки норм — просто фьюча валится и я могу принять решение ретраить или нет.

Denis
24.01.2018
14:16:37
ок

Vadim
24.01.2018
15:51:49
Ребята не подскажете почему моя маленька фантазия не заработала?

trait Typed[T] { def printType(): Unit ={ print(classOf[T]) } }

Не хочет компелировать

Pavel
24.01.2018
15:54:48
classtag юзай

Vadim
24.01.2018
15:56:48
Да вот что то нарыл, но что то совсем не понятно

sherzod
24.01.2018
16:02:36
что-то такое. надо указать компилятору чтобы он засунул в рантайм инфу о типе abstract class Typed[T: TypeTag] { def printType(): Unit = { print(typeOf[T]) } }

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