Cat
собственно, да
Vladimir
Понято, вот это жист, а дорожки тоже можно несколько загрузить?
Денис
да кстати у меня тайтл на аглицком
Cat
тоже
Sergey
Есть ещё тайтлы на немецком и украинском, если уже совсем интересно :D
Cat
1. Это правда. Два фрагмента в разные дни писал и по разному ставил микрофон. (спасибо, учту) 2. Шумы я убирал в Audacity, а частоный фильтр не использовал
2> в интернетике куча гайдов о том, как выравнивать именно голос, чтобы он звучал лучше (лучше для слушателей); так что это исправляется
Vladimir
Cat
2> в интернетике куча гайдов о том, как выравнивать именно голос, чтобы он звучал лучше (лучше для слушателей); так что это исправляется
BTW, нужно делать фильтрацию pop (pop filtering) и цоканий/причмокиваний, в интернетах так же много об этом
Sergey
Чому менi на рiднiй мовi тодi не запропонувало?
Что у тебя в Accept-Language хедере отправляется? https://httpbin.org/headers
Vladimir
Что у тебя в Accept-Language хедере отправляется? https://httpbin.org/headers
Чомусь не рiдна "Accept-Language": "ru,en-US;q=0.9,en;q=0.8", "
Vladimir
Зрада
Anton
Спасибо. Попробую исправить в след. раз )
Ииии... Зачем на Английском?
Cat
Ииии... Зачем на Английском?
чтобы ты ничего не понял
Anton
чтобы ты ничего не понял
А сам-то много понял?
Anton
Cat
прости, у меня только в этом году начнётся английский в школе
Sergey
Ииии... Зачем на Английском?
Чтобы аудитория была шире. Я бы с радостью записал на Эсперанто, если бы люди его учили :)
Anton
Ну а так, дерзай
VCL
Привет всем. У меня небольшие сложности в работе с tokio + udp. Пожалуйста помогите :) 1. Нужно ли делать один большой кодек для всего или разбить всё это на sub кодеки? Основная проблема в том, что я в начале сделал пару разных кодеков, которые все хендлят определённые типы пакетов и планировал просто использовать их как wrapper вокруг сокета․ Но UdpFramed кушает мой сокет. Получается я не могу делать что-то подобное firstCodecFramed.for_each(|data, addr| { let secondCodecFramed = UdpFramed::new(firstCodecFramed.get_ref(), secondCodec); /// } Где я неправильно думаю? ։) 2.Как правильно отправлять пакеты через UdpSocket? Я сейчас сделал как-то так. let (packet_sender, packet_sender_receiver) = futures::sync::mpsc::channel(10); let (sink, stream) = self.framed.split(); Box::new( stream .for_each(move |(data, addr)| { Cacher::process_request(packet_sender.clone(), &data.freeze(), addr) }) .map_err(|e| { error!("Stream error inside for_each {}", e); }) .join(packet_sender_receiver.forward(sink.sink_map_err(|e| { error!("Sink error inside receiver {}", e); }))) .map(|_| {}), ) То есть у меня есть mpsc channel для отправки данных в сокет в дальнейшем все данные сливаются в него, но хочется так же уметь отправить пакет и отреагировать на его получение с помощью and_then. Что-то в псевдокоде socket.send(someData) .and_then(socket.receiveData())
Денис
ы, наш клиент
Денис
Привет всем. У меня небольшие сложности в работе с tokio + udp. Пожалуйста помогите :) 1. Нужно ли делать один большой кодек для всего или разбить всё это на sub кодеки? Основная проблема в том, что я в начале сделал пару разных кодеков, которые все хендлят определённые типы пакетов и планировал просто использовать их как wrapper вокруг сокета․ Но UdpFramed кушает мой сокет. Получается я не могу делать что-то подобное firstCodecFramed.for_each(|data, addr| { let secondCodecFramed = UdpFramed::new(firstCodecFramed.get_ref(), secondCodec); /// } Где я неправильно думаю? ։) 2.Как правильно отправлять пакеты через UdpSocket? Я сейчас сделал как-то так. let (packet_sender, packet_sender_receiver) = futures::sync::mpsc::channel(10); let (sink, stream) = self.framed.split(); Box::new( stream .for_each(move |(data, addr)| { Cacher::process_request(packet_sender.clone(), &data.freeze(), addr) }) .map_err(|e| { error!("Stream error inside for_each {}", e); }) .join(packet_sender_receiver.forward(sink.sink_map_err(|e| { error!("Sink error inside receiver {}", e); }))) .map(|_| {}), ) То есть у меня есть mpsc channel для отправки данных в сокет в дальнейшем все данные сливаются в него, но хочется так же уметь отправить пакет и отреагировать на его получение с помощью and_then. Что-то в псевдокоде socket.send(someData) .and_then(socket.receiveData())
https://t.me/tokio_rust
Alexander
вопрос: причина вопроса: надо быстро накидать, делать лучше - лень. вопрос: lazy_static можно как-то с mut ? через Mutex?
Alexander
9 | / lazy_static! { 10 | | static ref MODEL: Arc<Mutex<Model>> = { Arc::new(Mutex::new(Model::load("2.model.pb", 8249.59078866, 714953.99218568))) }; 11 | | } | |_^ `*mut tensorflow_sys::TF_Session` cannot be sent between threads safely | = help: within `ml::Model`, the trait `std::marker::Send` is not implemented for `*mut tensorflow_sys::TF_Session` = note: required because it appears within the type `tensorflow::Session` = note: required because it appears within the type `ml::Model` = note: required because of the requirements on the impl of `std::marker::Send` for `std::sync::Mutex<ml::Model>` = note: required because of the requirements on the impl of `std::marker::Sync` for `std::sync::Arc<std::sync::Mutex<ml::Model>>` = note: required by `lazy_static::lazy::Lazy`
Alexander
mutex покрывает sync, а что покрывает send, я думал arc. можно его как-то изобразить для структуры что не умеет?
саша
Правило вроде такое, что если T: Sync, то &T: Send
Alexander
Mutex<&'static Model> ?
саша
Mutex<&'static Model> ?
ну да, статик можно слать
Alexander
что-то ему пофиг: 9 | / lazy_static! { 10 | | static ref MODEL: Mutex<&'static Model> = { Mutex::new(&Model::load("2.model.pb", 8249.59078866, 714953.99218568)) }; 11 | | } | |_^ *mut tensorflow_sys::TF_Session cannot be shared between threads safely | = help: within ml::Model, the trait std::marker::Sync is not implemented for *mut tensorflow_sys::TF_Session
саша
а ещё можно имплементировать сенд в ансейф, если он не библиотечный
Alexander
да у меня вообще тредов нет
саша
А мутекс зачем?
Alexander
чтоб на sync не ругалось
Alexander
9 | / lazy_static! { 10 | | static ref MODEL: &'static Model = { Model::load("2.model.pb", 8249.59078866, 714953.99218568) }; 11 | | } | |_^ *mut tensorflow_sys::TF_Session cannot be shared between threads safely | = help: within &'static ml::Model, the trait std::marker::Sync is not implemented for *mut tensorflow_sys::TF_Session
саша
сделай тред локал
саша
статики по дефолту шаред между потоками же
Alexander
сорян, что сделать?
Alexander
я уже сдался - и потащил параметр из main вглубь
саша
во первых, если это не должно быть статикой, то не делай статикой
саша
вся статика должна быть Send + Sync насколько я понимаю
саша
есть макрос thread_local!, в нём можно задать локальные для треда переменные
Alexander
ну я хотел "по-быстрому", я понял - делаю нормально уже :) спасибо.
丰
Я его 4ый раз вижу
Sergey
чойта? выглядит стрёмно https://rustrush.ru
Roma
вопрос: причина вопроса: надо быстро накидать, делать лучше - лень. вопрос: lazy_static можно как-то с mut ? через Mutex?
а я для быстроты говнокожу static mut Option; потом с unsafe надо менять, но это только в инит надо, так что норм
Alexey
я думаю сначала нужно ответить на вопрос как ты хочешь поступить если встретишь пустой Option
Alexey
filter_map?
պլհկ
filter/filter_map
Денис
в первый раз такое вижу
Vladimir
Это означает что они ничего не делали
Маjко
Ооо
Маjко
Там в компилер заебатых диагностик подвезли
Маjко
Loyd
а что здесь нового?
Маjко
Раньше не было
Loyd
Ты про two versions?
Маjко
Писал просто Expected А, Found A
Loyd
Тыщу лет как вижу
Loyd
(хотя может из-за того, что на найтли всё время)
պլհկ
two different versions не было
պլհկ
ну т.е. когда-то не было, я на такую ошибку не налетал уже долго
Loyd
Ну, судя по blam-у точно больше полугода этой штуке
Loyd
лол
-__-
Мог и без "perhaps", а сказать точно, какие версии и откуда взялись.
Cat
никакого авантюризма
Loyd
Это да. Но вангую, что пришлось бы хорошенько через кишки протащить эту инфу
Маjко
лол
Я давно такие ошибки не видел, по ходу)
Loyd
Ну не настолько же давно)
Cuno
Мог и без "perhaps", а сказать точно, какие версии и откуда взялись.
У компилятора вроде примерно ноль инфы о версиях и зависимостях. Это всё у карго.
Маjко
Ну не настолько же давно)
Видать настолько