LINUX.ORG.RU

Сообщения 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
()

О зоологии и программировании

Форум — Talks

https://habr.com/ru/post/254473/

Вы неправильно пишете животных

Животные – это платформы с очень ограниченной памятью, вычислительными способностями и возможностями модификаций. Разработчикам энимал-сцены приходится выдавать практически гениальные низкоуровневые алгоритмы. Правда, большое количество хардкода вызывает характерные проблемы с отсутствием проверки в экзотических условиях. Та же фильтрация входных данных делается очень и очень криво.

Не знаю, кто писал большую часть птиц, но я хочу обратить внимание на особенность, позволяющую провести инъекцию произвольного яйца в гнездо. Дело в том, что птица проверяет только расположение и количество яиц, но не их хэши. В 20% случаев кукушка, эксплуатирующая этот баг, может внести яйцо с сохранением контрольной суммы, чего вполне достаточно для повышения прав в гнезде.

Но пойдём далее. Я не знаю, кто разрабатывал архитектуру ящериц, но они бегают в одном процессе, а дышат в другом. При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен.

Да, ещё о птицах, чтобы два раза не вставать. У них насквозь кривой модуль распознавания «свой-чужой». Что позволяет провести animal-in-the-middle-атаку с помощью подстановки звука птенца. Всё, что примерно совпадает по размерам и при этом передаёт открытую часть ключа, нужно покормить. Похожий баг есть у некоторых грызунов, что позволяет предположить проблемы с общей библиотечной функцией.

Теперь муравьи. Муравьёв довольно легко зациклить. Навигационный блок у них совмещён с системой приоритетов ОС, поэтому при построении циклического маршрута образуется «спираль смерти», затягивающая всё больше и больше ресурсов муравейника – и всё это зависает на 3-4 дня, пока муравьи не погибнут от истощения или что-то снаружи не поменяет навигацию.

Спираль будет забирать всё больше муравьёв из доступных источников, пока приоритеты не поменяет внешнее событие или муравьи не умрут

А вот страус – вершина оптимизации. То, как именно в него впихнули пищеварение, вообще достойно войти в «Жемчужины программирования». Чтобы эта птичка нормально переваривала пищу, разработчик придумал заставить его натурально жрать камни. При беге камни трясутся и перемалывают зёрна. Теперь самое весёлое. Чтобы не писать отдельный код для поедания камней, страусу просто взяли и отключили центральный сектор зрения (как зайцу, но там это известный минорный баг). Поэтому когда страус целится в зерно, он попадает только в 30-50% случаев. Что легко позволяет набирать нужное количество камней, да ещё и с запасом. Именно поэтому страусы, запущенные на чистой виртуальной машине в зоопарке, испытывали проблемы с пищеварением до появления поддержки камней на уровне гипервизора. Кстати, коровы тоже жрут гвозди и иногда гравий, но это не в архитектуре, а просто техническая ошибка обратной совместимости.

Да, и ещё. Очень хорошая вещь – повторное использование кода. Часть функционала с камнями потом накатили на крокодила – чтобы ему нырялось лучше. Ныряется действительно лучше.

Проблемы энергопотребления решаются не менее гениально. С рептильной платформой всё ещё более-менее нормально (там просто нет долгих высокоуровневых процессов), и крокодил может сидеть сутки без движения до поимки мяса. А вот с теми же крупными хищниками всё пожёстче мобильных ОС. На 20 часов в сутки лев снимает все активные процессы и уходит в спящий режим. Примерно 4 часа он находится в активном режиме – рычит, размножается, сёрфит по саванне и находит новую зарядку в антилопе или зебре.

Дельфину вообще не всегда удаётся включать оба ядра мозга – только тогда, когда нужно делать что-то важное. Если вам встретился тормозящий дельфин – проверяйте, оба ли глаза открыты. Только один? Значит, он в спящем режиме и работает на одном ядре с пониженной тактовой частотой.

