@scala_ru

Страница 1115 из 1499
Nikolay
04.12.2017
13:17:58
сейчас вот такая штука есть

еще можно вроде через ScriptEngine который в JSR

https://stackoverflow.com/a/16883802

что-то типа такого

Google
Nikolay
04.12.2017
13:20:34
я последний раз использовал twitter utils. ScriptEngine тоже пробовал

Eugene
04.12.2017
13:20:48
что в итоге зашло?

Nikolay
04.12.2017
13:21:08
но это чисто для проверки было, я не внедрял нигде на проде это

то есть даже какие-то моменты с удобством и сложностями интеграции я не могу рассказать

Eugene
04.12.2017
13:21:44
ага интересно спасибо, посмотрю в сторону этих либ

Daniel
04.12.2017
13:22:39
jsr223 + scala был очень медленный (3 года назад) не факт что ситуация исправилась

по-моему, была таска в трекере на эту тему, можно поискать

Eugene
04.12.2017
13:23:11
скорость не критичная - операции простые и достаточно редкие

Oleg
04.12.2017
13:46:07
Олег, я правильно понимаю, что с Iterant можно реализовать автозакрытие сессии, после считывания? Iterant[Session, A]? Не совсем понимаю, как это происходит
/** Given a routine make sure to execute it whenever * the consumer executes the current `stop` action. */ final def doOnEarlyStop(f: F[Unit])(implicit F: Sync[F]): Iterant[F, A] /** Returns a new enumerator in which `f` is scheduled to be executed * on [[Iterant.Halt halt]] or on [[earlyStop]]. */ final def doOnFinish(f: Option[Throwable] => F[Unit])(implicit F: Sync[F]): Iterant[F, A

Но это гипотетически

Ну и у Observable куча методов doOn

Alexander
04.12.2017
14:04:34
да, в обсервабле как раз doOnFinish и юзаю

просто не совсем понимаю смысл наличия Session в Iterant[Session, Record]]

Google
Alexander
04.12.2017
14:06:52
чем Iterant отличается от Observable...

Vadim
04.12.2017
14:07:12
https://github.com/dos65/scala_ru_stickers - зашарил пдфки под стикеры с размеченными краями под резку

Nikolay
04.12.2017
14:08:24
https://github.com/dos65/scala_ru_stickers/blob/master/yellow_face.pdf

Oleksandr
04.12.2017
14:08:29
которая сейчас лого чата

Nikolay
04.12.2017
14:08:43
вот этими парнями нужно выкладывать дорожку до конференций и митапов

Oleg
04.12.2017
14:09:40
чем Iterant отличается от Observable...
Если ты не намереваешься ничего такого Session scoped делать, и вся суть - закрыть что-то там после потребления потока, то хватит и Observable

Но просто это не даёт тебе реюзабельности

Alexander
04.12.2017
14:10:34
Alexandru Nedelcu @alexandru 17:09 Observable is push-based with back-pressure (a hybrid), Iterant is pull-based.

Oleg
04.12.2017
14:12:56
А вот запихнуть что-то внутрь Session, которая конвертится в IO через инициализацию какого-то ресурса, запуск всех действий и потом освобождения ресурса - валидный реюзабельный подход

Тогда тебе не нужно on... в Iterant

Vadim
04.12.2017
14:15:07
круто, с листочком бы ещё
а кто автор? кидайте реквесты)

Oleg
04.12.2017
14:15:14
ты делаешь просто определение своего стрима, который возвращает Iterant[Session, E], потребляешь этот стрим, получая Session[Result] и дальше конвертируешь это во всю совокупность действий IO[Result]

Oleksandr
04.12.2017
14:15:29
а кто автор? кидайте реквесты)
не знаю, но картинка классная)

Oleg
04.12.2017
14:16:23
Ну логично было бы. Этим ты как раз и объявляешь, что твой эффект заключается в том, что ты предлагаешь комбинировать действия внутри Session, и предоставляешь какой-то Session[T]{ runSession(...): IO[T] } который создаст новую сессию, запустит всё, что скомбинировано и закроет её. И для того, чтобы можно было туда и простой IO засовывать, реализуешь явно LiftIO[Session]

Grigory
04.12.2017
14:22:05
@dos65 лицензию добавь

Alexander
04.12.2017
14:22:50
дело в том, что мне не надо потреблять стрим, а нужно отдать его выше, а без этого в runSession закрыть её не получится, только onFinish

Vadim
04.12.2017
14:23:31
Google
Андрей
04.12.2017
14:31:34
KrivdaTheTriewe
04.12.2017
15:10:55
spark web framework

Daniel
04.12.2017
15:11:28
creative commons же

Grigory
04.12.2017
15:11:28
какую?)
медийная какая-то криатив подсмотри у @Angel608

Daniel
04.12.2017
15:14:54
только лицензия обычно предполагает что-то свое)

Grigory
04.12.2017
15:31:01
только лицензия обычно предполагает что-то свое)
или отсуствие притензий на нечто не свое?

Daniel
04.12.2017
15:33:44
про такое не слышал

