
Alexander
14.09.2018
12:22:40
Да, логично. Буду добавлять платформные модули
О, как только сделал платформный модуль, тесты сами подцепились
И тут же выяснилось, что они фэйлятся : )

Alexandr
14.09.2018
12:26:03
вот я о том и писал что они выполнятся :)

Google

Mikhail
14.09.2018
16:35:13
https://medium.com/koin-developers/koin-1-0-0-unleashed-2d9d3ffff1e3 yay

Friedrich
15.09.2018
07:45:06

Valeriy
15.09.2018
12:11:54
А есть варианты как передать в generic класса reified тип? У меня базовый класс который gson'ом конвертит из T в json строку и наоборот. Переопределял/передавал в конструктор Class<T>, были проблемы с параметризированными типами (List<Long>). Тут есть варианты сделать это без копипасты как у меня сейчас в каждом наследнике?

Vsevolod
15.09.2018
12:15:40

Руслан
15.09.2018
12:17:48
это как TypeLiteral в Guice, и прочем похожем

Valeriy
15.09.2018
12:22:28

Vsevolod
15.09.2018
12:22:59
тогда я наверное вопрос неправильно понял

Valeriy
15.09.2018
12:24:52
Можно ли вообще без переопределения каких-то методов такое проделать? У меня сейчас
abstract class PropertyToJsonConverter<T> : PropertyConverter<T, String>
и наследники
class ScheduleConverter : PropertyToJsonConverter<Schedule>()
Я конечно вынес бойлерплейт в inline fun, но это выходит копипаста в каждом наследнике
override fun convertToEntityProperty(databaseValue: String) = convertToEntity<Schedule>(databaseValue)
Я так понимаю иначе никак?

Bogdan
15.09.2018
12:28:20

Valeriy
15.09.2018
12:28:28

Bogdan
15.09.2018
12:29:00
только тип
Ну та выше вроде правильно, инлайн + рефаилд

Valeriy
15.09.2018
12:29:29
ну у меня так и есть, и копипаста вызова в каждом наследнике

Bogdan
15.09.2018
12:29:36
Но это смотря как использовать собрался, для вызова нужен конкретный тип

Google

Valeriy
15.09.2018
12:30:28
protected inline fun<reified T> convertToEntity(json: String): T {
return gson.fromJson<T>(json)
}
override fun convertToDatabaseValue(entityProperty: T): String {
return gson.toJson(entityProperty)
}
вот такая банальщина
мне просто нужен для ObjectBox конвертер для каждого типа в виде класса
ладно, спасибо, просто придётся смириться с такой копипастой)

Руслан
15.09.2018
12:49:02
Почему у тебя не может быть функции, которая будет создавать тебе этот класс, передавая туда kclass который ты вытянул reified дженериком?

Valeriy
15.09.2018
12:52:15

Dmitriy
15.09.2018
13:45:39
Привет, мб кто сталкивался? Писал либу. У меня есть type типа KType из объекта типа KParameter, который я получил из функции с помощью пакета kotlin-reflect и есть JsonObject / JsonArray из пакета kotlinx.serialization.json, и я не знаю как JsonObject привести к типу который хранится в объекте типа KType.

Boris
15.09.2018
13:57:11

Dmitriy
15.09.2018
14:02:34
Руками видимо, да и привести не выйдет, придётся конвертировать
Этот вариант я думал, и тут сложность - объем, который придется писать, из-за того что параметром функции может выступать и @Serialization объект который может содержать вложенный @Serialization объект, тогда придется рекурсивно проходить всё и созвать все эти объекты

Boris
15.09.2018
14:20:15
Я к сожалению плохо знаком с котлин.серализейшн, но джексон обжектмаппер это умеет

Dmitriy
15.09.2018
14:23:55

Антон
15.09.2018
19:21:40
вопрос по IDЕ: как мне переключаться между едиторами на маке?
в инете нашел про alt + <>, но не работает

Alex
15.09.2018
19:36:21
alt/ctrl + tab? (os x)

Антон
15.09.2018
19:39:28
все равно приходиться юзать мышку :(, попробую перенастроить на ctrl + 0…9

OlegKrikun
15.09.2018
21:17:29
ЭЭЭ... а давно okio на котлине и мультиплатформенный? =))) https://github.com/square/okio

Андрей
15.09.2018
21:31:25

OlegKrikun
15.09.2018
21:31:58

Ivan
15.09.2018
22:21:57

Google

OlegKrikun
16.09.2018
08:45:24

Santa
16.09.2018
09:19:31

OlegKrikun
16.09.2018
09:20:29

