LINUX.ORG.RU

Сообщения andalevor

 

Fedora Silverblue. Toolbox. Нет звука.

Форум — General

Что нужно для работы звука в toolbox в fedora silverblue? В virtualbox всё работает из коробки, а на реальном железе при попытке запуска speaker-test получаю:

$ speaker-test 

speaker-test 1.2.2

Playback device is default
Stream parameters are 48000Hz, S16_LE, 1 channels
Using 16 octaves of pink noise
ALSA lib pcm_dmix.c:1089:(snd_pcm_dmix_open) unable to open slave
Playback open error: -2,No such file or directory

 , ,

andalevor
()

Не смог установить nixos.

Форум — Desktop

Точнее установить-то получилось. А вот стартовать плазму – нет. После установки по мануалу проверил, что сеть работает. В конфиг добавил пользователя, раскоментил секции со звуком, печатью, иксами sddm и плазмой, пересобрал. Но не запускается. Переключился в консоль, вижу, что sddm-greeter валится в корку. Чему предшествуют сообщения в логе:

QObject: Cannot create children for a parent that is in a different thread

Убрал из конфига sddm, пересобрал, перезапустил. Теперь dm появился, но после ввода пароля всё повисло. А в логе:

xsession[984]: /nix/store/nr4a4rvdix955s4lcyjq42sxd8cwskam-xsession: Window manager 'plasma5' not found.

И потом ещё вагон ошибок. Как чинить, куда копать?

 

andalevor
()

Rust. Lifetimes и mem::replace.

Форум — Development

Привет, ЛОР! Есть у меня код чтобы доставать данные примитивных типов из буфера. Хочу написать аналогичный макрос чтобы писать в буфер примитивные типы. Первая попытка написать что-то разбилась о borrow checker. Я по подсказке компилятора проставил одинаковые лайфтамы и это сработало, но так можно записать только одно значение. Мне объяснили, что так получается из-за попытки взять мутабельную ссылку на мутабельную ссылку. И предложили такой вариант. (Сам я додумался только заменить мутабельную ссылку на мутабельный указатель, но это unsafe) Однако, даже без лайфтаймов всё работает благодаря трюку с mem::replace. У меня 2 вопроса. Действительно ли нельзя без трюка с mem::replace? И почему трюк с mem::replace работает? Ведь под капотом у него swap и, если я правильно понимаю, после вызова mem::replace в $A должно находится &mut [] и присвоение туда rest не должно затрагивать исходный массив. Если сбросите чего почитать на тему – буду благодарен, из книги я не понял почему это работает.

 

andalevor
()

Одноплатник к телеку

Форум — Linux-hardware

Какой одноплатник посоветуете для проигрывания всякого со стримингов?

 

andalevor
()

Как дела в Fedora Silverblue с кодеками?

Форум — Desktop

Тут я подглядел как установить полный набор кодеков для fedora workstation. Для silverblue там только инструкции по установке минимального набора. Какова ситуация с кодеками в silverblue?

 , ,

andalevor
()

Ubuntu 18.04. Не запускается switcheroo-control.

Форум — Desktop

После перезагрузки не стартует:

andalevor@dell5547:~$ systemctl status switcheroo-control
● switcheroo-control.service - Switcheroo Control Proxy service
   Loaded: loaded (/lib/systemd/system/switcheroo-control.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Thu 2020-02-06 12:32:19 +05; 2h 18min ago
 Main PID: 596 (code=exited, status=0/SUCCESS)

фев 06 12:32:19 dell5547 systemd[1]: Starting Switcheroo Control Proxy service...
фев 06 12:32:19 dell5547 systemd[1]: Started Switcheroo Control Proxy service.
andalevor@dell5547:~$

Если запустить вручную – работает. В чём причина завершения работы на старте системы?

 , ,

andalevor
()

Ord trait для f64

Форум — Development

У меня есть структура с f64 и я хочу сортировать структуры, почему Ord не реализован для f64? В документации написано, что PartialOrd это «Trait for values that can be compared for a sort-order.». Этот трэйт реализован для f64, но вектор не хочет сортировать даже чистые f64. Получается, что PartialOrd не достаточно для сортировки, тогда зачем PartialOrd? И какой есть простой способ реализовать Ord для f64?

 

andalevor
()

Как клонировать trait object?

Форум — Development

Вот минимальный пример с проблемой: playground

 

andalevor
()

Хочу написать «hello world» на Rust.

Форум — Development

Хочу написать на Rust небольшую библиотеку. За плечами пара «hello world» на С. Так что в rust очень много нового для меня. Особенно в плане организации кода и файлов в древе проекта (модули, тесты). Скиньте, пожалуйста, для примера какую-нибудь небольшую библиотеку на rust, на которую можно было бы ровняться как на эталон. Также буду рад если посоветуете место, где новичкам лучше всего задавать свои вопросы.

 

andalevor
()

Доклад о разработке модулей ядра на Rust.

Форум — Development

Появилось интересное видео, в котором авторы фрэймворка для написания модулей для ядра linux делятся своим опытом.

Вольный перевод описания к видео: Т.к. 65% последних уязвимостей стали результатом небезопасного обращения с памятью (переполнение буфера, использование указателя после освобождения и прочее), а не логических ошибок, то как разработчики ядра, так пользователи задались вопросом: возможно ли применение более безопасного языка, чем С для разработки ядра?. В своём выступлении докладчики рассказывают о своей работе над созданием фрэймворка для написания модулей ядра на Rust и доступа к API ядра из безопасного подмножества Rust. В частности, докладчики расскажут о трудностях сборки бинарно-совместимых модулей ядра на Rust, о техниках работы с существующим кодом на С и о том как проектировать безопасные биндинги к API ядра. Также докладчики расскажут о преимуществах и сложностях интеграции Rust в разработку ядра и возможные для сообщества разработчиков ядра.

 ,

andalevor
()

xmpp сервис с синхронизацией

Форум — General

Есть ли в живых какой-нибудь сервис xmpp с синхронизацией сообщений и нормальными клиентами, поддерживающими синхронизацию для gnu/linux и android?

 

andalevor
()

Как выбирать железо под старую версию ядра?

Форум — General

Есть проприетарная софтина под 4ю centos, хочу купить ноут и поставить туда эту софтину. Но не знаю как понять, запуститься ли старая версия ОС на свежем ноуте.

 ,

andalevor
()

Правильно ли я пишу на Rust?

Форум — Development

Часто мелькает Rust и в новостях, и в темах. Решил попробовать переписать один тест с С на Rust. Для сравнения написал вариант и на C++. На Rust получилось в 4+ раза медленнее, чем на С и в 2+ раза медленнее, чем на C++. Есть подозрение, что я делаю что-то неправильно, но не знаю что. Помогите, пожалуйста, разобраться.

UPD. Мои цифры:

$ gcc c_v1.c -Ofast -march=native
$ ./a.out 3000
16.439091
-287.250083
$ g++ cpp_v2.cpp -Ofast -march=native
$ ./a.out 3000
31.3826
-287.25
$ rustc rust_v1.rs -C opt-level=3 -C target-cpu=native
$ ./rust_v1 3000
71.570172703s
-287.2500833333321

 , ,

andalevor
()

Автор Wayland композитора Way Cooler переписывает своё детище с Rust на C

Форум — Development

Как-то давно смотрел список Wayland композиторов, в нём был проект Way-Cooler, примечательный тем, что декларировался как духовный наследник AwesomeWM и проект использовал Rust. Но недавно я набрёл на пост автора с грустными новостями. В новостях про Rust часто просят привести примеры ПО, разрабатываемого на этом языке, т.е. многим интересен опыт реального применения этого языка. Именно таким опытом и делится автор по ссылке выше.

Для Ъ я попробую перевести пару самых главных, на мой взгляд, тезисов из поста. Надеюсь мой перевод не исказит смысл оригинала.

Автор на протяжении примерно года писал биндинг к библиотеке wlroots, за это время он внёс более 1000 изменений и в итоге репозиторий wlroots-rs содержал более 11 тысяч строк Rust кода, при чём это не просто копипаста одного куска для каждой сущности библиотеки, автор написал несколько макросов, один из которых сам же назвал уродливым. Автор пишет, что все 11 тысяч строк это просто обёртки, которые занимаются управлением памяти и при этом они не покрывают и половины API wlroots. Кроме того, автор заметил, что разобраться и пользоваться плодом его трудов довольно сложно и некоторые отказываются от использования wlroots-rs в пользу wlroots.

Основными проблемами при написании обёртки для wlroots автор называет описание модели владения объектами wlroots на языке Rust. По ссылке автор показывает несколько примеров кода, которые демонстрируют проблему. Кроме того, автор не видит возможности написать на Safe Rust расширение протокола Wayland.

В итоге автор принял непростое решение переписать Way-Cooler на C. Автор упоминает некоторые другие проекты, столкнувшиеся с аналогичной проблемой написания биндингов, которые приняли противоположное решение – переписать библиотеки на Rust.

Предлагаю кроме обсуждения этой новости, размещать в этой теме ссылки на другие истории использования Rust.

 , ,

andalevor
()

Как писать на Си?

Форум — Development

Возник такой вопрос в ходе эксперимента. Захотелось просто ради интереса написать перемножение матриц на Си и сравнить с чужой реализацией. Написал, начал сравнивать увидел, что мой вариант сильно медленнее, подглядел в чужом коде транспонирование матрицы перед умножением, добавил, начал сравнивать снова. И заметил интересный момент мой вариант и вариант attractivechaos с одинаковыми оптимизациями выполняются за примерно одно и то же время(ещё бы, после того как я подглядел транспонирование разница в коде стала минимальной). За исключением варианта -Ofast или комбинации -O3 и -ffast-math. Тут вариант attractivechaos ускоряется в 2 раза по сравнению с -O2 и -ffast-math, а мой нет.

Собственно вопрос: почему? И ещё более интересный: где почитать о том как писать код для наиболее эффективной оптимизации компилятором?

P.S. тестил и GCC, и Clang. Результат и там, и там одинаковый.

 

andalevor
()

kernel random crng init done

Форум — General

Поставил Gentoo с systemd, поставил плазму, добавил в загрузку unit sddm. И при загрузке всё зависало на строчке «kernel random crng init done» и могло висеть довольно долго, пока я не переключался на другой терминал, тогда спустя несколько секунд загрузка продолжалась. Гугл вывел на несколько похожих тем для дебиана и манджаро. И там, и там советовали поставить haveged и это мне помогло, но стало любопытно, в чём конкретно была проблема. Кто знает?

 ,

andalevor
()

Ищу книгу по современному C++

Форум — Development

Ищу книгу, хочу разобраться с С++ и писать с использованием фишек последних стандартов. Искал в гугле, в основном попадаются старые советы с книгами в лучше случае, охватывающими С++11, а то и С++98. Пока нашёл эту. Что думаете? Может кто получше знает.

 

andalevor
()

GObject intospection

Форум — Development

Тут пишут, что можно написать свой код в стиле GObject, то можно будет, скажем, в питоне использовать этот код без дополнительных обвязок на С, просто использовав средства gobject introspection. Кто-нибудь пробовал?

 , ,

andalevor
()

glib или велосипед?

Форум — Development

Пишу небольшую библиотеку, в основном для себя, но может кому ещё пригодится. Заметил, что кое-что, что я велосипедил есть в glib и кое-что, что я только собирался велосипедить там тоже есть. Но часто здесь читал нелестные отзывы о glib. И я хочу спросить, что лучше пара своих велосипедов или завязка на glib?

 ,

andalevor
()

Как настроить блокировку экрана?

Форум — General

Привет, ЛОР. Хочу настроить i3lock при suspend. Suspend сделал при закрытии крышки ноута, фрагмент /etc/acpi/default.sh:

lid)
    case "$id" in
        close) s2ram;;
        open) :;;
    esac
    ;;
Пробовал просто добавлять i3lock в close и open, не срабатывает. Поискал по интернетам, нашёл про xautolock. Добавил в конфиг i3, xautolock запускается, могу из терминала отдать команду xautolock -locknow, параметр -detectsleep также срабатывает. Но добавление xautolock -locknow в default.sh также ничего не даёт. Как сделать правильно?

 , ,

andalevor
()

RSS подписка на новые темы