Медведь не всегда корректно выходит из hibernate-режима. Это же, кстати, касается некоторых растений, но там баг не так опасен. Растения легко перезапустить. И да, учитесь у тех, кто писал альбатроса. Альбатрос вообще спит в воздухе.

Теперь черепаха. Ей вместо того, чтобы прописать нормальный алгоритм обхода препятствий, захардкодили рефлекс убирания головы в панцирь. Теперь даже если она натыкается на крокодила, тот со своим молниеносным броском не успевает откусить ей голову. Побочный эффект – черепаха легко уворачивается от ножа мясника. Скорость обработки инструкций процессора не сравнится со скоростью работы интерпретируемого высокоуровневого кода у повара. Черепаху не обгонишь, критичные функции переписаны на ассемблере.

Белый медведь – отличный пример работы с солнечной энергией. Медведь прозрачный в УФ по меху и чёрный на коже. Это уже торжество инженера.

Жираф – сплошной костыль. Нет, в целом, понятно, что требования заказчика по высоте кроны несколько раз повышались по мере развития проекта. Но вот то, что вошло в релиз по водопоям и было пропущено на приёмке – это нонсенс. Жираф тупо не достаёт головой до воды(!) в обычном режиме. Ему приходится жутко вывернуться и почти сесть на шпагат, чтобы попить. Ясное дело, анонимусы-хищники этим нагло пользуются. Детёныша вообще пришлось укреплять – он в стабильном релизе падает с полутора метров при рождении.

Морской свинке и ряду рыб косо прописали задержки на прерываниях. Если обычное животное по очереди опрашивает прерывания вроде «нет ли опасности», «не надо ли попить», «не надо ли поесть», «не надо ли начать размножаться», «не надо ли лечь спать» и «не надо ли выполнять нестандартную процедуру» — и всё это без видимого переключения — то морские свинки делают sleep(1000); после каждой операции. Видимо, осталось с отладки и вошло в релиз.

Хорошей идеей было накатить код сборщика мусора в ОЗУ от золотой рыбки на белку – garbage collector с высокой вероятностью очищает и неиспользуемые указатели на места размеченных орехов и семечек. В результате благодаря белке вырастает много новых деревьев.

Вот индийскую кобру точно писал фанат Starcraft. Потому что, задумайтесь, где ещё можно встретить юнита, плюющегося ядом на два с половиной метра точно в глаз террану.

Ну и раз начали о нерациональности – вспомним того же осьминога. Километры нервной ткани просто потому, что кому-то было интересно написать его на brainfuck. Да если использовать эти отдельные модули управления присосками, ту же ткань – может получиться вообще ЦОД на колёсиках.

Или вот взять того же пингвина – летать не умеет, зато плавает и весело прыгает на полметра в высоту. Написали его в качестве учебного примера для объяснения принципов полиморфизма, а потом почему-то забыли закомментировать подключение библиотек с ним в основном релизе.

Тлей и других насекомых, а также ряд животных точно писал бешеный фанат рекурсии. Светлая мысль рождать некоторых уже беременными – просто вынос мозга для тестеров. Зато слонёнок деплоится 22 месяца — вот что значит не влезть в кэш процессора.

Кстати, пасхалка с бегемотом получилась смешная. Люди боятся львов, носорогов, змей – но только этот обаятельный толстяк целенаправленно бегает за человеком. И, внезапно, со скоростью до 30 км/ч. То есть догоняет даже велосипедистов.

У некоторых кошек не убрали аппаратный байпасс в районе шкирки. Стоит взять взрослую систему за это место, так сразу отключается двигательная активность. Что породило опасный баг с прищепкой, которым часто пользуются скрипткидди.

У курицы расслабленная лапа «защёлкнута», поэтому если поставить курицу на ветку, дождаться, пока она уснёт, а потом легко и быстро перевернуть, сработает рефлекс – и у вас будет курица, спящая вниз головой на дереве. Главное – подготовить почву и рассказать всей деревне про вампиров за день до зрелища такого курятника.

