Size: a a a

Kotlin Community

2020 August 02

AN

Alexander Nozik in Kotlin Community
Constantine Cerberus
Не совсем понял зачем нужно реализовать collector так как можно его просто в локальную переменную всунуть и использовать напрямую тестил вроде все работает как и должно.
Не collector, а collect. Тот самый единственный (на данный момент) метод Flow.
источник

AN

Alexander Nozik in Kotlin Community
источник

CC

Constantine Cerberus in Kotlin Community
Alexander Nozik
Ну callbackFlow - это по сути и есть канал + flow. Но вариант вполне хороший, если он вам подходит
Channel проблемы делает при большой нагрузке скипает данные хотя вроде и капасити  у него норм и работает под корутинами  и вроде как норм работает в других местах кода
источник

AN

Alexander Nozik in Kotlin Community
Constantine Cerberus
Channel проблемы делает при большой нагрузке скипает данные хотя вроде и капасити  у него норм и работает под корутинами  и вроде как норм работает в других местах кода
Так самодельная штука у вас будет работать заведомо хуже. Проблема в том, что у вас не холодный Flow, а горячий. У вас есть скорость засовывания и скорость изымания. Скиать ничего он не может, вопрос в скорости потребления
источник

AN

Alexander Nozik in Kotlin Community
Если у вас в ваших событиях нет back-pressure и вы не успеваете переработать все события, то вы в любом случае будете что-то пропускать. Это нельзя победить никаким способом
источник

CC

Constantine Cerberus in Kotlin Community
Alexander Nozik
Так самодельная штука у вас будет работать заведомо хуже. Проблема в том, что у вас не холодный Flow, а горячий. У вас есть скорость засовывания и скорость изымания. Скиать ничего он не может, вопрос в скорости потребления
Мои извинения оказывается я уже давно заюзал в том месте channel и работает он там на ура без пропусков и проблем .
источник

AN

Alexander Nozik in Kotlin Community
Constantine Cerberus
Мои извинения оказывается я уже давно заюзал в том месте channel и работает он там на ура без пропусков и проблем .
👍
источник

CC

Constantine Cerberus in Kotlin Community
Alexander Nozik
Если у вас в ваших событиях нет back-pressure и вы не успеваете переработать все события, то вы в любом случае будете что-то пропускать. Это нельзя победить никаким способом
Такой вопрос пример есть устройство ввода отсылает пакеты данных в виде стрима который нужно прочитать и разбить на пакеты данных в соответствии с протоколом , тоисть на в ходе есть инпут стрим  а на выходе пакеты причем стрим не всегда за раз присылает полный пакет так как он ограничен по скорости  на данный момент при сборке он в callback присылает готовый пакет данных по мере поступления данных и возможности собрать полный пакет из стрима ,  все работает и работает хорошо но хотелось бы переехать на то что более легче в юнит тестах , вопрос как бы вы реализовали эту ситуацию или бы оставили все как есть заранее спасибо
источник

AN

Alexander Nozik in Kotlin Community
Constantine Cerberus
Такой вопрос пример есть устройство ввода отсылает пакеты данных в виде стрима который нужно прочитать и разбить на пакеты данных в соответствии с протоколом , тоисть на в ходе есть инпут стрим  а на выходе пакеты причем стрим не всегда за раз присылает полный пакет так как он ограничен по скорости  на данный момент при сборке он в callback присылает готовый пакет данных по мере поступления данных и возможности собрать полный пакет из стрима ,  все работает и работает хорошо но хотелось бы переехать на то что более легче в юнит тестах , вопрос как бы вы реализовали эту ситуацию или бы оставили все как есть заранее спасибо
Вот прямо в сей момент это пишу. Для управления оборудованием. Я использую рабочую версию kotlinx-io, там есть готовая функция для строк readUtf8StringUntilDelimiters. Но проблема с тем, что io не дружит с корутинами, так что в любом случае там будут блокировки. Я хочу запустить сборку пакетов с блокировкой на io, а потом преобразовать во Flow. Но еще надо поэкспериментировать. Старая версия работала на колбэке - тоже с блокирующим сбором.
источник