Oleg
04.12.2017
15:50:23
Ты просто делаешь монадку и StreamT на ней

И далее не заботишься о том, как юзер с ними обходится

Потому что потребляя твой StreamT[Session, ...] юзер получает Session[X]

И чтобы юзеру получить из Session[X] какой-то результат, ему нужно будет все эти залифтенные действия как-то запустить

Oleg
04.12.2017
15:52:19
А для этого нужно будет запустить runSession. Другого выхода из твоей монадки нет

А сам по себе StreamT\Iterant\Enumerator из твоей монады тоже выходить не умеет

А в runSession будет вся инициализация, потом все действия, потом вся деинициализация

И даже полученный таким образом IO будет реюзабельный

Просто каждый раз будет создаваться новая и уничтожаться сессия, и чтобы этого не происходило, юзеру нужно будет композить не IO, а Session

Alexander
04.12.2017
15:54:30
но разве Session это монада? Как должна композиция close происходить во flatMap - непонятно, учитывая, что там может быть и стрим и значение

Oleg
04.12.2017
15:55:03
Тебе не нужно делать композицию close

https://gist.github.com/Odomontois/e978d7e6597cb40ebb9299394917c9c0

Google
Oleg
04.12.2017
15:56:55
open и close будут происходить вне flatMap

Внутри ты композируешь действия в форме reader монады, как будто у тебя всё уже инициализировано

И только при runSession инициализируешь, запускаешь, закрываешь один раз

В саму монадку не нужно запихивать стримы

Для стримов используй StreamT\Iterant\Enumerator

Митко Соловец?
04.12.2017
16:12:45
Ребят, вопрос из соседнего чата, почему скалиста не любят Котлин? Боятся?



Mikhail
04.12.2017
16:13:28
прикинуться стеной - не лучший способ доказать что-либо

Admin
ERROR: S client not available

Gleb
04.12.2017
16:13:29
ребят, а объясните плиз, чем плох play. медленный? мало/много настроек? сложный в использовании?

sherzod
04.12.2017
16:15:52
Личное мнение: плох потому что это фреймворк, он диктует структуру приложения. Монструозный, часто нужен просто REST сервис, а он слишком много умеет.

Олег
04.12.2017
16:17:23
Ругать фреймворк за то, что он фреймворк

Sergey
04.12.2017
16:17:28
Что лишнего у Play?

sherzod
04.12.2017
16:17:44
понеслась)

Олег
04.12.2017
16:17:59
Если REST, то есть какой-нибудь Lagom или http://spray.io/

Alexey
04.12.2017
16:18:00
десант холивара высажен: котлин и добивка плеем

Митко Соловец?
04.12.2017
16:18:04
скале не хватает фреймворков уровня спринг

в этом вся проблема

sherzod
04.12.2017
16:18:14
парни, он _мне_ не нравится, он не плох

Google
Daniel
04.12.2017
16:18:15
Олег
04.12.2017
16:18:30
некрофилы в треде
Архивариусы

sherzod
04.12.2017
16:18:31
ага, akka-http

Олег
04.12.2017
16:18:34
Я б попросил

Александр
04.12.2017
16:18:36
Если REST, то есть какой-нибудь Lagom или http://spray.io/
его же закрыли ради akka-http, нет разве ?

Олег
04.12.2017
16:18:44
Daniel
04.12.2017
16:19:00
sherzod
04.12.2017
16:19:04
не закрыли, перенесли, переименовали и отрефактороили

Grigory
04.12.2017
16:20:13
чо там плеем добивать то

Олег
04.12.2017
16:20:16
парни, он _мне_ не нравится, он не плох
Ты написал, что плох, но это так, буквоедство

И вообще, вот чо надо юзать http://ktor.io/quickstart/application.html

Sergey
04.12.2017
16:20:54
Ты написал, что плох, но это так, буквоедство
?По этому и были уточняющие вопросы

sherzod
04.12.2017
16:21:30
Вообще akka-http это мой идеал, абсолютно прозрачно, можешь вмешаться на любом уровне в работу. Используется как библиотека. Канфэтка а нэ библиатэка.

Правда говорят, не сильно производительный, но тут не с play сравнивать.

Nikolay
04.12.2017
16:24:24
ребят, а объясните плиз, чем плох play. медленный? мало/много настроек? сложный в использовании?
не медленный. если нужно сделать какой-то прототип - хорошо подходит. мне не нравятся некоторые выбранные дефолты в нем - например runtime DI, и их либа для json-а. но все это можно заменить

sherzod
04.12.2017
16:26:39
Если попытаться объективно: play для тех кому нужны готовые решения DI тот же, json, cookie, сессии, и тд. и тп. akka-http для тех кто хочет простроить все сам, относительно низкоуровневая штука

капитанство конечно))

Nikolay
04.12.2017
16:27:29
кстати, часто как раз ненависть к play от тех кто хотел http api сделать, и взял play

Needle
04.12.2017
16:29:13
Я взял play исключительно из за того что он мне позволил сосредоточиться на логике игры, избежав вот этого всего про http

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