И это всё МОЁ

cast @waker


Допиливаю по-немногу SNI-плагин. Более-менее всё починил, но возник один затык, который не могу придумать, как решить (туплю) - как гарантированно отследить статус плеера при его запуске.


В данный момент отслеживаются ссобщения DB_EV_PAUSED и DB_EV_SONGCHANGED (если to == NULL - это стоп, иначе - плей) и это замечательно работает в обычном режиме. Проблема заключается в том что:



  • StatusNotifier инициализируется независимо от плеера и может проинициализироваться в произвольное время при запуске (для этого есть ожидание в отдельном потоке callback_wait_notifier_register (здесь), пока просто активное ожидание playback-а)

  • определение состояния через


DB_output_t* out = deadbeef->get_output();
switch (out->state()) {
...
}


сопряжено с трудностями, т.к. StatusNotifier может загрузиться слишком рано и получается мусор в out->state() (мусор - частично решено функцией playback_state_active_waiting) или при вызове в момент загрузки трека (подгрузки coverart или ещё чего) получается DDB_PLAYBACK_STATUS_STOP, а сообщения о готовности трека не предусмотрено.



  • определение через таймер, как делаю сейчас, в принципе, работает хорошо (пока ещё код на уровне идеи, но работает), но тут возникает проблема, что при запуске порядок сообщений выглядит таким образом (лог при помощи моего простенького отладочного плагина)


[MSG (16:21:23.495064159)] DB_EV_SONGCHANGED (1000) <0x7ffae8000c20,0,0> | from: [(nil)], to: [0x14b7360], sec: [0.000]
[MSG (16:21:23.495077924)] DB_EV_SONGSTARTED (1001) <0x7ffae8000c50,0,0> | from: [0x14b7360]
[MSG (16:21:23.495086305)] DB_EV_PAUSED (14) <(nil),1,0> | сhange: [paused]
[MSG (16:21:23.495123667)] DB_EV_CONFIGCHANGED (11) <(nil),0,0>
[MSG (16:21:23.497253534)] DB_EV_SONGCHANGED (1000) <0x7ffae8011e50,0,0> | from: [(nil)], to: [0x14b7360], sec: [0.000]
[MSG (16:21:23.497287863)] DB_EV_SONGSTARTED (1001) <0x7ffae8011e80,0,0> | from: [0x14b7360]
[MSG (16:21:23.497303655)] DB_EV_SEEKED (1005) <0x7ffae8011eb0,0,0> | from: [0x14b7360], position: [41.982]



т.е. сообщение DB_EV_SONGCHANGED приходит почему-то два раза (почему???) и после паузы тоже. Поэтому, по логике обработки сообщений, которая на данный момент используется, получается что после PAUSED пришло сразу сообщение SONGCHANGED и воспроизведение запущено.


Пока больше не могу придумать, как правильно при запуске notifier-а понять в каком состоянии его запускать, т.е. отследить в каком состоянии находится плеер на момент загрузки notifier-a (возможно, что воспроизведение уже запустили вручную, пока notifier грузился). Как я понимаю, в случае, например, больших coverart-ов состояние DDB_PLAYBACK_STATUS_STOP может продлиться довольно долго и условный sleep(какое-то время) не поможет.


Каким более правильным образом можете посоветовать решить проблему? Потому что у меня кроме как вариантов убрать, каким-то образом, второе сообщение SONGCHANGED на уровне ядра плеера или добавить какой-нибудь EVENT фактического старта воспроизведения / готовности трека (что решило бы все проблемы), опять же на уровне ядра плеера, не возникает.


ЗЫ. issue на github не создаю, потому что какбы и не баг, вроде бы, а просто мой тупизм и я что-то не понимаю.









 ,








И это всё МОЁ

10 23.255232 192.168.2.2 224.0.0.251 IGMPv2 46 Membership Report group 224.0.0.251

ось вин10 интернет через роутер.








 








И это всё МОЁ

