
Руслан
21.03.2018
09:45:17

Vladislav
21.03.2018
09:47:16
В java такой проблемы не стояло, потому что компилятор принудительно заставлял проаннотировать методы, а в котлине это как бы не обязательно и теперь приходится методом проб и ошибок глазами находить все места где вставить аннотацию (

Руслан
21.03.2018
09:48:33
Ну а на что это влияет? Почему в AOP ты не можешь сделать e.cause и жить счастливо?

Quantum Harmonizer
21.03.2018
09:49:09
так делают даже прокси из java.lang.reflect

Google

Руслан
21.03.2018
09:50:36

Vladislav
21.03.2018
09:50:45
попутал, в @ExceptionHandler

Руслан
21.03.2018
09:52:35
Ну идея понятна, добавишь рекурсивную обработку. Типо ловишь UndeclaredThrowableException, берешь cause и обратно вызываешь метод уже с cause

Vladislav
21.03.2018
09:52:52
?

Руслан
21.03.2018
09:53:40
Коммент только добавь нафига так делать)

Ivan
21.03.2018
11:07:55
Товарищи, подскажите такую вещь, в котлин нейтив предполагается что будет модель памяти которая запрещает шарить данные между потоками, и обмен только через посыл сообщений.
И теперь классика жанра, аккаунт с даблом, который обозначает количество денег. Пишем программу по перекидыванию денег. Самое интересное что есть требование, не должно быть возможности считать значения из 2х аккаунтов по середине трансфера, т.е. у одного списали, а другому ещё не доставили.
Как выполнить такое условие на акторах?
Я с Романом на московском митапе общался, он говорит как-то можно, но я чёт не могу допереть как
Ну понятно, данные держим в памяти, никакой бд нет
Задача чисто академическая, просто чтобы понять подход

Руслан
21.03.2018
11:09:58
Не понимаю в чем проблема. У тебя есть воркеры которые говорят что хотят сделать: переместить деньги с одного аккаунта в другой. И отдельный воркер который получает эти команды и меняет атомарно внутреннее состояние (в пределах воркера).

Quantum Harmonizer
21.03.2018
11:11:47
Я, кстати, пытался решить эту задачу с помощью атомиков на JVM. Пока не получается ?

Dmitry
21.03.2018
11:12:03
http://microservices.io/patterns/data/saga.html

Google

Ivan
21.03.2018
11:12:26

Quantum Harmonizer
21.03.2018
11:12:41

Руслан
21.03.2018
11:12:46
Ну а целом есть же suspend mutex, думаю можно будет и через shared state такие вещи делать, разве нет?

Ivan
21.03.2018
11:12:54

Руслан
21.03.2018
11:13:17

Quantum Harmonizer
21.03.2018
11:13:32
сложна)

Ivan
21.03.2018
11:13:46
Локи берутся упорядоченно по id чтобы избежать дедлока

Руслан
21.03.2018
11:15:12
Ну говорят хотят исключить шаред стейт
Его не исключить. Я так понимаю что просто дефолтовый подход будет посылать сообщения между worker'ами, но тебе же никто не сможет запретить взять и сделать мутабл стейт и стерельнуть в ногу

Ivan
21.03.2018
11:22:31
@relizarov Роман, а наверняка думали про STW для модели памяти для котлин нейтив, какие аргументы против были? Сложнее в реализации?
А если платформа поддерживает, то можно и HTW применять для того же кода

Anton
21.03.2018
11:40:20
Как передать несколько функций в качестве параметров?
fun proc(
error: Throwable,
messageListener: (String) -> Unit = {},
recall: () -> Unit = {}
)
не работает
recall почему то вызывается

Anton
21.03.2018
11:41:21
ну код покажи целиком

Quantum Harmonizer
21.03.2018
11:42:16

Google

Anton
21.03.2018
11:42:40
proc(
error,
{ viewState.showEmptyError(show, error.message) },
{ refresh() }
)
ловлю в итоге Too many follow-up requests: 21

Quantum Harmonizer
21.03.2018
11:43:58

Anton
21.03.2018
11:49:40
Спасибо, разобрался

Sergey
21.03.2018
11:57:35
Можете задать свой вопрос Бреславу, на конфе во время онлайн сессии его зададут https://docs.google.com/forms/d/e/1FAIpQLSdA7TmzrvuLf_63R5Rsj7iIY5Wf8NW2bl4iJh4P9RHJAO6dUA/viewform

