@kotlin_lang

Страница 867 из 982
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
вложенные папки надо создавать поэтапно, а не все сразу
Ну, вообще-то mkdirs() должна создавать все сразу.

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

Руслан
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) Я так понимаю иначе никак?

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
Почему у тебя не может быть функции, которая будет создавать тебе этот класс, передавая туда kclass который ты вытянул reified дженериком?
мне нужны классы для таких аннотаций: @Convert(converter = ScheduleConverter::class, dbType = String::class) val schedule: Schedule

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

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

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

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

в инете нашел про alt + <>, но не работает

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

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

OlegKrikun
15.09.2018
21:31:58
Ivan
15.09.2018
22:21:57
ЭЭЭ... а давно okio на котлине и мультиплатформенный? =))) https://github.com/square/okio
Вот это крутая библиотечка, спасибо! А есть какие-нибудь бенчмарки? Там все операции работают быстро и без нагрузки на гц (ну понятно что кроме инициализационных)?

Google
OlegKrikun
16.09.2018
08:45:24
Вот это крутая библиотечка, спасибо! А есть какие-нибудь бенчмарки? Там все операции работают быстро и без нагрузки на гц (ну понятно что кроме инициализационных)?
Типа того, напрямую я с ней не работал до сих пор, а так она под капотом у нескольких популярных либ под андроед

Santa
16.09.2018
09:19:31
ЭЭЭ... а давно okio на котлине и мультиплатформенный? =))) https://github.com/square/okio
Есть еще такая либа, от JetBrains - http://ktor.io, тоже мультиплатформенная с плагинами под iOS и Android

Santa
16.09.2018
09:21:45
Эээээ... А почему ты их ставишь в один ряд?
Ну если ты хочешь использовать на HTTP запросов, может помочь.

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

Ivan
16.09.2018
09:26:25
expect - actual модули, то есть описываешь общее API и после отдельно пишешь реализацию под каждую платформу(JVM, JS, Native)
Ага-ага, эти и имел в виду. Спасибо. На биндинг на джаву получается основан на java.[n]io, что печально

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

А ещё ЛОКИ!

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

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

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

Boris
16.09.2018
09:40:30
Это просто жесть, стандартрый джавовый сокет внутри содержит 2 или 3 лока
Есть же каналы, не обязательно использовать жава.ио.сокет

Есть какой-нибудь хороший клиент для kafka на kotlin?
Да вроде и джавовый неплохо работает

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
https://github.com/wizzardo/epoll
Агонь спасибо, сейчас гляну

Mikhail
16.09.2018
09:49:01
Я на этой штуке http сервер написал, который в топе https://www.techempower.com/benchmarks/

Вчера кстати смержили мое обновление, на следующей неделе должны быть интересные результаты

И новый раунд они планируют скоро

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

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

Alexander
16.09.2018
10:04:53
Да их вагон. Просто JNI еще готовить надо уметь.

Часто используют JNA - а он рефлективный, там вот уж точно есть потеря производительности

Taras
16.09.2018
10:06:13
> в зависимости от того, что получаем откуда и в каком виде?
получаю с JSON поле с значением либо String либо Boolean

Boris
16.09.2018
10:20:27
Ну вот как вызвать еполл, например, в джаве - это вопрос
Насколько я понимаю, нио на линуксе драйвится еполлом

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

Alexander
16.09.2018
10:54:18
Даже какой-нибудь jstring — это не настоящая java.lang.String, а её копия?
Нативное приложение не может иметь доступ на кучу jvm.

Может быть ограниченный доступ обратно, но там сложности с gc

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

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
мб версия плагина не совпадает с версией в грэдле?
да совпадает вроде как, иначе warning был-бы (ну, тепеpь точно совпадает).

Страница 867 из 982