
Андрей
13.08.2018
11:15:31

Dmitry
13.08.2018
11:18:31

Roman
13.08.2018
11:19:02
В idea создаю artifact javafx , он с помощью чего собирает ? с помощью javapackager ?

Dmitry
13.08.2018
11:19:11
Можно конечно гонять сетевые запросы между программами на одном хосте... Но это видимо тру джаваскрипт путь -)

Google

Sergey
13.08.2018
11:19:24
зато скейлится хорошо)

Quantum Harmonizer
13.08.2018
11:20:20
И рано, с самого начала! Когда достаточно одного сервера, оно уже масштабируется на десять, что несомненный плюс!

Sergey
13.08.2018
11:21:00
ну а вообще процессинговую молотилку делать на скриптовых языках это вообще надо быть извращенцем, и тут даже дело не в потоках

I
13.08.2018
11:46:48
ребята есть ли в котлин более лаконичная запись такой конструкции и зачем вообще добавлять два восклицательных знака, ведь проверка уже есть? if (context != null) {
App.get(context!!).applicationComponent().inject(this)
}

Alexander
13.08.2018
11:48:09
Внутри будет non-nullable it
https://kotlinlang.org/docs/reference/idioms.html#execute-if-not-null

I
13.08.2018
11:49:51

Alexander
13.08.2018
11:50:53
context?.let { App.get(it).applicationComponent().inject(this)
}

I
13.08.2018
11:51:07

Bogdan
13.08.2018
12:04:07

I
13.08.2018
12:04:56

Google

Mikhail
13.08.2018
12:15:50

Roman
13.08.2018
12:27:35
Есть задача ограничить потребление озу программой. Помимо -Xmx есть еще какие-нибудь полезные флаги ?
Например заставить gc работать почаще

Quantum Harmonizer
13.08.2018
12:28:20
ну и использовать Java 9..10, конечно

Mikhail
13.08.2018
12:32:36
а есть делегат, чтобы был как lazy, но сбрасываемый?

Vladimir
13.08.2018
12:33:27

Quantum Harmonizer
13.08.2018
12:36:33

Gregory
13.08.2018
12:58:51

Quantum Harmonizer
13.08.2018
13:00:02

Gregory
13.08.2018
13:00:38
Добавлять к списку потребителей памяти в JVM. :)

Alexander
13.08.2018
13:01:29

Beholder
13.08.2018
13:02:03

Quantum Harmonizer
13.08.2018
13:03:05

Konstantine
13.08.2018
13:06:33
В андроиде можно из коробки использовать корутины?
Или надо что-то прикручивать и танцевать еще?

Dmitry
13.08.2018
13:06:54
Можно. Но не нужно.

Anatoly
13.08.2018
13:07:01

Konstantine
13.08.2018
13:07:11

Dmitry
13.08.2018
13:07:32
Попробуй не на продакшне большую логику с корутинами. И тестами.

Google

Dmitry
13.08.2018
13:07:47
Можно псевдо-логику.

Oleg
13.08.2018
13:07:51

Quantum Harmonizer
13.08.2018
13:08:24

Alexey
13.08.2018
13:15:33

Dmitry
13.08.2018
13:18:41
Если писать саспенд самому? Весь код становится в саспендах, очень легко получить гонку, потому что код в одном классе и зачастую в одной функции работает в разных потоках.
Мне кажется это отличный инструмент для написания библиотек, которые будут простыми, но в бизнес логике лучше для многопоточности использовать монады. - рх, фьючи и т.п.
Либо каналы и акторы, но я не пробовал строить на них мобильное приложение.

Quantum Harmonizer
13.08.2018
13:19:29

Ivan
13.08.2018
13:19:56
зачем suspend, когда launch, async/await и т. д.

Alexey
13.08.2018
13:22:12
По канкаренси код на корутинах и футурках, точно отличаться не будет
А футурку люди тестируют без особой попоболи, так что и рутины тестировать ничуть не сложнее

Dmitry
13.08.2018
13:25:23

Quantum Harmonizer
13.08.2018
13:29:52

Alexey
13.08.2018
13:30:28

