
Kirill
22.10.2018
07:12:19
нет

Alexandr
22.10.2018
07:13:39
нет
метод fillData покажите как объявлен

Kirill
22.10.2018
07:14:02
@CallSuper
open fun fillData(data: Data, position: Int, isEnabled: Boolean) {
override fun fillData(data: ProfPeriod, position: Int, isEnabled: Boolean) {

Google

Andrey
22.10.2018
07:14:47

Kirill
22.10.2018
07:15:33
override fun fillData(data: ProfPeriod, position: Int, isEnabled: Boolean) {
super.fillData(data, position, isEnabled)
startAt = data.start?.toMonthYear()
ends_at = data.end?.toMonthYear()
fillPeriods()
itemView.btn_del.isVisible = isDeletable(position)
itemView.divider_del.isVisible = isDeletable(position)
}

Alexandr
22.10.2018
07:15:36
fillData (Lcom/yamagoo/android/yamagoo/domain/dao/user/ProfPeriod;IZ) - так компилятор ругается на метод с одним параметром типа ProfPeriod

Kirill
22.10.2018
07:16:41
как понять, что конкретно ему не нравится

Alexandr
22.10.2018
07:18:01
спросить в слаке, там сидит народ, который пишет компилер. либо завести таск на ютреке, похоже на баг
туда же прикрепить код, который приводит к ошибке

Kirill
22.10.2018
07:18:28
оки, спасибо

Жабра
22.10.2018
08:00:54
А рекурсию в suspend-функции и раньше нельзя было делать? Или это сейчас сломалось?

Alexandr
22.10.2018
08:02:29
А как ругается?

Жабра
22.10.2018
08:03:57
А как ругается?
А, нашёл проблему. Ругается если вызывать coroutineScope { ... }
Пишет
Type checking has run into a recursive problem. Easiest workaround: specify types of your declarations explicitly

Alexey
22.10.2018
08:04:41

Жабра
22.10.2018
08:10:42

Google

Alexey
22.10.2018
08:24:01
и так и так будет ругаться, потому что при рекурсии тип обязателен

Жабра
22.10.2018
08:24:40

Alexey
22.10.2018
08:25:15

Жабра
22.10.2018
09:20:25
А как сейчас прицепить какой-нибудь обзёрвер, который вызовет определённый код, когда Job будет отменён? Вижу invokeOnCompletion, но это не то.

Sergey
22.10.2018
09:39:38
чуваки, такой вопрос: на сколько в среднем у людей с бекендов все ок с пониманием того что такое неблокирующие операции?

Yuri
22.10.2018
09:44:47
в среднем по любой теме обычно все плохо

Алексей
22.10.2018
09:45:40
Эт как...

Денис
22.10.2018
10:07:47

Sergey
22.10.2018
10:08:36

Денис
22.10.2018
10:09:20

Andrey
22.10.2018
10:32:08

Sergey
22.10.2018
10:37:18
андроидщики точно знают что будет если заблочить главный поток, а вот что такое неблокирующий IO я не уверен)

Andrey
22.10.2018
10:38:10

Quantum Harmonizer
22.10.2018
10:41:54

Pavel
22.10.2018
10:58:58

Sergey
22.10.2018
10:59:34

Quantum Harmonizer
22.10.2018
10:59:55

Mikhail
22.10.2018
11:26:05

Google

Sergey
22.10.2018
11:26:51

Mikhail
22.10.2018
11:27:30
все операции блокирующие, так проще
и на большинстве проектов профита от перехода на неблокирующие либы не будет

Quantum Harmonizer
22.10.2018
11:32:35

Mikhail
22.10.2018
11:33:53
ну если стало быстрее, то можно было просто потоков добавить в жавовом приложении

Alexandr
22.10.2018
11:34:56
в том числе на базу
например если запрос отрабатывает секунд по 10-15)

Mikhail
22.10.2018
11:36:37
если запрос в базу обрабатывается 10 секунд, то переход на неблокирующую либу это никак не изменит

Alexandr
22.10.2018
11:38:03

Sergey
22.10.2018
11:38:06
зависит от приложения канеш, но в целом если без боли можно неблокирующие юзать - то почему бы и нет

