LINUX.ORG.RU

Сообщения question4

 

Внезапно отключается мышь

Оптическая мышь Genius время от времени перестаёт работать.

В dmesg вижу только usb 3-3: USB disconnect, device number 2

Если её выдернуть и вставить, работает дальше. В dmesg:

[65657.064508] usb 3-3: USB disconnect, device number 2
[65842.769295] usb 3-3: new low-speed USB device number 3 using ohci-pci
[65842.934317] usb 3-3: New USB device found, idVendor=0458, idProduct=0186, bcdDevice=24.58
[65842.934327] usb 3-3: New USB device strings: Mfr=4, Product=40, SerialNumber=0
[65842.934333] usb 3-3: Product: Wired Mouse
[65842.934336] usb 3-3: Manufacturer: KYE SYSTEMS CORP.
[65842.941930] input: KYE SYSTEMS CORP. Wired Mouse as /devices/pci0000:00/0000:00:12.0/usb3/3-3/3-3:1.0/0003:0458:0186.0002/input/input10
[65842.942123] hid-generic 0003:0458:0186.0002: input,hidraw0: USB HID v1.11 Mouse [KYE SYSTEMS CORP. Wired Mouse] on usb-0000:00:12.0-3/input0
[65842.942279] usbhid 3-3:1.1: couldn't find an input interrupt endpoint

При включении то же самое:

[    1.354229] usb 3-3: New USB device found, idVendor=0458, idProduct=0186, bcdDevice=24.58
[    1.354288] usb 3-3: New USB device strings: Mfr=4, Product=40, SerialNumber=0
[    1.354338] usb 3-3: Product: Wired Mouse
[    1.354385] usb 3-3: Manufacturer: KYE SYSTEMS CORP.
[    1.361868] input: KYE SYSTEMS CORP. Wired Mouse as /devices/pci0000:00/0000:00:12.0/usb3/3-3/3-3:1.0/0003:0458:0186.0001/input/input3
[    1.362185] hid-generic 0003:0458:0186.0001: input,hidraw0: USB HID v1.11 Mouse [KYE SYSTEMS CORP. Wired Mouse] on usb-0000:00:12.0-3/input0
[    1.362381] usbhid 3-3:1.1: couldn't find an input interrupt endpoint

Из-за чего происходят такие отключения?

 

question4
()

Кто говорил, что в JSON невозможно добавлять комментарии?

https://github.com/mikf/gallery-dl/blob/master/docs/gallery-dl-example.conf

Если парсить средствами Питона (и не только его), можно добавлять повторяющиеся ключи. Значения ключей "#" — комментарии.

Не идеальное решение, но если этот JSON не пишется машиной, а только читается, всё нормально.

 , ,

question4
()

Можно открыть тему для правки?

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

Если это невозможно, добавьте, пожалуйста, в него следующий текст:

«UPDATE: В итоге сайт решили не закрывать. Обсуждение скриптов для скачивания — ниже.»

 

question4
()

Как экранировать пробелы во вложенных командах?

Есть однострочник:

for f in oldpath/*.png; do convert "$f" $PARAMETERS "newpath/`basename "$f" .png`.webp"; done

Он работает в 1 поток. Можно запускать каждую команду отдельным процессом:

for f in oldpath/*.png; do convert "$f" $PARAMETERS "newpath/`basename "$f" .png`.webp" & done

Но памяти хватает файлов на 300, если больше — всё прибивается по OOM.

Я хотел использовать GNU parallel, точнее sem:

for f in oldpath/*.png; do sem -j8 convert "$f" $PARAMETERS "newpath/`basename "$f" .png`.webp" & done

Но как выяснилось, если в $f есть пробелы, convert получит его без кавычек и не сможет работать.

Вопрос: как принято передавать имена с пробелами пробелы таким утилитам, как sem?

Ответ: У sem и parallel есть параметр --quote или -q.

for f in oldpath/*.png; do sem -q -j8 convert "$f" $PARAMETERS "newpath/`basename "$f" .png`.webp" & done

Но я всё ещё жду ответов о возможности более общего решения. Например, утилиты вроде tr или sed, автоматически экранирующей строки.

 ,

question4
()

Почему boost так любит ломать обратную совместимость?

Первые года 3 на нынешнем месте работы половину рабочего времени я вылавливал баги в сторонних библиотеках, зависевших от Буста. Мы регулярно их обновляли, менялись версии в boost*.dll, старые баги исчезали, появлялись новые… Потом Буст из дистрибутива исчез, и новые баги появляться перестали.

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

Сейчас слотов всего 2, проблем давно не видел, но каждый раз при обновлении зависимых программ получаю предупреждение: «осторожно, ABI часто ломается».

Только что скачал исходники программы, не обновлявшейся лет 7, но точно собиравшейся с версией 1.60. Попробовал собрать. Не нашло какой-то метод. Погуглил. В 1.60 этот метод deprecated, рекомендуют заменить, в 1.66 его совсем убрали, а в 1.81 исчезло и то, на что рекомендовали заменять.

Почему в других библиотеках таких проблем нет, а в Бусте есть?

 , ,

question4
()

Файл *.torrent из ссылки magnet

Если доступны пиры, по magnet-ссылке клиент может получить всю информацию, содержащуюся в торрент-файле. Захотелось её сохранить на диск в torrent-файл, не скачивая большие файлы. В сети нашёл только сайт magnet2torrent.com и совет выкачать все файлы и создать торрент. Потом сообразил поискать в ~/.local и ~/.cache (например ~/.local/share/data/qBittorrent/BT_backup). Но вопрос остался. Почему интерфейс распространённых клиентов не имеет функции «сохранить торрент»?

 ,

question4
()

KDE виснет, куда копать?

Внезапно интерфейс становится всё менее отзывчивым и через несколько минут вообще прекращает реагировать на нажатия клавиш и клики мышью. Перерисовка окна может застрять на середине. Переключиться в консоль по Ctrl-Alt-F2 можно. Нагрузка в htop — гораздо ниже 50% (и CPU, и память), в iotop-с и xrestop тоже ничего страшного. Своп может отсутствовать.

Помогает Alt-SysRq-REI с повторным запуском иксов. Или DISPLAY=:0 kwin_x11 --replace из консоли.

В dmesg ничего, metalog был отключён. Как выяснилось, /var/log/Xorg.0.log не используется уже много месяцев.

Gentoo с OpenRC (без systemd), xorg-server-21.1.6, версии компонентов КДЕ 5.25.5, 5.99.0 или 22.08.3. Началось после апдейта на 5.25.4 с чего-то существенно более старого, полугодовой давности. Когда виснет, всегда одновременно запущены Firefox, Konsole, GoldenDict (форк на qtwebengine-5.15.8), KRDC, нередко что-то ещё.

Что это может быть, как определить? И как включить лог иксов?

Дополнение: Кто-нибудь сталкивался с багом dri_is_thread_safe в Mesa? https://gitlab.freedesktop.org/mesa/mesa/-/commit/b111e8aa4940e8b155f38b5ef238c295ded8a6b4 Оно?

 , ,

question4
()

Перезапустить иксы, не останавливая гуёвое приложение

Под X Window под KDE5/Plasma запущено графическое приложение. Avidemux. Отработал уже сутки и будет работать ещё двое. Но кеды/плазма повисли. Можно двигать мышью, но ни клики, ни нажатия клавиш ничего не делают. Можно переключиться в tty2 (по Ctrl-Alt-F2) и что-то сделать оттуда. Как перезапустить КДЕ?

fg, bg, Ctrl-Z, screen, disown бесполезны, так как avidemux был запущен из недоступного окна Konsole.

Поможет ли DISPLAY=:0 killall plasmashell && kstart5 plasmashell --replace ? Или так закроет все работающие гуёвые программы?

Меня устроит вариант, когда окно avidemux станет невидимым, но программа продолжит работать.

Ответ: DISPLAY=:0 kwin_x11 --replace & из tty3 перезапустило зависшую графику. Окна Konsole и Avidemux продолжили работать нормально. После этого я закрыл сессию tty3, и всё продолжило работать. А plasmashell понадобилось запустить, чтобы заработала панель.

 , ,

question4
()

Как запустить FreeCiv без людей?

В некоторых играх Civilization при помощи читов можно было сделать, чтобы все игроки управлялись компьютером. И смотреть мультфильм. А как сделать то же во FreeCiv?

Ответ: Сделать всех игроков AI, сделать себя глобальным наблюдателем, выставить положительный таймаут хода. Можно при генерации мира, можно на любом ходу. Соответствующие консольные команды: /o, /aitoggle <имя>, /set timeout 10.

 

question4
()

В уведомлениях неверное время без JS

Если отключён джаваскрипт, в уведомлениях к моим темам показывается неверное время для комментариев, не являющихся ответами на мои комментарии. Пример: для pic4a.ru всё? последний комментарий от 15.01.23 12:06:25, а показывает «вчера».

 

question4
()

avidemux использует только 2 потока

Перекодирую видео avidemux-ом, поставил число threads по числу ядер процессора, а используются только 2 из 8. В чём проблема, куда копать?

Avidemux 2.7.8, ffmpeg 4.4.3, перекодирую из MP4 в Webm, задал уменьшение объёма с ~15M до 10M. Процессор — AMD FX-8300, видеокарта не задействуется, вроде. Gentoo.

 ,

question4
()

pic4a.ru всё?

@pi11, на главной странице 404. Сайт не может продолжать работу?

Спасибо, что старые картинки остаются доступны.

 

question4
()

Заблокировали почту на Mail.ru

С формулировкой, что какой-то подозрительный IP. IP был рабочий, белый, но я с него туда логинился раз в год-два. С домашних динамических тоже прекратило пускать. Переписка с техподдержкой ничего не дала, так как я не помнил, под каким именем регистрировался. Но очень упорно выпрашивали телефон. Ладно, купил симку с тарифом 2 рубля в 3 месяца, ещё раз попробовал залогиниться, вбил свежекупленый номер. И ещё попытался вспомнить дату рождения и контрольный вопрос — очень сомневаюсь, что угадал.

Через несколько часов получил линк, по которому мне предложили вбить новый пароль, проверили телефон и пустили. Это что получается, любой, кто согласится предъявить телефон может занять заблокированный аккаунт?

 , ,

question4
()

Словарь синонимов

Искал анекдоты про девопсов, наткнулся на https://github.com/griever-gf/korni_russkogo/blob/master/data/korni_dictionary.csv

Более 14 тысяч заимствованных слов с русскими синонимами. Полезная иногда вещь. Или просто поржать. «Мокроступы» есть. Абсорбция есть, адсорбции нет.

 

question4
()

Как сравнить гистограммы?

Захотелось попробовать расшифровать шифр из «Жангады» Жюля Верна. Там был текст из 252 букв: message = 'СГУЧПВЭЛЛЗЙРТЕПНЛНФГИНБОРГЙУГЛЧДКОТХЖГУУМЗДХРЪСГСЮДТПЪАРВЙГГИЩВЧЭЕЦСТУЖВСЕВХАХЯФБЬБЕТФЗСЭФТХЖЗБЗЪГФБЩИХХРИПЖТЗВТЖЙТГОЙБНТФФЕОИХТТЕГИИОКЗПТФЛЕУГСФИПТЬМОФОКСХМГБТЖФЫГУЧОЮНФНШЗГЭЛЛШРУДЕНКОЛГГНСБКССЕУПНФЦЕЕЕГГСЖНОЕЫИОНРСИТКЦЬЕДБУБТЕТЛОТБФЦСБЮЙПМПЗТЖПТУФКДГ' и N-значное число, задававшее кольцевые сдвиги. В романе шифр описывался как принципиально невзламываемый из-за большой вычислительной сложности, но к моменту публикации его уже научились вскрывать. Для этого берут срезы (или какой принят термин?) message[0::N], message[1::N] … message[N-1::N], для каждого строят гистограмму вероятностей букв и сравнивают с эталонной, насколько нужно сдвинуть.

Вопрос: как это сравнение гистограмм реализовать программно?

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

Для определённости — код:

message = 'СГУЧПВЭЛЛЗЙРТЕПНЛНФГИНБОРГЙУГЛЧДКОТХЖГУУМЗДХРЪСГСЮДТПЪАРВЙГГИЩВЧЭЕЦСТУЖВСЕВХАХЯФБЬБЕТФЗСЭФТХЖЗБЗЪГФБЩИХХРИПЖТЗВТЖЙТГОЙБНТФФЕОИХТТЕГИИОКЗПТФЛЕУГСФИПТЬМОФОКСХМГБТЖФЫГУЧОЮНФНШЗГЭЛЛШРУДЕНКОЛГГНСБКССЕУПНФЦЕЕЕГГСЖНОЕЫИОНРСИТКЦЬЕДБУБТЕТЛОТБФЦСБЮЙПМПЗТЖПТУФКДГ'

alph32 = 'АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'
def rln32(letter):
    '''Номер буквы 32-буквенного русского алфавита.'''
    return alph32.index(letter);

def letter_frequencies(text):
    '''Частоты букв в тексте.'''
    return [ text.count(letter) / len(text) for letter in alph32 ]

etalon = letter_frequencies(sample_text) # эталонная гистограмма вероятностей букв

def shiftmatch(a1, a2, shift):
    '''Сумма квадратов разностей элементов списков для сдвига shift.'''
    return sum((val - a2[ (pos + shift) % 32 ])**2  for pos, val in enumerate(a1))

for razr in range(1,13): # длина ключа
    shifts = [0] * razr
    for place in range(razr): # позиция в ключе
        probs = letter_frequencies(message[place::razr]) # гистограмма для позиции
        match = [ shiftmatch(etalon, probs, s)*100 for s in range(32) ]
        mm = min(match)
        shifts[place] = match.index(mm);
        print(razr, place, shifts[place], mm, sep = '\t');
    print(''.join(alph32[(rln32(l) - shifts[p % razr]) % 32] for p,l in enumerate(message)))

Для 6-значного ключа скрипт подобрал верное значение [4, 3, 2, 5, 1, 3], но как численно обосновать, что ключ 6-разрядный?

 ,

question4
()

PR_IO_TIMEOUT_ERROR

У меня одного сайт через раз открывается? Постоянно «Время ожидания соединения истекло» «При соединении с www.linux.org.ru произошла ошибка. PR_IO_TIMEOUT_ERROR»

Мегафон, Московская область.

23:03 — заработало нормально, вроде.

 

question4
()

Проблема с ключевым кадром(?) при склейке файлов

Скачал фильм в виде полутора десятков видеофайлов (не помню, откуда). Склеил их в один командой ffmpeg -f concat -i список.txt -c copy имя.mp4. На стыке файлов 13 и 14 — ошибка. В mplayer в этом месте изображение на несколько секунд замирает, в mpv перескакивает на несколько секунд вперёд и рассинхронизируется со звуком. Если смотреть 14-й файл, потерянные кадры там присутствуют в самом начале.

Можете скачать и убедиться: 13.cache.flv, 14.cache.flv, list2.txt, склеивать командой
ffmpeg -f concat -i list2.txt -c copy 13-14.flv
или
ffmpeg -f concat -i list2.txt -c copy 13-14.mp4
Глюк в районе 0:06:42.

В чём проблема? Лечится?

Да, я знаю, что этот фильм можно скачать в другом месте. Но интересно, как детектировать такую проблему, если она возникнет снова, и как с ней бороться?

 

question4
()

Поддержка CUDA на Radeon

https://market.yandex.ru/product--videokarta-peladn-amd-radeon-rx580-rx580-8g-d5/1766176049/question--razve-u-amd-byvaet-podderzhka-cuda/7294130

Какой-то ушлый ИП перепродаёт видеокарты AMD и ставит в свойствах поддержку CUDA. Мотивировка:

CUDA … означает использование технологии параллельных вычислений, что формально соответствует и возможностям данной видеокарты, так как на борту у нее имеются 2034 потоковых процессора, которые как раз и занимаются постоянными параллельными вычислениями.

:)

P.S. Похоже pleer.ru занимается тем же.

 , ,

question4
()

Wget vs. Wget2

Наконец дошли руки попробовать новый Wget.

Дано: сайт на сильно допиленном Wordpress. Большая часть текста — в виде фоновых изображений. API заблокирован. Оглавления нет. Писать скрипт-паук для curl лень.

wget -m качал сайт двое суток и не закончил. Как выяснилось, ходил кругами, комбинируя теги, режимы сортировки и таймстэмпы. Успел скачать 3 гигабайта страниц.

wget2 -m скачал 2500 сгенерированных страниц (28 мегабайт) за неполные 4 минуты и остановился. На 60 мегабайт картинок ушло менее 1 минуты из этих 4.

Если я правильно понял, при редиректах wget считает 2 страницы по разным адресам разными, а wget2 — одной, и повторно не скачивает.

Заодно проверил мой «любимый» баг фильтра -R. Wget2 не ходит по страницам из чёрного списка, wget скачивает их и сразу удаляет. Говорят, исправить это без переписывания с нуля было невозможно.

Как мне показалось, у wget2 заметно меньше паузы между скачиваемыми файлами, что в данном случае также дало кратное ускорение — старый wget скачал 4500 страниц (60 мегабайт) за 25 минут.

 , ,

question4
()

Амазон будет экранизировать Warhammer 40 000

https://dtf.ru/cinema/1508405-thr-amazon-vedet-peregovory-o-seriale-po-warhammer-40-000-s-genri-kavillom-v-glavnoy-roli
https://dtf.ru/cinema/1509764-amazon-podtverdil-chto-zaymetsya-kinovselennoy-warhammer-40-000-vmeste-s-genri-kavillom

Купили права (минимум, на игровые фильмы и сериалы) и начали готовиться снимать. Пока нет ни сценария, ни сценаристов, ни режиссёра, ни продюсера. Даже персонажей и место действия не выбрали. Но в главной роли будет Генри Кавилл, бывший ведьмак Геральт.

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

 , wh40k

question4
()

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