Forwarded from ;)
Подождите ка...читаю документацию...и тута написано что разрабы шуточно называют себя Rustaceans...Но...если добавить букву С в начале то получится Crustaceans....что переводится как Раки...
Если есть 5 часов жизни, чтобы посмотреть на создание примитивного компилятора на Rust:
https://www.youtube.com/playlist?list=PL-vT8sV0teWirX5DAF-uZYI2UP4iX-qJV
https://www.youtube.com/playlist?list=PL-vT8sV0teWirX5DAF-uZYI2UP4iX-qJV
YouTube
Rust - YouTube
Forwarded from мне не нравится реальность (вафель 🧇)
Просто хочу поделиться замечательным rust-quiz от dtolnay (кто бы сомневался). Есть над чем задуматься (хотя прилично и простых вопросов)
Две лекции на тему "Перспективы искусственного интеллекта и теорема Пенроуза."
Часть I. Грозит ли нам технологическая сингулярность.
Видео и презентация.
Часть 2. Теорема Пенроуза об ИИ и квантовая природа сознания.
Видео и презентация.
Часть I. Грозит ли нам технологическая сингулярность.
Видео и презентация.
Часть 2. Теорема Пенроуза об ИИ и квантовая природа сознания.
Видео и презентация.
Впервые услышал про DL на AMD (но рано или поздно это должно было произойти):
ZLoyer:
ты осилил машин ленинг на амд карточке?
𝛈 µ:
Да, plaidml хорошо работает
ZLoyer:
ты осилил машин ленинг на амд карточке?
𝛈 µ:
Да, plaidml хорошо работает
Λнтон Войцишевский:
ну что если у тебя есть в каком-то патмате дефолтный кейс, то комплиятор тебе не скажет ничего, когда ты поменяешь условную АДТ на которой этот патмат делается
Oleg ℕizhnik:
откуда у тебя в жизни дефолтные кейсы в патмате
===
По мотивам https://twitter.com/_bravit/status/1276449644235706368?s=21
ну что если у тебя есть в каком-то патмате дефолтный кейс, то комплиятор тебе не скажет ничего, когда ты поменяешь условную АДТ на которой этот патмат делается
Oleg ℕizhnik:
откуда у тебя в жизни дефолтные кейсы в патмате
===
По мотивам https://twitter.com/_bravit/status/1276449644235706368?s=21
Twitter
Виталий Брагилевский
Небольшой тред о таком элементе языков программирования как сопоставление с образцом (pattern matching, декомпозиция, деконструкция, элиминация — смотря из какого вы болота) и о том, почему его нельзя сделать хорошо нигде, от Kotlin и Scala до Haskell и Idris.
Doge Shibu, [26.06.20 14:59]
А на тему удобство крестов, вот хороший доклад про то, как сделать правильно в крестах то, что в расте работает автоматом:
https://www.youtube.com/watch?v=PNRju6_yn3o&t=2195s
Т.е. если на крестах пытаться писать правильно, то это ощутимо менее удобно, чем на расте.
===
via https://www.tg-me.com/rust_offtopic/298625
А на тему удобство крестов, вот хороший доклад про то, как сделать правильно в крестах то, что в расте работает автоматом:
https://www.youtube.com/watch?v=PNRju6_yn3o&t=2195s
Т.е. если на крестах пытаться писать правильно, то это ощутимо менее удобно, чем на расте.
===
via https://www.tg-me.com/rust_offtopic/298625
YouTube
CppCon 2017: Nicolai Josuttis “The Nightmare of Move Semantics for Trivial Classes”
http://CppCon.org
—
Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/CppCon/CppCon2017
—
Assume, we implement a very simple class having just multiple string members. Even ordinary application programmer…
—
Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/CppCon/CppCon2017
—
Assume, we implement a very simple class having just multiple string members. Even ordinary application programmer…
Меня Arc-и всегда пугали именно этим.
===
? !:
Всем привет. Новичок и нуждаюсь в небольшом совете.
Есть приложение, реализовано на нативных потоках Rust (thread::spawn) с обменом сообщениями между потоками при помощи mpsc и данными между потоками, доступными через Arc::new(Mutex::new(данные)).
Все работает прекрасно, за исключением того, что периодически случаются deadlock'и (для доступа к данным использую Arc::clone(переменная, полученная выше из Arc::new(Mutex::new(данные))), который внутри потока .lock().unwrap(), использую данные и тут же выполняю drop() на MutexGuard, который получил из lock().unwrap() выше. Проблема в том, что все равно успевает произойти deadlock.
Покопавшись в теме, я так понял, что нужно вместо lock() использовать try_lock() и если он не прошел, то пытаться получить через try_lock() MutexGuard снова. Только как организовать это получение при помощи try_lock()? Пытался чудить что-то с while let и loop, но успехом это не закончилось
Vetro:
возможно не совсем в тему совет, но у parking_lot есть классная фича -
https://amanieu.github.io/parking_lot/parking_lot/deadlock/index.html
если есть возможность подтянуть эту библиотеку, вместо дефолтных мутексов (вместо которых, кстати говоря, хотят вмержить эту либу, или по крайней мере, точно хотели)
> Покопавшись в теме, я так понял, что нужно вместо lock() использовать try_lock()
нет, так не работает.
Berkus Decker:
надо проанализировать паттерн работы с локами и расставлять их так чтобы не было дедлоков.
===
via https://www.tg-me.com/rustlang_ru/311650
===
? !:
Всем привет. Новичок и нуждаюсь в небольшом совете.
Есть приложение, реализовано на нативных потоках Rust (thread::spawn) с обменом сообщениями между потоками при помощи mpsc и данными между потоками, доступными через Arc::new(Mutex::new(данные)).
Все работает прекрасно, за исключением того, что периодически случаются deadlock'и (для доступа к данным использую Arc::clone(переменная, полученная выше из Arc::new(Mutex::new(данные))), который внутри потока .lock().unwrap(), использую данные и тут же выполняю drop() на MutexGuard, который получил из lock().unwrap() выше. Проблема в том, что все равно успевает произойти deadlock.
Покопавшись в теме, я так понял, что нужно вместо lock() использовать try_lock() и если он не прошел, то пытаться получить через try_lock() MutexGuard снова. Только как организовать это получение при помощи try_lock()? Пытался чудить что-то с while let и loop, но успехом это не закончилось
Vetro:
возможно не совсем в тему совет, но у parking_lot есть классная фича -
https://amanieu.github.io/parking_lot/parking_lot/deadlock/index.html
если есть возможность подтянуть эту библиотеку, вместо дефолтных мутексов (вместо которых, кстати говоря, хотят вмержить эту либу, или по крайней мере, точно хотели)
> Покопавшись в теме, я так понял, что нужно вместо lock() использовать try_lock()
нет, так не работает.
Berkus Decker:
надо проанализировать паттерн работы с локами и расставлять их так чтобы не было дедлоков.
===
via https://www.tg-me.com/rustlang_ru/311650
amanieu.github.io
parking_lot::deadlock - Rust
API documentation for the Rust `deadlock` mod in crate `parking_lot`.
Forwarded from Alexander Chichigin
В очередной раз порекомендую прекрасную https://mirrors.edge.kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.html 😊