у кого-нибудь найдется инвайта на Riseup? Буду очень благодарен!









 , , , ,








И это всё МОЁ
Доступен релиз пользовательской оболочки KDE Plasma 5.21, построенной с использованием платформы KDE Frameworks 5 и библиотеки Qt 5 с применением OpenGL/OpenGL ES для ускорения отрисовки. Оценить работу.



И это всё МОЁ

А что было бы если все провайдеры на выходные (или только в субботу) в обязательном порядке отключали интернеты домашним пользователям? В рамках информационной диеты-детокса-поста, назовите как угодно.

Дискасс








 , ,








И это всё МОЁ

Привет всем! Кто-нибудь знает, можно ли отключить питание на порту thunderbolt в Debian? Чтобы девайс, который на нём висит, не питался от него? В UEFI только уровень security порта меняется.









 ,








И это всё МОЁ

6-7 февраля 2021 года прошла одна из крупнейших бесплатных конференций, посвящённая свободному программному обеспечению — FOSDEM. Обычно конференция проводилась вживую в Брюсселе, но из-за пандемии коронавируса её пришлось перенести в онлайн. Для реализации этой задачи организаторы скооперировались с командой Element и выбрали чат на основе свободного протокола Matrix для построения федеративной сети коммуникаций в реальном времени, свободную VoIP-платформу Jitsi Meet для интеграции видеоконференций, и собственные инструменты для их автоматизации. Конференцию посетило более 30 тысяч пользователей, из которых 8 тысяч — активные, а 24 тысячи — гости.


Протокол Matrix построен на основе линейной истории событий (events) в формате JSON внутри ациклического графа событий (DAG): простыми словами, является распределённой базой данных, хранящей полную историю отправленных сообщений и данные участвующих пользователей, реплицируя эту информацию между участвующими серверами — ближайшей аналогичной по работе технологией может быть Git. Основной реализацией этой сети является мессенджер с поддержкой сквозного шифрования и VoIP (аудио- и видеозвонков, групповых конференций). Эталонные реализации клиентов и серверов разрабатываются коммерческой компанией Element, сотрудники которой также возглавляют некоммерческую организацию Matrix.org Foundation, курирующую разработку спецификации протокола Matrix. На данный момент в сети Matrix насчитывается 28 миллионов аккаунтов и 60 тысяч серверов.


( читать дальше... )









 , , , ,








И это всё МОЁ

В моём ноутбуке стоит встроенная графика и дискретная видеокарта(встроенная - овощ, AMD KABINI) (я и сам овощ, недавно перешедший с винды). С помощью интернета и командной строки я выяснил, что встроенная видеокарта - VGA controller, а дискретная - Display monitor. Как следствие, возникают два вопроса: а) так и должно быть? и б) если нет, то как это поменять?









 ,








И это всё МОЁ

сабж. с некоторых пор на особо упоротых сцайтах форма входа выглядит вот так:

логин: [поле ввода]
[войти]
потом (после ввода логина) страница перезагружается, но уже с полем для пароля.
это за что за новые веяния? интерфейс для умственно отсталых, которых наличие больше чем одного поля ввода вгоняет в ступор? или я недостаточно хипстор для таких модно-стильно-молодежных новых технологий?
впрочем, реально же есть люди, которые пишут логин, потом тянутся за мышью, тыкают в поле для пароля пишут пароль, опять тянутся за мышью и тыкают в кнопочку, вместо того чтобы нажать таб и энтер. ну ладно, про таб - это тайное знание, доступное только "тыжпогромистам", но "enter" как бы говорит само за себя...
так вот, это чтобы подобные личности не путали "ой, а куда вводить логин, а куда пароль?" (с учетом того, что оно прямо рядом подписано, часто по-русски)
иначе зачем гонять трафик и лишний раз нагружать эти ваши сервера?













И это всё МОЁ

нашел книгу, где сказано:

sort -r | uniq < file_name