Тимур
21.03.2018
12:05:48
Требуется помощь специалистов по дружбе.
Как подружить между собой kapt и idea, чтобы родная сборка из idea запускала annotation processor сделанный через kapt?
Через gradle все работает.
Про то что галочку которая заменяет в идее родную сборку на gradle в курсе, но мне так не нравится, слишком неудобный output ошибок.
В галочку "Enable annotation processing" тоже в курсе, перепробовал менять настройки и так и сяк, никак не хочет работать.
Может кто-то поделится работающим примером настроек?

Oleg
21.03.2018
12:41:55
А что такое "родная сборка из idea"?

Тимур
21.03.2018
12:42:50
это когда из меню жмешь кнопочу "Build"
еще она запускается по умолчанию перед стартом чего-нибудь

Vladimir
21.03.2018
12:49:51

Oleg
21.03.2018
12:50:32

Leonid
21.03.2018
12:50:52
в идее есть своя система сборки)

Bogdan
21.03.2018
12:51:12
ant называется

Leonid
21.03.2018
12:51:19
JPS

Bogdan
21.03.2018
12:51:30
хотя может другая

Vladimir
21.03.2018
12:52:15

Oleg
21.03.2018
12:53:17
вроде как ant выделяется отдельно

Vitalii
21.03.2018
12:54:30
https://github.com/JetBrains/JPS

Mikhail
21.03.2018
13:36:04
в последнее время довольно много использую локальные функции, но меня раздражает то, что это портит обьявления через выражение. Есть ли какой-нибудь синтаксический хак, чтобы и рыбку съесть и рыбку съесть?

Alexey
21.03.2018
13:39:44

Google

Mikhail
21.03.2018
13:44:44
fun f(x: T?): R = x?.mapNotNull { <длинная лямбда на пару строк> } ?: emptyList
по-хорошему делаю так
fun f(x: T?): R {
fun lambda ...
return x?.mapNotNull(::lambda) ?: emptyList
}
но хочется и expression чтобы был и локальная функция где-то рядом. топ-левел не предлагать
как нибудь типа where в Haskell

Alexey
21.03.2018
14:00:52

Руслан
21.03.2018
18:39:23
Тизер

Quantum Harmonizer
21.03.2018
18:40:01
Как в сравнении с Netty, есть профит?

Руслан
21.03.2018
18:40:44
Там пока говнокодец, типо: "таак, нужно вот сюда канал, это 10 методов реализовать, да ну в жопу, сделаю стрингу и прокину как есть"
Так что сравнивать с Netty никакого смысла в текущем состоянии

Ivan
21.03.2018
19:59:45
А я чёт не догоняю, в чём тут понт? Вроде так и было в кторе...
В смыле я чего-то не вижу?

Руслан
21.03.2018
20:00:06
Пишу Undertow engine для ktor

Ivan
21.03.2018
20:00:18
Ааа

Albert
21.03.2018
20:00:45
Кто нибудь писал на kotlin/native под ios

Ivan
21.03.2018
20:02:25
Круто, да, я забыл что его не было

Kevin
21.03.2018
20:19:26
i have a data class model am trying to create a constructor which takes only 2 items .. Am gettting an error there's a cycle in the delegation calls chain
Here is my Class
data class ClassName(var name:String,var yala:String, var symbole:String, var money:String){
constructor(name: String,yala:String) : this(name, yala) {
}
}
what am i doing wrong ?

Quantum Harmonizer
21.03.2018
20:21:42

Kevin
21.03.2018
20:22:34

Глеб
21.03.2018
20:23:28

Google

Глеб
21.03.2018
20:24:00
Looks like you have 2 constructors and second one calls himself.

Kevin
21.03.2018
20:24:43
If i pass it 4 argument then it bring 4 and i only need 2 ..

Глеб
21.03.2018
20:26:11
So... you done something wrong somewhere before this error :)
Try to look at sealed classes, they can help you

Kevin
21.03.2018
20:26:51
Okay

Andrew
21.03.2018
20:26:57
https://kotlinlang.org/docs/reference/classes.html#constructors
You should go through documentation sections on constructors and secondary constructors, as you have one primary (4 args) and one secondary (2 args, calling itself) in your class.

Quantum Harmonizer
21.03.2018
20:27:04

Maxim
21.03.2018
20:27:17

Глеб
21.03.2018
20:28:22
Хм... а чатика по котлину на английском нету?

Maxim
21.03.2018
20:28:28
@kevinjanvier in your case you can use default values for some aruments, like data class ClassName(var name:String,var yala:String, var symbole:String = "", var money:String = "" )

Kirill
21.03.2018
20:28:36

Kevin
21.03.2018
20:28:41
Great