@scala_ru

Страница 777 из 1499
Vadim
28.06.2017
14:04:00
end.flatMap(_ => system.terminate()) ?
Не, не прокатит. Я же говорю, что app не должен знать ни о каких акторах)

Daniel
28.06.2017
14:04:18
почему сатанистка?
жаргон у меня в отделе такой)

Alex
28.06.2017
14:04:23
scientist -> cаентист -> сатанист

Arthur
28.06.2017
14:04:24
спряч под абстракцией)

Google
Oleg
28.06.2017
14:04:38
только с мягким знаком

darya
28.06.2017
14:06:49
Интересно, стоит посмотреть) А то, наверно, питона и r недостаточно для data science)

Oleg
28.06.2017
14:07:32
trait Execution{ def terminate(): Future[Unit] } ... object MainApp{ val progEnd = end.flatMap(_ => execution.terminate()) }

Daniel
28.06.2017
14:07:35
Интересно, стоит посмотреть) А то, наверно, питона и r недостаточно для data science)
для меня это удивительный факт оказался, но вот по её словам есть алгоритмы не реализованные в попсовых питонвских либах

Vadim
28.06.2017
14:07:35
спряч под абстракцией)
типа serviceA.shutdown? ) Так то можно, только это будет доп. нагрузка на потребителя - не забыть вызвать магический метод shutdown.

Vadim
28.06.2017
14:08:23
Oleg
28.06.2017
14:08:42
ты либу пилишь или прогу?

darya
28.06.2017
14:08:50
Пандас ограничивается только сглаживанием временныз рядов :)

Google
Alex
28.06.2017
14:10:21
холт-винтерс пишут в экселе есть :D

Vadim
28.06.2017
14:10:49
ты либу пилишь или прогу?
Вообще прогу. Но мне интересен правильный путь. То есть управление ЖИ компонентов. Например, в Spring его DI сам все делает за нас) Сам создает компоненты, сам же их и уничтожает)

Daniel
28.06.2017
14:12:23
Вообще прогу. Но мне интересен правильный путь. То есть управление ЖИ компонентов. Например, в Spring его DI сам все делает за нас) Сам создает компоненты, сам же их и уничтожает)
подозреваю, что там надо регистрировать случаи с очисткой ресурсов, чтобы это работало и это не отличается от варианта предложенного выше

darya
28.06.2017
14:13:27
холт-винтерс пишут в экселе есть :D
ну, Эксель весьма не популярен на форумах у сайнтистов))

Vadim
28.06.2017
14:14:05
подозреваю, что там надо регистрировать случаи с очисткой ресурсов, чтобы это работало и это не отличается от варианта предложенного выше
Именно так, но там сам Spring вызывает эти методы очистки у каждого компонента. То есть третье лицо. Сама программа этим не занимается

Alex
28.06.2017
14:14:05
а разве оно используется для чего то кроме временных рядов?

Oleg
28.06.2017
14:15:09
Вообще прогу. Но мне интересен правильный путь. То есть управление ЖИ компонентов. Например, в Spring его DI сам все делает за нас) Сам создает компоненты, сам же их и уничтожает)
лайфтайм контекст можно сделать через CPS типа object ActorSystemExecution extends ExecutionService{ def apply[T](actions: Execution => Future[T]): Future[Unit] = { val system = ... val execution = ... for { _ <- actions(execution) _ <- system.terminate() } yield () } }

Oleg
28.06.2017
14:17:24
или то же самое scalaz.ContT[Future, Unit, Execution]

Daniel
28.06.2017
14:18:15
cps не будет ли из пушки по воробьям?

если это что-то долгоживущее, то вероятно придется всю логику перелопатить

Oleg
28.06.2017
14:19:36
зачем?

не нужно всё делать через CPS

Daniel
28.06.2017
14:20:28
что тогда actions? представляю как вызовы апи пока

Oleg
28.06.2017
14:20:55
ну что-то, что подсунет "пользователь сервиса"

учитывая, что пользователь этот верхнеуровневый

внутри ничего переписывать не нужно

можно юзать всякие monix.Task и

они ленивые, там и континюэйшнов не нужно

A
28.06.2017
14:22:50
https://vk.com/apiclub?w=wall-1_340421 лёгкие деньги

Google
Alex
28.06.2017
14:23:55
чо, не прошло 10 лет как вконтакт сделал свой фаерхоуз?

A
28.06.2017
14:24:34
ну пока они Дурова выпи,;.;.ли, пока то, пока сё

Vadim
28.06.2017
14:25:05
лайфтайм контекст можно сделать через CPS типа object ActorSystemExecution extends ExecutionService{ def apply[T](actions: Execution => Future[T]): Future[Unit] = { val system = ... val execution = ... for { _ <- actions(execution) _ <- system.terminate() } yield () } }
Наверное проще будет выставить как входное требование для сервиса, чтобы ему предоставили actor system. Пусть вызывающий беспокоится о создании и его завершении)

Daniel
28.06.2017
14:26:10
ну что-то, что подсунет "пользователь сервиса"
если это сервис какой-то, который периодически дергают, то получается пользователь уже должен сделать свой хук, который будет последним в вычислениях не оч гуманно, имхо