У собак и ряда других хищников и падальщиков косо прописано распознавание добычи. В одном из условий AND случайно заменили на OR, и вот результат — известный баг с запуском приоритетного процесса с атакой на пятно лазерной указки.

В общем, вы наверняка и сами можете продолжить.

P.S. Обратите внимание, что большая часть описанных уязвимостей до сих пор не исправлена.

 

question4
()

Как это работает?

Форум — General

Пытаюсь качать книги из Z-library. Там ограничение по числу скачиваний в сутки на IP. Попытка засчитывается вне зависимости от успешности скачивания. Поэтому на 30-мегабайтный PDF можно потратить все попытки.

Попробовал через Tor Browser по адресу в *.onion. Получаю сообщение

Daily limit reached
There are more than 5 downloads from your IP 127.0.0.1 during last 24 hours.

Получается, 5 файлов в сутки на всех пользователей ТОР-а?

Или что-то можно изменить в настройках браузера?

 ,

question4
()

gitlab.io заблокирован

Форум — Talks

Основание — постановление Генпрокуратуры 27-31-2020/Ид2145-22 от 24.02.2022. О недостоверной информации об СВО.

P.S. gitlab.com доступен.

 

question4
()

Floor796 не приносили?

Форум — Talks

Наткнулся на «залипательную гифку»: https://floor796.com/ Состоит из отсылок к известным фильмам, играм, мультфильмам и мемам.

На самом деле, это оказалось не GIF-ом. Сайт использует оригинальный формат для сжатия изображений: https://habr.com/ru/company/floor796/blog/673318/ С учётом специфики анимации такой вариант 254-цветного RLE по объёму близок к WebM и MP4, но выглядит лучше.

Объём всех кусков — более гигабайта, кто за трафик платит — будьте осторожны.

 

question4
()

Автоматизация LibreOffice

Форум — General

Имеется большой текст с несложным форматированием, разбитый на 100 ~1000 глав. Нужно каждую главу сохранить в отдельный файл docx (формат MS Office). В текст будут вноситься правки. Нужно будет сохранять исправленные главы.

Можно ли как-то автоматизировать это разбиение на много мелких файлов?

 , , ,

question4
()

Clang не смог собрать Фаерфокс

Форум — Talks

https://bugs.gentoo.org/838373

Решил обновить мир, а там такой клубок зависимостей, что давно не обновлявшиеся браузеры мешают что-либо обновлять. Удалил их, начал обновление, и остался на выходные без браузера на десктопе. Потому что Clang не может собрать Firefox, если процессор недостаточно поддерживает SSE4. Надо принудительно отключать Clang и пользоваться GCC, который в полтора раза медленнее.

 , , , ,

question4
()

Поиск похожих картинок

Форум — Development

Недавно всплывал вопрос о поиске одинаковых картинок. Я хотел применить ImageMagick, но сломал голову его инструкцией и решил начать с решения попримитивнее. Питон 3.10 с установленными пакетами NumPy, Pillow и python-magic. Каждая картинка конвертируется в 24-битную 20x20, затем считается евклидово расстояние между каждой парой картинок (как корень из суммы квадратов разностей для каждого байта). Дефолтное MAX_IMAGE_PIXELS оказалось недостаточным для крупных сканов. Для простоты ограничился типами PNG, JPEG и GIF и файлами только в текущей директории — если нужно что-то сложнее, os.listdir() нужно заменить на соответствующий список или генератор, например, [os.path.join(root, file) for root, dirs, files in os.walk(os.getcwd()) for file in files] или [r + '/' + f for r, _, files in os.walk('.') for f in files].

import os, magic
import numpy as np
from PIL import Image

thumb_size = 20
max_distance = ( 256**2 * thumb_size**2 * 3 )**0.5  
allow_magic = {'PNG image ', 'JPEG image', 'GIF image '}
Image.MAX_IMAGE_PIXELS = 400_000_000