Alexandr
22.10.2018
11:38:45
я переводил на completable feature спринговое приложение, немного профита было
*это был 2015-2016(не помню)

Sergey
22.10.2018
11:40:34

Mikhail
22.10.2018
11:41:00
почему же? если поток вернется в пул?
вернулся, забрал новый запрос на обработку, снова пошел в базу, все упирается в базу, профит будет если есть другие типы запросов, желательно вообще без базы

Alexandr
22.10.2018
11:42:02

Mikhail
22.10.2018
11:42:16

Sergey
22.10.2018
11:42:42

Google

Sergey
22.10.2018
11:43:08
а если корутинки... то тут что блокирующий, что неблокирующий код. все равно одинаковый будет
но так то ты прав да

Mikhail
22.10.2018
11:45:48
неблокирующий код тоже бывает разный, самое тупое - отдельный пулл потоков, задача выполняется типа асинхронно, в результате имеем оверхехед на переключение контекста и производительность меньше, чем у блокирующего варианта

Sergey
22.10.2018
11:47:30
с ktor щас так и происходит, из netty worker -> default dispatcher прыгает постоянно

Mikhail
22.10.2018
11:48:30
я заморочился и сделал неблокирующую работу с базой из того же потока, который и хттп запрос выполняет

Sergey
22.10.2018
11:52:21
вот что мне нравится с последними оптимизациями, у корутин диспатчер для CPU и IO юзают один пул. и если нужно выполнить IO операцию, то он не будет переключаться на другой поток

Mikhail
22.10.2018
11:56:49
интересно, как это работает.. io обычно ждать нужно

Admin
ERROR: S client not available

Mikhail
22.10.2018
11:57:21
даже если оно неблокирующее, все равно поток должен ждать эвентов на чтение/запись

Sergey
22.10.2018
12:04:34
shared pool?
он поток забирает себе как IO и разрешает для CPU зашедулить новый поток, если не хватает
https://github.com/Kotlin/kotlinx.coroutines/issues/261 тут хорошо описано

Nameless
22.10.2018
12:31:59
чотенько

Quantum Harmonizer
22.10.2018
12:33:27
ОФИГЕВАТ
Видел, что ты форкнул драйвер. Удивляюсь, что прошло совсем немного времени с того момента.

Nameless
22.10.2018
12:34:14
ОФИГЕВАТ
в vertx возможно что из того же потока все и работает, просто абстракций больше
(инфа не сотка)

Mikhail
22.10.2018
12:36:46

Марат
22.10.2018
12:41:47
Кто может подсказать ide под постгрес на мак?

Google

Kirill
22.10.2018
12:42:07
datagrip

Марат
22.10.2018
12:42:08
Чет инет покопал, ничего путного
Ей щас пользуюсь
Но нашел такую штуку что она отображает не все таблицы и вьюхи в схеме

Quantum Harmonizer
22.10.2018
12:43:38
DBeaver

Паша
22.10.2018
12:46:25

Dmitry
22.10.2018
12:49:21

Марат
22.10.2018
12:49:45
Это я делаю
И из схемы которую выбрал подтягиваются например 10 таблиц, а по факту их 15
Ну ладно, тут не этому тема посвящена, спасибо за помощь )

Denis
22.10.2018
13:48:44
Ну ладно, тут не этому тема посвящена, спасибо за помощь )
Добрый день.
у меня есть Абстрактный презентер`и `Презентер А.
Презентер А
наследуется от
. В конструктор абстрактного презентера нужно передать класс, который инжектится с помощью даггера в теле
презентера А
. Подскажите, как это реализовать? сделать
@inject constructor```в ```презентере А
?
или можно как-то по-другому сделать?

Mikhail
22.10.2018
13:49:43

Denis
22.10.2018
13:52:38

Mikhail
22.10.2018
13:53:05
угу

Denis
22.10.2018
13:54:29
угу
а если в конструкторе презентра А есть еще другие переменные, которые не нужно инжектить
всё норм будет?)
т.е. они просто передаются туда без инжектинга

Mikhail
22.10.2018
13:55:15
где они передаются?
будет не норм
вот вы где передаете, вот туда и инжектите