LINUX.ORG.RU

Сообщения question4

 

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

Форум — Development

Захотелось попробовать расшифровать шифр из «Жангады» Жюля Верна. Там был текст из 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

Форум — Linux-org-ru

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

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

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

 

question4
()

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

Форум — Multimedia

Скачал фильм в виде полутора десятков видеофайлов (не помню, откуда). Склеил их в один командой 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

Форум — Talks

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

Форум — Talks

Наконец дошли руки попробовать новый 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

Форум — Talks

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
()

Поясните, пожалуйста, как получается 11?

Форум — Talks

Вот такой циферблат: https://idiod.video/r5x8la.jpg

Что означают символы в данном выражении?

  10
|  ⋃ {n} | 
  n=0

Я правильно понял, что имеется в виду объединение 1-элементных множеств вида {6}, от {0} до {10}, а |…| берёт число элементов?

 

question4
()

Как проверить цифровую подпись?

Форум — Security

Есть файл-документ. Есть цифровая подпись в другом файле. Как проверить подлинность?

Цифровая подпись представляет собой текстовый файл ~5K, с расширением .sig, первая и последняя строки -----BEGIN CMS----- и -----END CMS-----. Ключ выдан официальным российским удостоверяющим центром. Или налоговой.

Как узнать, соответствует ли подпись выдавшей организации? Как узнать, соответствует ли подпись документу? Только через сайт https://www.gosuslugi.ru/eds?

P.S. Можно ли где-то легально скачать одобренные государством открытые ключи?

Перемещено hobbit из general

 ,

question4
()

FreeDroidRPG 1.0 RC3

Новости — Игры
Группа Игры

На прошлой неделе вышел новый релиз-кандидат FreeDroidRPG — постапокалиптической изометрической игры, развившейся из свободного клона ParaDroid с заметным влиянием Fallout 1 и 2.

Из важных нововведений — поддержка AppImage. Также обещают, что игра скоро появится в Steam. В основном, изменения косметические — расположение текста, улучшение интерфейса, новые звуковые эффекты и музыка.

Ебилд уже есть :)

Обсуждение на opennet.ru

Страница в Steam

>>> Новость на официальном сайте

 , ,

question4
()

Куда пойти в Петербурге?

Форум — Talks

Куда стоит сходить на этих выходных (19-20 ноября) в Санкт-Петербурге группе туристов? Есть ли что-нибудь, что стоит посетить?

Итог: Беспорядочные шатания по всей длине Невского и немного вдалеке. Прошли вдоль Гребного(sic) канала, при этом мигавшая вдалеке новогодняя ёлка оказалась Лахта-центром. Прошлись по магазинам Гостиного двора. Прокатились на экскурсионном автобусе по школьному тарифу. Посмотрели, как артиллеристы стрельбой отмечают профессиональный праздник. Послушали музыкантов на Невском, но было слишком ветрено, чтобы этим долго наслаждаться. Пытались сходить в кочегарку Цоя на концерт Летова, но застряли на ремонтируемом Дворцовом Биржевом мосту, замёрзли и пошли в Police Station на джазовый джем, где хорошо себя проявил только саксофонист. Попробовали шаверму (кто не успел отравиться тыквенным супом). Поморжевали у стен Петропавловской крепости. Забрались на купол Исакиевского, где один из участников поездки сделал другой предложение (с вопиющими нарушениями техники безопасности и под аплодисменты экскурсионных групп). И на этом время кончилось.

Рекомендации для летнего времени принимаются.

 , ,

question4
()

Аналог Nitter для Tumblr

Форум — Talks

Напомните, пожалуйста, какие сайты дают доступ к Tumblr без логинов, динамически-ползучей подгрузки и джаваскрипта? Для Твиттера есть многочисленные Nitter, а что для Тамблера?

https://github.com/mendel5/alternative-front-ends его не упоминает, но он существует.

 ,

question4
()

Страница пытается открыть внешнее приложение

Форум — Desktop

Иногда в вебе встречаются ссылки с протоколами отличными от HTTP и HTTPS. Например: irc:// tg:// mailto:// Если кликнуть, откроется внешняя программа или появится диалог, предлагающий её выбрать.

Некоторые сайты пытаются открывать такие ссылки автоматически. Джаваскриптом. НА КАЖДОЙ СТРАНИЦЕ. Гады.

Обработка протколов определяется настройками network.protocol-handler.* в about:config. http://kb.mozillazine.org/Network.protocol-handler.expose-all#Related_preferences

Там имеются следующие булевы параметры:
network.protocol-handler.expose-all — открывать все протоколы, которые явно не запрещены; false запретит даже http/https.
network.protocol-handler.expose.<протокол> — открывать протокол.
network.protocol-handler.external-default — открывать все протоколы во внешней программе.
network.protocol-handler.external.<протокол> — открывать данный протоколы во внешней программе; false — пытаться в браузере.
network.protocol-handler.warn-external-default — для всех выводить диалог при попытке открыть во внешней программе.
network.protocol-handler.warn-external.<протокол> — то же для конкретного протокола.

Ещё бывают network.protocol-handler.app.<протокол> с путями для запуска приложений-обработчиков. У меня они отсутствуют, а информация берётся откуда-то из иксов.

Чтобы не выскакивали окна, надо создать network.protocol-handler.expose.<протокол> = false и network.protocol-handler.external.<протокол> = false.

