Linker Unsafe
220 subscribers
182 photos
24 videos
18 files
859 links
Собираю ржавые и лямбдообразные новости, прикольные цитатки с форумов, ссылки на статьи и всё такое. В-общем, сюда я тащу такие крупицы, которые мне будет жаль потерять в цифровой бездне. Возможно, они покажутся интересными и вам.

Фи сюда: @nlinker
Download Telegram
(continue...)

T-34 85:
ты из пайтона в раст пришёл?

Nick Linker:
Нет, на питоне я время от времени что-то писал, но основным языком он у меня никогда не был.

T-34 85:
а что основное? Просто любопытно

Nick Linker:
Начинал с C++, учавствовал в написании сервера показаний датчиков и оконной либы. Потом C# 3 года, бекенд. Потом Java, бэкенд, J2EE и прочие ужасы. Потом Scala (я как раз застал болезненный переезд на коллекции в 2.8, но оно стоило того).
Потом я устроился в одну аутсорсинговую компанию, где был полный фарш, клиенты с чем только не приходили, были проекты и на шарпе, и на питоне, и на js, и (2 штуки) на scala, но в-основном java.
(О, кстати, там был проект, где вся логика была на хранимках, это просто нечто). Я там проработал почти пять лет и ушёл, потому что на те джавовские проекты уже не мог смотреть.

Не, против джавы я ничего не имею, но так получилось, что спринг стал стандартом де факто, и я с этим работать не могу и не хочу. Те кто может - спокойно пилят свои бины и получают XXXX долларей и в ус не дуют.

Оттуда я сбежал в другую компанию на офигенный проект на scala (с релизами каждые 2-3 дня, заказчик своеобразный), и потом второй проект длился 4 года, там я наконец получил боевой опыт Haskell в продакшене (до этого только делал небольшие программы для души после работы).

Затем был год ML, ну можно сказать что я удовлетворял своё любопытство в этой области оценок, метрик и нейронок, но вряд ли можно сказать что основным языком был питон. Я склонен считать, что питонячий стек для машинного обучения и для джанги - это два совершенно разных языка, и ключевую роль здесь играет знание библиотек, (catboost, pytorch, tf и так далее).

Ну пока я игрался в ML я наконец окончательно подсел на Rust, на чём сейчас и зарабатываю на еду.

===
via https://t.iss.one/rust_offtopic/256287
Товарищ хорошо разложил по полочкам. Я в своё время мучался и для себя уяснил, как "код имеет дополнительный эффект" если что-то куда-то перемещает.

Vitaliy, [21.06.20 11:48]
> Хм... так очевидно же, хочу присвоить строку в новую строчную переменную.

Вся проблема в такой логике упирается в попытке наложить на раст классическое понятие "присваивание", а этого в расте нет (ну, для Copy-тип данных оно "типа" есть, но строки - данные не являются Copy). в общем, забудь о присваивании

Есть два типа операций: передача владения (перемещение, move) и заимствования (borrow), причём заимствований бывает два вида: шаренные (неизменяемые &) и уникальные (изменяемые &mut)

===
via https://t.iss.one/rust_beginners_ru/72071
Нас раскрыли! =============
Forwarded from ;)
Подождите ка...читаю документацию...и тута написано что разрабы шуточно называют себя Rustaceans...Но...если добавить букву С в начале то получится Crustaceans....что переводится как Раки...
Forwarded from ;)
:?
Forwarded from Deleted Account
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from ;)
Совпадение?
Forwarded from Kai Ren
This media is not supported in your browser
VIEW IN TELEGRAM
=============
Если есть 5 часов жизни, чтобы посмотреть на создание примитивного компилятора на Rust:

https://www.youtube.com/playlist?list=PL-vT8sV0teWirX5DAF-uZYI2UP4iX-qJV
Forwarded from мне не нравится реальность (вафель 🧇)
Просто хочу поделиться замечательным rust-quiz от dtolnay (кто бы сомневался). Есть над чем задуматься (хотя прилично и простых вопросов)
Forwarded from Αλεχ Zhukovsky
Верификация на F*
Две лекции на тему "Перспективы искусственного интеллекта и теорема Пенроуза."
Часть I. Грозит ли нам технологическая сингулярность.
Видео и презентация.
Часть 2. Теорема Пенроуза об ИИ и квантовая природа сознания.
Видео и презентация.
Впервые услышал про DL на AMD (но рано или поздно это должно было произойти):

ZLoyer:
ты осилил машин ленинг на амд карточке?
𝛈 µ:
Да, plaidml хорошо работает
Λнтон Войцишевский:
ну что если у тебя есть в каком-то патмате дефолтный кейс, то комплиятор тебе не скажет ничего, когда ты поменяешь условную АДТ на которой этот патмат делается

Oleg ℕizhnik:
откуда у тебя в жизни дефолтные кейсы в патмате
===
По мотивам https://twitter.com/_bravit/status/1276449644235706368?s=21
Doge Shibu, [26.06.20 14:59]
А на тему удобство крестов, вот хороший доклад про то, как сделать правильно в крестах то, что в расте работает автоматом:
https://www.youtube.com/watch?v=PNRju6_yn3o&t=2195s

Т.е. если на крестах пытаться писать правильно, то это ощутимо менее удобно, чем на расте.
===
via https://t.iss.one/rust_offtopic/298625
Меня 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://t.iss.one/rustlang_ru/311650
Forwarded from Alexander Chichigin
В очередной раз порекомендую прекрасную https://mirrors.edge.kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.html 😊
Forwarded from Deleted Account