Quantum Harmonizer
13.08.2018
13:31:02
waat?
Уточню: Future != CompletableFuture

Dmitry
13.08.2018
13:33:16
Ну это же аналог эвейта. Задача может начаться сразу, а синхронно заблокируемся, когда результат нужен. Все от реализации зависит.
Вообщем я пока в поисках правильного пути, но вот так на эвейтах когда начал писать - ничего нормального у меня не получилось.

Mikhail
13.08.2018
13:33:23

Alexey
13.08.2018
13:33:32

Quantum Harmonizer
13.08.2018
13:34:10

Google

Alexey
13.08.2018
13:34:18
Никто коненчо не обязывает Future как таковой быть асихронным

Quantum Harmonizer
13.08.2018
13:35:35

Alexey
13.08.2018
13:36:09

Quantum Harmonizer
13.08.2018
13:36:44

Dmitry
13.08.2018
13:38:07

Alexey
13.08.2018
13:38:37

Admin
ERROR: S client not available

Quantum Harmonizer
13.08.2018
13:39:28
самсунги вообще любюят насовать побольше ресурсов ради маркетинга и наговнять в прошивке

Dmitry
13.08.2018
13:40:31
Мы опять вернулись к мысли о том, что хорошо бы синхронные вызовы саспендить, а не блокировать тред. Хочу монады на корутинах. Но писать саспенд код прямо среди логики - как-то не оч. Как писать руками синхронайз-валотайл в своей логике на джаве.
Андроид приложения не только на новых самсунгах должны работать -(

Quantum Harmonizer
13.08.2018
13:41:26

Dmitry
13.08.2018
13:42:09
Пример чего?

Quantum Harmonizer
13.08.2018
13:42:28

Alexey
13.08.2018
13:42:37
?

Dmitry
13.08.2018
13:43:56
Не знаю, надо думать -) Постараюсь вечером.
Я на самом деле когда про монады думаю, у меня в голове рх всплывает.

Alexey
13.08.2018
13:45:31
Ну написать монаду то я думаю не проблема, надо то предоставить две функции

Dmitry
13.08.2018
13:47:05
Вопрос оч хороший, я вечером прикину псевдокод того, что нужно.

Alexey
13.08.2018
13:59:29
Вопрос оч хороший, я вечером прикину псевдокод того, что нужно.
Если в котлин уже довезли suspend лямбды то как то так можно
!!! PSEVDO KOD ALARM !!!
class CorutineIO<A>(public val run: suspend () -> A) {
fun <B> map(f: (A) -> B): CorutineIO<B> = CorutineIO(suspend () -> f(run()))
fun <B> flatMap(suspend f: (A) -> CorutineIO<B>): CorutineIO<B> = CorutineIO(suspend () -> {
f(run()).run()
})
companion object {
fun <A> pure(a: A): CorutineIO<A>(suspend () -> a)
}
}

Google

Alexey
13.08.2018
14:00:07
Функция сама по себе монада, так чтооооо

Bogdan
13.08.2018
14:00:14

Alexey
13.08.2018
14:01:12
а если еще написать какой нибудь inline + value class, то всё вообще развернётся даже в оптимальный код

Mikhail
13.08.2018
14:08:37
даже нет, ща поточнее ткну
https://arrow-kt.io/docs/patterns/monad_comprehensions/
во, почти скалка жи


Sergey
13.08.2018
14:13:46
привет! подскажите, плз, как в котлине можно рефлексивно получить доступ к методам, которые хранятся не в классе, а просто в котлин файле? не ищется это совсем что то

Bogdan
13.08.2018
14:14:27

Sergey
13.08.2018
14:14:54

Bogdan
13.08.2018
14:15:28

Sergey
13.08.2018
14:15:57
ну вот в kts файле я могу сделать:
val v = this::class.java
v.methods.forEach {
println(it.name)
}
а в просто kt не хочет так почему то

Bogdan
13.08.2018
14:16:37

Sergey
13.08.2018
14:17:58
идея предлагает ссылки на методы, не то, что нужно

Bogdan
13.08.2018
14:18:50