Oleg
28.06.2017
14:26:19
Но если управление ресурсами - это насущная проблема, нужно думать общее решение

Daniel
28.06.2017
14:27:18
из вопроса не понятно

может имеется ввиду аккуратная остановка приложения

Vadim
28.06.2017
14:29:08
Да я собственно вопрос задавал в контексте DI. Обычно DI framework сам отвечает за управление ресурсами - создание и освобождение компонентов. Но если делать DI без framework, а на чистом trait-based, то получается нет третьего, который это сделает за нас.

Пример с actor system - это пример, когда нужен корректный останов компонента

Daniel
28.06.2017
14:31:02
это странный пример, имхо не знаю зачем оно нужно без остановки приложения

Oleg
28.06.2017
14:32:00
ActorSystem - это ещё и все плагины к ней, к примеру Http, c кучей буферов

Vadim
28.06.2017
14:32:41
почему странный? когда приложение останавливается, кто-то же должен подчистить ресурсы. Если сама прога не создает компонент actor system, то и не ей его освобождать

Oleg
28.06.2017
14:32:42
в 100 из 100 случаев, что я помню, соглашусь с Совой, все системы тушились только вместе с приложением

Vadim
28.06.2017
14:33:45
Правильно, я и хочу потушить. Только вот кто должен тушить, если используется DI.

Oleg
28.06.2017
14:34:06
У тебя есть необходимость убить систему, оставив приложение работать?

Vadim
28.06.2017
14:34:46
main app которое вызывает метод у сервиса, получает значение, пишет на экран и завершается.

Google
Oleg
28.06.2017
14:34:53
Или дождаться останова системы и т.п.

Daniel
28.06.2017
14:35:09
можно рассмотреть вопрос без акторов, тогда все что выше написали является ответом в общем случае вариант с трейтом примитивная версия спринга вполне (можно наворотов приделать и будет еще больше похоже) ограничения к компонентам в любом случае будут применяться, чтобы это работало

Oleg
28.06.2017
14:35:52
А этот ваш Spring DI он может дожидаться чьего-то завершения асинхронно?

Вообще покажите мне DI, который это может

Который понимает, что есть ресурсы, которым нужно послать сигнал завершения, и асинхронно дождаться сигнала об окончании

Мне кажется, это всё-таки вопрос интерфейса компонент

Vadim
28.06.2017
14:37:33
у него хук на завершение проги. Когда он срабатывает, он проходится по созданным ИМ компонентам и вызывает у них методы очистки.

Сама прога этим не занимается

Admin
ERROR: S client not available

Vadim
28.06.2017
14:38:45
Да, в потоке main. Дело в том, что main выполняется в конетксте Spring

Oleg
28.06.2017
14:39:04
Тогда в чём фишка, terminate мгновенно вернёт, а awaitTermination задепрекейчен

Это значит, что никаких гарантий graceful ности ты не имеешь

Vadim
28.06.2017
14:41:54
Это так. В Spring я actor не использовал. Не могу сказать, как он отрабатывает случаи, когда очистка не может завершиться прям сейчас.

Diemust
28.06.2017
15:14:15
а есть какой-то просто способ отложить выполнение фьючи без Thread.sleep и блокировки потока?

Oleksandr
28.06.2017
15:15:41
да, task

A
28.06.2017
15:25:32
scalacheck можно как-то ограничивать в ресурсах?

3 ядра сжирает (

folex
28.06.2017
15:30:25
А никто не знает, в идее нельзя сразу нескольким методам/полям проставить тип?

через мультиселект не работает :(

Google
Mikhail
28.06.2017
15:41:17
фигачишь скаламетовскую аннотацию, у тебя слева появляется кнопулька - развернуть

Oleg
28.06.2017
15:41:35
но это смотря в каком языке

Grigory
28.06.2017
16:53:10
не блокируют телеграмм, официально

https://lenta.ru/news/2017/06/28/vnesen/

Pavel
28.06.2017
16:59:23
свежий дамп БД ??

A
28.06.2017
17:14:39
исходники

Aleksey
28.06.2017
19:02:56
Выпуск #23 - Мета-выпуск c Евгением Бурмако http://scalalaz.ru/series-23.html

Андрей
28.06.2017
19:13:53


Grigory
28.06.2017
19:17:40
Точное разрешение можно?

Андрей
28.06.2017
19:17:52
ETA 1m

2560x1600 59.97*+

Grigory
28.06.2017
19:29:49
не маке такого чет нет; есть советы как это воспроизвести?

Андрей
28.06.2017
19:34:06
Element viewer в любом браузере, кнопка mobile view и там сustom response Zoom в любом браузере (ctrl+\+)

Mikhail
28.06.2017
19:36:46
Element viewer в любом браузере, кнопка mobile view и там сustom response Zoom в любом браузере (ctrl+\+)
ты тогда уж и сразу скажи как именно это фикситься. это будет проще

Nick
28.06.2017
19:37:04
Grigory
28.06.2017
19:37:28
Да я ж говорил как воспроизвести
Я чет пропустил просто

Спс

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