AN

Alexander Nozik in Kotlin Community
Могу дать ссылку на старый код трехлетней давности, но я его сейчас полностью переписываю
источник

AN

Alexander Nozik in Kotlin Community
Constantine Cerberus
Такой вопрос пример есть устройство ввода отсылает пакеты данных в виде стрима который нужно прочитать и разбить на пакеты данных в соответствии с протоколом , тоисть на в ходе есть инпут стрим  а на выходе пакеты причем стрим не всегда за раз присылает полный пакет так как он ограничен по скорости  на данный момент при сборке он в callback присылает готовый пакет данных по мере поступления данных и возможности собрать полный пакет из стрима ,  все работает и работает хорошо но хотелось бы переехать на то что более легче в юнит тестах , вопрос как бы вы реализовали эту ситуацию или бы оставили все как есть заранее спасибо
А что за устройства кстати?
источник

CC

Constantine Cerberus in Kotlin Community
Alexander Nozik
А что за устройства кстати?
BLE \ BT\ USB подключенный к кастомной плате со внутренним сенсорами
И собственной логикой и энкодингом данных
источник

AN

Alexander Nozik in Kotlin Community
Constantine Cerberus
BLE \ BT\ USB подключенный к кастомной плате со внутренним сенсорами
И собственной логикой и энкодингом данных
О, можем скооперироваться. Мы сейчас делаем мультиплатформную либу (открытую) как раз для общения с железками.
источник

AN

Alexander Nozik in Kotlin Community
Constantine Cerberus
BLE \ BT\ USB подключенный к кастомной плате со внутренним сенсорами
И собственной логикой и энкодингом данных
https://github.com/mipt-npm/dataforge-control. Основное наше применение - это всякие большие эксперименты в физике частиц, но я бы хотел, чтобы оно и для индустрии полезно было
источник

G

GNU/Vsevolod in Kotlin Community
В build.gradle как то можно использовать glob в таске Copy?
У меня есть такая таска:
task cpArtifacts(type: Copy) {
 from shadowJar
 into "$distRoot/*/dist"
}
shadowJar.finalizedBy cpArtifacts

И надо чтобы артефакты скопировались в директории, которые заматчит этот глоб
источник

CC

Constantine Cerberus in Kotlin Community
Alexander Nozik
https://github.com/mipt-npm/dataforge-control. Основное наше применение - это всякие большие эксперименты в физике частиц, но я бы хотел, чтобы оно и для индустрии полезно было
В компании в которой работаю примерно такая же сфера но предназначена для образования
http://einsteinworld.com/
источник

CC

Constantine Cerberus in Kotlin Community
Alexander Nozik
О, можем скооперироваться. Мы сейчас делаем мультиплатформную либу (открытую) как раз для общения с железками.
Щас нету возможности так как и платформа закрытая и код нельзя в опен сорсе постить да и  за один он по большей части для внутренних нужд , хотя в будущем планирую
Переписать его под гражданские цели для удобства работы с железками
источник

AN

Alexander Nozik in Kotlin Community
Constantine Cerberus
Щас нету возможности так как и платформа закрытая и код нельзя в опен сорсе постить да и  за один он по большей части для внутренних нужд , хотя в будущем планирую
Переписать его под гражданские цели для удобства работы с железками
А я не предлагаю ваш код открывать, я предлагаю включиться в обсуждение по тому открытому проекту, что мы делаем, чтобы потом вы могли его использовать.
источник

CC

Constantine Cerberus in Kotlin Community
Alexander Nozik
А я не предлагаю ваш код открывать, я предлагаю включиться в обсуждение по тому открытому проекту, что мы делаем, чтобы потом вы могли его использовать.
По обсуждать я всегда рад по мере возможности
источник

СМ

Сашка Михай... in Kotlin Community
Добрый день!

Столкнулся с одной проблемой и нуждаюсь в помощи. Опишу задачу:
Я в одни reqest-e получаю объект содержащий 4 переменных типа String(email,username,displayname,data) мне нужно взять лишь email из данного объекта для использования второго reqest-a так как для него нужен Auth and email.

Как я могу это сделать?
источник