names = sorted( name for name in os.listdir() if os.path.isfile(name) and magic.from_file(name)[:10] in allow_magic )
thumbs = [ Image.open(name).convert(mode='RGB').resize((thumb_size, thumb_size)) for name in names ]
td = [ np.frombuffer(thumb.tobytes(), dtype=np.int8) for thumb in thumbs ]

table = np.full((len(names), len(names)), max_distance, dtype=np.float64)
for nout, hout in enumerate(td):
    for nin, hin in enumerate(td[nout+1:]): 
        table[nout, nin + nout + 1] = np.linalg.norm(hout - hin)

Для идентичных картинок расстояние равно нулю. Для отличающихся размером и артефактами сжатия — существенно меньше 100. Пока ни разу не видел расстояния больше 3500.

Дальше нужно просматривать похожие пары. Дефолтный просмотрщик меня не устроил, поэтому nomacs. Для нулей я вызывал

m = table.min(); r = np.where(table == m); print(m, r);
for x, y in zip(r[0], r[1]): print(names[x], names[y]); os.system( f'nomacs "{names[x]}" & nomacs "{names[y]}"' )

А разобравшись с файлами, заменил все нули на недостижимо большую величину:

table[r] = max_distance

Для расстояний больше 0 вручную повторял однострочник

table[r] = max_distance; m = table.min(); r = np.where(table == m); print(m, r); x, y = r[0]; names[x], names[y]; os.system( f'nomacs "{names[x]}" & nomacs "{names[y]}"'

пока не надоело. В принципе, в таблице могут найтись одинаковые расстояния, поэтому вручную контролировал, что в r вернуло только 1 пару номеров, но этого не произошло.

Для 20 000 картинок, из которых большинство размером 100-1000 пикселов, и которые прочлись в кеш, время вычисления на 1,8 ГГц ядре:
name (определяется magic.from_file) — 10 с,
thumbs (Image.open + Image.convert + Image.resize) — 272 c,
td (np.frombuffer + thumb.tobytes) — 0,3 с,
table — 3276 c.

Как-то улучшить можно? Ускорить?

 

question4
()

xbuild не собирает проект

Форум — Development

Пытаюсь собрать uTinyRipperConsole из https://github.com/mafaca/UtinyRipper . По команде xbuild uTinyRipperConsole.csproj получаю ошибку: The default XML namespace of the project must be the MSBuild XML namespace. If the project is authored in the MSBuild 2003 format, please add xmlns="http://schemas.microsoft.com/developer/msbuild/2003" to the <Project> element. Но эта строка в конфиге есть.

То же с ключом /verbosity:diagnostic: https://pastebin.com/T1RF7Cqq

В чём проблема?

Заодно ещё пара вопросов:

В каком пакете в Gentoo находится msbuild?

Почему встроенная подсказка xbuild показывает ключи, начинающиеся с -, но работают только ключи с / ?

 

question4
()

Absoft Fortran-ом кто-нибудь ещё пользуется? Закрылись.

Форум — Talks

Сабж. https://www.absoft.com

Рылся на старых дисках, нашёл старую лицензию, полез по ссылке, и вспомнил, что пользовался им 15 лет назад.

 

question4
()

Поддержка JPEG2000 в Qt

Форум — General

Кто-нибудь может объяснить, как с этим сейчас дела? Нашёл только плагин https://code.qt.io/cgit/qt/qtimageformats.git/tree/src/plugins/imageformats/jp2/qjp2handler.cpp , который зависит от Jasper, который в том же 2016 году начали выкидывать из всех дистрибутивов, вроде бы из-за падучести 64-битного порта, который никто не хотел допиливать.

https://github.com/jasper-software/jasper/tree/master/src/libjasper/include/jasper и https://gpo.zugaina.org/AJAX/Ebuild/53708060/View пригодны к использованию? Если да, как пересобрать Qt? Gentoo.

Или есть другой способ получить поддержку JPEG2000 во всех Qt-приложениях?

 , ,

question4
()

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