Вопрос: Зачем нужно external = false? Почему одного expose = false недостаточно?

 ,

question4
()

Перешивка флешек

Форум — Linux-hardware

Купил терабайтную флешку micro-SDXC на Алиэкспрессе. В назначенное время не пришла. Открыл спор, вернули деньги. Через месяц пришла флешка. Попытался связаться с администрацией — не пробился через робота. С магазином — не отвечают. Посмотрел страницу магазина — весь товар убрали, куча негативных отзывов, что мошенники — перешивают флешки на бОльшую ёмкость. Попробовал флешку — небольшие объёмы пишутся нормально, при больших (~40 Гб) часть файлов забивается мусором. Похоже, такая же перешитая.

Поэтому возник вопрос: как её перешить обратно на реальный объём? Даже если там 16 гигабайт, лишними они не будут.

Если предложите искать документацию на контроллер, как узнать его средствами Линукса?

Не вполне удовлетворительный ответ: https://github.com/AltraMayor/f3 создаст раздел по размеру работоспособной области. Но вместо объёма «честной» области он определяет объём до первого нечитаемого сектора.

 

question4
()

Qt WebKit или Qt WebEngine?

Форум — Talks

Каково нынешнее состояние? Считать WebKit мёртвым и не представляющим интереса? Или есть что-то живое и развивающееся, что поддерживает его актуальность?

Зачем спрашиваю: пытаюсь работать с GoldenDict, а он при поиске падает с ошибкой в недрах вебкита. Разбираться с первопричиной, или портировать на WebEngine и разбираться там, если сразу не заработает? Нашёлся живой и бодрый форк на WebEngine. Поэтому вопрос чисто из любопытства, без практического интереса.

 ,

question4
()

SSE3 vs SSSE3

Форум — Linux-hardware

Если в /proc/cpuinfo в разделе flags показывает «ssse3», но не показывает «sse3», значит ли это, что поддержка SSE3 недоступна? Или подразумевается, что SSSE3 включает SSE3?

Ответ: он обозначается «pni».

https://packages.gentoo.org/useflags/search?q=cpu_flags_x86
https://gitweb.gentoo.org/repo/gentoo.git/plain/profiles/desc/cpu_flags_x86.desc

Автоматически список флагов выдаёт app-portage/cpuid2cpuflags https://github.com/projg2/cpuid2cpuflags/

 

question4
()

Сохранять файлы с именами в 346 знаков

Форум — Development

Требуется сохранить из браузера в автоматическом режиме большое число файлов длиной ~346 знаков ASCII. Ext4 такую длину не поддерживает — разве что пересобирать драйвер в ядре. И другие файловые системы тоже, вроде, не больше 255. Поэтому вопрос: как обойти ограничение?

Можно ли сделать драйвер FUSE, который работал бы подобно fuse-posixovl: создавал файлы с короткими именами, сохранял короткие и длинные в специальный файл, а всем программам, обращающимся к файловой системе «fuse-longname», показывал бы длинные имена? Есть ли готовые примеры драйверов fuse, из которых можно быстро сделать подобное?

Ответ: https://github.com/i-rinat/longnamefs делает именно это. ./longnamefs --backend сохранять_файлы_и_имена_сюда/ монтировать_сюда/ Правда, ограничение для FUSE 1024 байта.

 , ,

question4
()

Коммерчески выпускаемые термоэлектрические генераторы

Форум — Talks

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

Сейчас поискал — ничего нет, кроме статей «сделай сам». Не взлетело?

 

question4
()

Мегафон блокировал t.me (уже разблокировал)

Форум — Talks

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

С чего вдруг?

$ curl -ILk https://t.me/
HTTP/1.1 302 Found
Location: http://m.megafonpro.ru/rkn?channel=2m

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Sat, 29 Oct 2022 21:53:38 GMT
Content-Type: text/html
Content-Length: 162
Connection: keep-alive
Location: http://m.megafonpro.ru/rkn-landing/rkn

HTTP/1.1 200 OK
Server: nginx
Date: Sat, 29 Oct 2022 21:53:38 GMT
Content-Type: text/html
Content-Length: 2220
Connection: keep-alive
Last-Modified: Thu, 25 Aug 2022 11:01:49 GMT
Vary: Accept-Encoding
ETag: "6307569d-8ac"
Accept-Ranges: bytes

Спасибо за объяснение.

 ,

question4
()

Проверьте, пожалуйста, качество видео

Форум — Multimedia

Проверял, насколько оптимизация помогла проигрыванию видео в Фаерфоксе и MPV, вот в этом видео: https://www.youtube.com/watch?v=jqOx32Cv-XI в районе 1:33 увидел много зелёных артефактов. Пожалуйста, скажите, есть ли артефакты у вас?

 

question4
()

Как в 7-zip обеспечить общий пароль на все файлы?

Форум — General

Есть запароленный архив .7z. Я добавляю в него ещё один файл, который тоже защищаю паролем. Существует ли простой способ обеспечить совпадение старого и нового паролей? То есть если я введу для нового файла пароль, непригодный для распаковки имеющихся, архиватор выдаст ошибку и откажется продолжать работу.

Если 7-zip так не умеет, есть ли архиваторы, которые умеют?

Если предложите обойтись скриптом-обвязкой, как в скрипте ввести текст пароля, чтобы он не попал в историю? Пробел перед командой не работает.

 

question4
()

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