shell должен перенаправить file_name в sort, bash перенаправляет в uniq, как должно быть на самом деле?

вот ссылка на книгу, там нужна 5-я глава: systemsprogrammingbook.com








 , ,








И это всё МОЁ
И это всё МОЁ
 start@start-Lenovo-ideapad-100-15IBY:~$ sudo fdisk -l
Диск /dev/loop0: 61,65 MiB, 64626688 байтів, 126224 секторів
Одиниці: секторів з 1 * 512 = 512 байтів
Розмір сектора (логічного/фізичного): 512 байтів / 512 байтів
Розмір введення-виведення (мінімальний/оптимальний): 512 байтів / 512 байтів


Диск /dev/loop1: 55,48 MiB, 58159104 байтів, 113592 секторів
Одиниці: секторів з 1 * 512 = 512 байтів
Розмір сектора (логічного/фізичного): 512 байтів / 512 байтів
Розмір введення-виведення (мінімальний/оптимальний): 512 байтів / 512 байтів


Диск /dev/loop2: 64,79 MiB, 67915776 байтів, 132648 секторів
Одиниці: секторів з 1 * 512 = 512 байтів
Розмір сектора (логічного/фізичного): 512 байтів / 512 байтів
Розмір введення-виведення (мінімальний/оптимальний): 512 байтів / 512 байтів


Диск /dev/loop3: 62,9 MiB, 65105920 байтів, 127160 секторів
Одиниці: секторів з 1 * 512 = 512 байтів
Розмір сектора (логічного/фізичного): 512 байтів / 512 байтів
Розмір введення-виведення (мінімальний/оптимальний): 512 байтів / 512 байтів


Диск /dev/loop4: 55,39 MiB, 58073088 байтів, 113424 секторів
Одиниці: секторів з 1 * 512 = 512 байтів
Розмір сектора (логічного/фізичного): 512 байтів / 512 байтів
Розмір введення-виведення (мінімальний/оптимальний): 512 байтів / 512 байтів


Диск /dev/loop5: 217,92 MiB, 228478976 байтів, 446248 секторів
Одиниці: секторів з 1 * 512 = 512 байтів
Розмір сектора (логічного/фізичного): 512 байтів / 512 байтів
Розмір введення-виведення (мінімальний/оптимальний): 512 байтів / 512 байтів


Диск /dev/loop6: 51,4 MiB, 53522432 байтів, 104536 секторів
Одиниці: секторів з 1 * 512 = 512 байтів
Розмір сектора (логічного/фізичного): 512 байтів / 512 байтів
Розмір введення-виведення (мінімальний/оптимальний): 512 байтів / 512 байтів


Диск /dev/loop7: 218,102 MiB, 229629952 байтів, 448496 секторів
Одиниці: секторів з 1 * 512 = 512 байтів
Розмір сектора (логічного/фізичного): 512 байтів / 512 байтів
Розмір введення-виведення (мінімальний/оптимальний): 512 байтів / 512 байтів


Диск /dev/sda: 465,78 GiB, 500107862016 байтів, 976773168 секторів
Модель диска: WDC WD5000LPCX-2
Одиниці: секторів з 1 * 512 = 512 байтів
Розмір сектора (логічного/фізичного): 512 байтів / 4096 байтів
Розмір введення-виведення (мінімальний/оптимальний): 4096 байтів / 4096 байтів
Тип мітки диска: gpt
Ідентифікатор диска: 39B24DF9-CA74-4064-98E2-2B2F0068BC55

Пристрій Початок Кінець Сектори Розмір Тип
/dev/sda1 2048 1050623 1048576 512M Система EFI
/dev/sda2 1050624 976771071 975720448 465,3G Файлова система Linux




Диск /dev/loop8: 31,9 MiB, 32600064 байтів, 63672 секторів
Одиниці: секторів з 1 * 512 = 512 байтів
Розмір сектора (логічного/фізичного): 512 байтів / 512 байтів
Розмір введення-виведення (мінімальний/оптимальний): 512 байтів / 512 байтів


