Mari
Спасибо, но интересует работа с предварительно не обученной нейронной сетью)
Andrei
ааа такое самому интересно )
Aleksandr
Ребят, после пулла с девелопа, xcode перестал собирать проекты, вообще.
Пишет вот что:
Build operation failed without specifying any errors. Individual build tasks may have failed for unknown reasons.
One possible cause is if there are too many (possibly zombie) processes; in this case, rebooting may fix the problem.
Some individual build task failures (up to 12) may be listed below.
Aleksandr
кто нибудь сталкивался?
Aleksandr
ребутинг не помогает
Antontsue
может дерривед дату почистить?
Aleksandr
тоже не помогает
Aleksandr
не собирает ни на девайс ни на симулятор
Aleksandr
у меня знакомый решил эту же проблему переустановкой оси, (переустановка xcode не помогла)
norlin
^ winOS Ыierra
Paks
А кто-то сталкивался с шифрованием сообщений?
Paks
есть либа, шифрует/дешифрует NSString
Есть база зашифрованных сообщений. Как ее расшифровать? построчно?? или как верно в таких случаях поступать?
Paks
если построчно, то она 1000 сообщений будет расшифровывать с лагом же и не моментально, как от этого избавляться и что делать?
Vladislavs
делать это в background-треде
Stanislav
dispatch_async и вперед
Max
Let myQueue = DispatchQueue.global(qos: .userInitiated) или qos: .background
myQueue.async{ расшифровка }
Paks
а как с чатом быть? там же будет пусто
Paks
пока оно дешефрует
Stanislav
Блин, ты формулируй задачу свою понятнее. Будет пусто, да. Крутилку можно показать
Vladislavs
Paks
А есть возможность массив из 1000 сообщений асинхронно расшифровывать паралельно? и потом собрать это все в той же последовательности, в которой все было в массиве?
Типа не в цикле:
1 сообщение -> дешифвровать ->
дешифровано -> возврат в начало
а как-то так:
1 сообщение -> дешифровать > возврат в начало
дешифровано -> 1 сообщение
...
Paks
есть механизмы, позволяющие результаты CallBackов собрать в той последовательности, в которой были запущены методы?
Anonymous
почему коллбэки? У тебя есть массив зашифрованных сообщений, ты знаешь в какой они последовательности. Ты можешь закинуть это в дикшенари, где ключами будут индексы массива. По мере дешифрации сообщений, ты будешь устанавливать элемент дикшинари с нужным индексом значение - расшифрованное сообщений. После того как в дидСет-обозревателе дикшинари количество эелементов сравняется с количеством в массиве зашифрованных, ты тоже сможешь дикшенари выгурзить в массив дешифрованных в нужном порядке
Anonymous
Anonymous
но 1000 расшифровывающаяся паралельно - очень плохая идея, вот честно.
Stanislav
Anonymous
Stanislav
Anonymous
но запуская асинхронно, у него не будет гарантии что первое большое расшифруется первым же. Поэтому и беспокоится про какой-то механизм коллбэков
Anonymous
вот и подсказываю с приемом про дикшинари, где ключем будет индекс в массиве.
Stanislav
Вообще можно прикольно сделать. Во-первых, естественно, делать все асинхронно в фоне, во-вторых с помощью Grand Central Dispatch загрузить все ядра
Stanislav
Anonymous
и семафор использовать тоже не хочет, как я понял
Stanislav
Max
Paks
ну смотрите, есть методо
Anonymous
ок. давай на примере загрузки картинок.
Мы загрузили например откуда-то массив из 50 элементов. Вывели в ТэйблВью, теперь хотим асинхронно закачать и 50 картинок, которыее соотвествуют этим эементам массивов
Paks
- (void)decodeString:(nsstring *)
и есть делегад
- (void)didDecodedString:(nsstring *)
Paks
и у меня база данных с сообщениями
Paks
одной пачкой я расшифровать не смогу? Мне надо сделать 100 итераций, верно?
Paks
тобишь, 100 вызовов метода, и 100 колбеков я получу
Stanislav
Делегад
Stanislav
Вот кто они
Stanislav
Теперь я знаю
Paks
😆
Anonymous
да, продолжай
Anonymous
блин, я почему-то еще думал что Свифт, ну ладно
Anonymous
окей, и что?
Paks
вот я так понимаю, если буду расшифровывать по очереди:
1 расшифровал -> вызвал второе
2 расшифровал -> выдзвал третье
....
это будет довоьлно долго
Anonymous
и поэтому ты хочешь запустить все 100 паралельно, но чтобы они вернулись в нужном порядке
Anonymous
мы все это поняли
Stanislav
Stanislav
Какая длина строк?
Paks
а есть способ какой-то, что бы расшифровал так:
1 бросил на расшифровку
2 бросил на расшифровку
3 бросил на расшифровку
....
расшифровано 1
расшифровано 2
расшифровано 3
....
Paks
может быть 1 символ
Paks
может быть сотня
Stanislav
Stanislav
dispatch_apply(count, dispatch_get_global_queue(0, 0), ^(size_t i){
results[i] = do_work(data, i);
});
total = summarize(results, count);
Paks
а как это с делегатом сдружить?
Anonymous
ладно, я в обжси пасс
Stanislav
может быть сотня
Ну так ты попробуй сначала расшифровать последовательно. Одно дело если б ты написал, что вот, 5 минут база декодится последовательно. Надо бы запускать параллельно, будет 2,5 минуты
Stanislav
Какая-то преждевременная оптимизация хз ради чего
Paks
ну там по 50-100 долесекунд уходит
Paks
но есл сотня итераций - то это уже будет 5-10 секунд
Stanislav
Ну, ок. Будет 2,5-5 секунд. Тебе это надо? Или тебе каждое сообщение надо показывать по мере расшифрования? (визуально именно это будет быстрее всего по ощущениям юзера)
Paks
ну вот я не знаю как делать правильно)
Stanislav
Хм, а что за либа расшифровки? Нафиг там вообще делегат? Может она сама по себе асинхронно все делает?
Paks
написал как я это вижу) и мб кто посоветует) потому-что с подобными задачами не сталкивался) и не уверен, что то, что сразу в глову приходит - является оптимальным вариантом)
Paks
OTRKit
Paks
https://github.com/ChatSecure/OTRKit
Stanislav
Anonymous
сорри, потерял интерес уже. пусть будет так
Paks
ну картинки то такое) там мона и с задержкой отображать)
Paks
а тут представь чат)
Paks
ты открываешь чат и у тебя стабильные висяки)