@kotlin_lang

Страница 657 из 982
Quantum Harmonizer
01.05.2018
19:07:52
Константин
01.05.2018
19:09:46
Главное чтоб оно умело находить эти долбанные BLE. Я много перепробовал разных приложений только то что вы выше с rx и то что я выложил норм ищут и работают. Остальные шлак :(

Можете apk кинуть?

Я погляжу как оно мои железяки ищет

Google
Quantum Harmonizer
01.05.2018
19:11:42
Я погляжу как оно мои железяки ищет
Оно ищет часы, там определённый UUID категории.

Искать вообще несложно, это достаточно неплохо описано.

Константин
01.05.2018
19:13:18
Я не нашел нормального описания и реализации которая действительно норм работает

Константин
01.05.2018
19:14:53
Ну так есть же норм? Вот их и смотреть.
Есть но там много наворотов. Они сбивают и путают :(

Quantum Harmonizer
01.05.2018
19:15:14
Есть но там много наворотов. Они сбивают и путают :(
Ну значит надо начинать с чего-то более простого.

Константин
01.05.2018
19:15:28
https://github.com/danasf/hm10-android-arduino

Вот более простое. Но оно очень плохо ищет железки. Вроде у всех одна реализация поиска, типа на одних же типах. А результат координально разный :(

Paha
01.05.2018
22:43:02
Народ такой вопрос. В программировании я полный профан, и в качестве начинаний хочу попробовать автоматизировать часть своей работы. Собственно хотелось бы написать приложуху для андроида для отправки шаблонных смс( не спам , настройка и прошивка гпс приборов через смс) Собственно подскажите в какую сторону копать с самой отправкой смс , выбор номера с которого отправляю (ибо телефон двухстрочный и основной номер личный) загнать нужные шаблоны текста, будь то обновление прошивки, выбор номеров из экселевской таблицы. И есть ли варианты прикрутить например кнопку в стандартном приложении сообщений( это если не выгорит с всем задуманым) просто как шаблоны с описанием.

Ivan
02.05.2018
00:05:18
Блаженный
02.05.2018
00:22:33
Кот линь сейчас - это преимущественно андроид?

Ivan
02.05.2018
00:30:21
Кот линь сейчас - это преимущественно андроид?
Нет, везде используется, просто гугловый маркетинг - это страшная сила )

Google
Алексей
02.05.2018
07:37:08
и скоро будет новая доза
Это ты про фуксию, дарт и флаттер?

Konstantin
02.05.2018
07:47:51
Sergey
02.05.2018
07:58:58
Это ты про фуксию, дарт и флаттер?
про дозу маркетинга Kotlin

Бреслав будет толкать на IO

https://events.google.com/io/schedule/?section=may-10&sid=7387180b-b1dd-49c3-bddf-de3f87ae1990&gclid=CjwKCAjwoKDXBRAAEiwA4xnqvwtI8vqf5G4nXVXOTThpGwoEMwtcU-Sue-JxKvnYMEtDXhuLWHLqIxoCle8QAvD_BwE

Алексей
02.05.2018
08:04:07
А, вон как

Спасибо

Quantum Harmonizer
02.05.2018
10:38:17
/** * Blah blah [Class.function] blah [Class.overload(CharSequence)] */ Второй вариант не подсвечивается и не кликается, ЧЯДНТ?

Понятно, меня тоже нужно слать в гугл. https://youtrack.jetbrains.com/issue/KT-15984

Никита?❄️
02.05.2018
12:46:22
Добрый день всем! Может кто посоветовать http-клиент на корутинах?

Egor
02.05.2018
12:48:21
launch { OkHttp }?

Ладно, не смешная шутка

Vladimir
02.05.2018
12:54:08
Gleb
02.05.2018
12:59:13
Retrofit + kotlin-coroutines-retrofit

Алексей
02.05.2018
13:00:43
ktor.io же Только он не совсем стабилен
Годно, но не без недостатков:)

Никита?❄️
02.05.2018
13:37:30
Алексей
02.05.2018
13:48:29
ktor.io же Только он не совсем стабилен
К слову о нем - как заставить route/post не отправлять ответ по окончании работы блока, передаваемого в post?

Vladimir
02.05.2018
13:49:21
К слову о нем - как заставить route/post не отправлять ответ по окончании работы блока, передаваемого в post?
А зачем оканчивать работу блока раньше времени, если есть корутины?

Алексей
02.05.2018
13:49:54
Потому что обработка параллельно идет

Google
Алексей
02.05.2018
13:50:27
Ну то есть получил пост-запрос, прокинул на обработку в куда-то

Vladimir
02.05.2018
13:52:18
Ну так эту обработку надо же дождаться, а потом отправлять ответ, так?

Алексей
02.05.2018
13:54:36
Так если ответ отправляется не из блока в посте?

Sergey
02.05.2018
14:03:33
Добрый день всем! Может кто посоветовать http-клиент на корутинах?
любой полноценно асинхронный, можно даже реактивный какой-то взять и к нему присосаться, типа спрингового

Vladimir
02.05.2018
14:12:56
Так если ответ отправляется не из блока в посте?
Значит он отправляется из suspend-функции, которая там вызывается?

Алексей
02.05.2018
14:13:26
Да

Вернуть ссылку на deferred я не могу

Igor
02.05.2018
14:16:03
любой полноценно асинхронный, можно даже реактивный какой-то взять и к нему присосаться, типа спрингового
А я вот задумался так ли плох okhttp. Он конечно внутри синхронный, но ведь он может работать поверх HTTP/2, который все данные гоняет через один мультиплексированный конненкшен. И по идеет если запросы идут к одному http/2 хосту, то особой разницы с NIO2 клиентами не будет.

Sergey
02.05.2018
14:16:46
гоняет то через один, но плодить будет треды на каждый запрос

Sergey
02.05.2018
14:16:48
а если он синхронные не значит ли это по 1 потоку на конекшен?

Vladimir
02.05.2018
14:17:59
Вернуть ссылку на deferred я не могу
Я не совсем понимаю проблему, видимо. В блоке post можно вызвать suspend-функцию, пока она не выполнится, ответ отправлен не будет. Как сделать так, чтобы она ждала чего-то извне - это уже не к ktor, это типичная задача при работе с корутинами.

Igor
02.05.2018
14:19:35
а если он синхронные не значит ли это по 1 потоку на конекшен?
Я вот кстати тоже думаю, что у него по 1 потоку на http/2 конекшен. Но это "вангование", надо смотреть сорцы и доками упароться.

Sergey
02.05.2018
14:19:56
я смотрел, по 1 потоку, без чудес

просто обернуть его в корутины не поможет

Igor
02.05.2018
14:21:11
я смотрел, по 1 потоку, без чудес
А оно его шарит, между разными "виртуальными" конекшеннами к одному физическому http/2?

Алексей
02.05.2018
14:21:58
Я не совсем понимаю проблему, видимо. В блоке post можно вызвать suspend-функцию, пока она не выполнится, ответ отправлен не будет. Как сделать так, чтобы она ждала чего-то извне - это уже не к ktor, это типичная задача при работе с корутинами.
При получении пост запроса я идентифицирую команды и отправляю в некоторую систему, в которой есть что-то, что может ответить на запрос (с помощью объекта call, само собой), обработка запроса и прочее происходит асинхронно

Google
Алексей
02.05.2018
14:26:14
Пардон, это старая задумка

Хотя суть та же

Admin
ERROR: S client not available

Алексей
02.05.2018
14:27:08
На данный момент я кладу коллбэки, внутри которых происходит ответ, а до вызова коллбэков всё обрабатывается где-то там

Vladimir
02.05.2018
14:38:33
На данный момент я кладу коллбэки, внутри которых происходит ответ, а до вызова коллбэков всё обрабатывается где-то там
Видимо надо обернуть вызов с коллбеком в suspend-функцию https://github.com/Kotlin/kotlin-coroutines/blob/master/kotlin-coroutines-informal.md#wrapping-callbacks

Алексей
02.05.2018
14:38:56
Я глянул только что

Vladimir
02.05.2018
14:39:22
А вообще лучше не передавать ApplicationCall за рамки кода, ответственного за непосредственно обработку HTTP-запросов

Алексей
02.05.2018
14:39:45
В общем, ситуация такая, что где будет вызвана корутина для обработки suspend лямбды с ответом - неизвестно

Учитывая, что у нас не должно быть ограничений в обработке запроса

Vladimir
02.05.2018
14:43:23
А какие варианты?
Обернуть свою хитрую логику и вызовы внешних штуковин в suspend-функцию, возвращающую непосредственно ответ. Тогда в post-блоке будет только вызов этой функции и передача ответа клиенту.

Алексей
02.05.2018
14:45:06
Алексей
02.05.2018
14:48:22
То есть там неизвестно что

Vladimir
02.05.2018
14:55:12
То есть там неизвестно что
Ну тогда это лучше там внутри и разруливать. Наружу - только suspend fun process(request): Response. А внутри - suspend-функции, оборачивание коллбеков, пулы потоков для выполнения блокирующего кода и прочее в таком духе. Это конечно если вообще связываться с корутинами.

Алексей
02.05.2018
14:56:43
Понял

кстати

Я правильно понял, что синхронизации в корутинах - не работают?

Машков
02.05.2018
14:58:09
Смотря какие

Google
Машков
02.05.2018
14:59:06
Synchronized и пары lock-unlock не должны быть разделены suspendable границей

Алексей
02.05.2018
14:59:45
А можно подробней?

Машков
02.05.2018
15:00:06
Так как восстановленная после сна корутина может быть запущена в другом потоке

Тогда как локи должны браться и освобожжаться из одного и того же потока

Vladimir
02.05.2018
15:01:02
Я правильно понял, что синхронизации в корутинах - не работают?
Стандартная синхронизация с блокировками не то чтобы не работает, но это лучше никогда не использовать (т.к. блокировки потоков). Есть свои мьютексы - https://github.com/Kotlin/kotlin-coroutines/blob/master/kotlin-coroutines-informal.md#mutexes Можно навелосипедить, если чего-то не хватает в этом плане.

Машков
02.05.2018
15:01:19
Monitorenter и monitorexit также должны быть исполнены в одном потоке

Иначе возникнет исключение

Машков
02.05.2018
15:02:24
Но если через "критическую секцию" не проходит линия возможного разрыва, то использовать эти примитивы можно

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