Santa
16.09.2018
09:21:45

OlegKrikun
16.09.2018
09:22:28

Ivan
16.09.2018
09:22:52
А не подскажете, как io мультиплатформенное работает? В смысле там же на каждой платформе свои функции для этого. Там сделаны нативные функции которые имеют перегрузку через платформенные функции? Просто сейчас нет идеи под рукой, а на гитхабе не удобно изучать

Santa
16.09.2018
09:23:04

Ivan
16.09.2018
09:26:25

Boris
16.09.2018
09:36:48

Ivan
16.09.2018
09:38:26
Так уж печально?
Ну на селектор Мартин Томпсон сильно жаловался. И невозможно гц фри сделать , потому что там аллокации в реализации io
А ещё ЛОКИ!

Ivan
16.09.2018
09:39:18
Это просто жесть, стандартрый джавовый сокет внутри содержит 2 или 3 лока

Boris
16.09.2018
09:39:31

Ivan
16.09.2018
09:40:25
В жс лучше?
Я просто для фин рынков пишу, там жс не юзают, по этому там у меня нет экспертизы, так что хз

Igor
16.09.2018
09:40:27
Есть какой-нибудь хороший клиент для kafka на kotlin?

Boris
16.09.2018
09:40:30

Igor
16.09.2018
09:42:34
Ладно, спасибки, буду так пилить.

Google

Boris
16.09.2018
09:44:13

Ivan
16.09.2018
09:44:57

Quantum Harmonizer
16.09.2018
09:45:59

Mikhail
16.09.2018
09:46:18
Только хотел что-нибудь ответить...

Ivan
16.09.2018
09:46:32

Admin
ERROR: S client not available

Ivan
16.09.2018
09:46:48
А спиньте код плиз

Mikhail
16.09.2018
09:47:06
https://github.com/wizzardo/epoll

Ivan
16.09.2018
09:47:28

Mikhail
16.09.2018
09:49:01
Я на этой штуке http сервер написал, который в топе https://www.techempower.com/benchmarks/
Вчера кстати смержили мое обновление, на следующей неделе должны быть интересные результаты
И новый раунд они планируют скоро

Ivan
16.09.2018
09:52:15

Mikhail
16.09.2018
09:52:30
Jni

Quantum Harmonizer
16.09.2018
09:57:05
Кстати, кто располагает числами, насколько это дорого?
А то есть некоторые API, где что ни метод — то native.

Alexander
16.09.2018
09:59:27
Зависит от того, насколько дорогое то, что вызывается. Любой нативный вызов - это копирования всех параметров из нативной памяти в кучу или обратно. Если сам нитивный метод существенно дороже, чем это копирование, то можно принебречь.

Taras
16.09.2018
10:03:13
Всем привет. Подскажите как грамотно конвертировать тип object в String или в Boolean в зависимости от того что получаем. Первое что приход в голову это enum, но как реализовать не понимаю

Alexander
16.09.2018
10:04:18
в котлин нет типа object

Bogdan
16.09.2018
10:04:23

Google

Bogdan
16.09.2018
10:04:48
его бы найти

Alexander
16.09.2018
10:04:53
Да их вагон. Просто JNI еще готовить надо уметь.
Часто используют JNA - а он рефлективный, там вот уж точно есть потеря производительности

Quantum Harmonizer
16.09.2018
10:05:31

Taras
16.09.2018
10:06:13

Boris
16.09.2018
10:20:27

Quantum Harmonizer
16.09.2018
10:28:11

Igor
16.09.2018
10:32:12
А есть какие-нибудь тpуЪ functional streams для котлина?

Boris
16.09.2018
10:33:25

Alexander
16.09.2018
10:54:18
Может быть ограниченный доступ обратно, но там сложности с gc

Igor
16.09.2018
11:17:01
Куда вообще можно копать с такими ошибками:
https://gist.github.com/komigor/5fb92d528ba38065b8617584535eff8e
Что-то как-то на пеpвый взгляд все совсем гpустно..

Quantum Harmonizer
16.09.2018
11:18:29

Igor
16.09.2018
11:19:05

Quantum Harmonizer
16.09.2018
11:20:38
ну, где-нибудь :)

Igor
16.09.2018
11:23:06
ну, где-нибудь :)
Пиздец, тепеpь еще также и kapt отвалился XD Ладно, судя по всему пpи билде чеpез gradle все pаботает, так что на kapt можно забить, и генеpить когда нужно самому.

Quantum Harmonizer
16.09.2018
11:24:04
мб версия плагина не совпадает с версией в грэдле?

Igor
16.09.2018
11:25:10