Диск /dev/loop9: 529,6 MiB, 554762240 байтів, 1083520 секторів
Одиниці: секторів з 1 * 512 = 512 байтів
Розмір сектора (логічного/фізичного): 512 байтів / 512 байтів
Розмір введення-виведення (мінімальний/оптимальний): 512 байтів / 512 байтів


Диск /dev/loop10: 50,69 MiB, 53133312 байтів, 103776 секторів
Одиниці: секторів з 1 * 512 = 512 байтів
Розмір сектора (логічного/фізичного): 512 байтів / 512 байтів
Розмір введення-виведення (мінімальний/оптимальний): 512 байтів / 512 байтів


Диск /dev/loop11: 31,9 MiB, 32595968 байтів, 63664 секторів
Одиниці: секторів з 1 * 512 = 512 байтів
Розмір сектора (логічного/фізичного): 512 байтів / 512 байтів
Розмір введення-виведення (мінімальний/оптимальний): 512 байтів / 512 байтів







 , ,








И это всё МОЁ

Информация о система
https://pastebin.com/Vgzi8c8U


Проблема следующая.


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


Если перейти в консоль и проверить htop, то процесс kwin_x11 100% одного ядра использует.


Происходит именно в такой последовательности- завершение ручное сеанса, потом вход


После автоматической блокировки все ок.


Да,такой момент еще. Если выбран стандартный для дебиана логаут экран,то работает ОК. Как только я переключаюсь на тот же Breeze или любые другие начинаются такие проблемы.


Какие логи мне надо выложить?


Спасибо









 ,








И это всё МОЁ

Цена 130 т.р, торг уместен.

Гарантия от магазина окончена.

Если надо что уточнить то звоните по указанному в профиле номеру.

Если хотите посмотреть фотки то пишите в вацап или телеграм по тому же номеру.


Условия эксплуатации видеокарты: https://m.youtube.com/watch?v=wMK35st0bJM


линукс тут при том, что на компьютере под Debian с этой видеокартой я всё никак не добъюсь работы вулкана.









 , , , ,








И это всё МОЁ

Никогда особо не имел дела с dnf, интересно как правильно это сделать. Сижу сейчас на cinnamon, хочу переехать на кеды. Я так понимаю, есть группы пакетов и как-то можно через них рулить этим вопросом. Как правильно решить мою задачу? Как полностью удалить все хвосты от старого окружения и поставить новое?









 , ,








И это всё МОЁ
И это всё МОЁ

Здравствуйте.
Решил установить Debian 10. Установил, начал устанавливать дрова на nvidia по инструкции с wiki.debian. В процессе установки вылезло сообщение Conflicting nouveau kernel module loaded… мол после перезагрузки всё исправится.
После перезагрузки иксы не стартанули. Просто на черном фоне запрос логина и пароля. Ввожу. Потом пишу sudo startx. Вываливается ошибка: xf86EnableIOPorts: failed to set IOPL for I/O (Operation not permitted). Еще пишет: Number of created screens does not match number of detected devices.
Помогите решить проблему. Что то не соображу, как тут фото выложить…









 ,








И это всё МОЁ

Намедни вышла Slackware 15.0 Alpha 1. Версия glibc обновлена до 2.33. В этой связи пересобрано более 1500 пакетов.
Также обновлено ядро до версии 5.10.


Для загрузки подготовлен образ, а также live-образ.









 








И это всё МОЁ
Спустя почти пять лет с момента прошлого выпуска началось альфа-тестирование дистрибутива Slackware 15.0. Проект развивается с 1993 года и является старейшим из ныне существующих дистрибутивов. Особенностями дистрибутива являются отсутствие усложнений и простая система инициализации в стиле классических систем BSD, что делает Slackware интересным решением для изучения работы Unix-подобных систем, проведения экспериментов и знакомства с Linux. Для загрузки.



И это всё МОЁ