LINUX.ORG.RU

Сообщения wandrien

 

Новый reCAPTCHA не позволит пройти проверку на Android-устройствах без сервисов Google

 , ,

https://www.opennet.ru/opennews/art.shtml?num=65420:

Компания Google анонсировала новое поколение системы отсеивания ботов reCAPTCHA, применяемой на многих сайтах для проверки обращения человеком. В новой реализации reCAPTCHA вместо выбора картинок, соответствующих заданному вопросу, применяется подтверждение через сканирование QR-кода смартфоном. Проблема в том, что в числе требований к смартфонам, которые могут использоваться для прохождения капчи, заявлены относительно новые версии iPhone/iPad, а также устройства с платформой Android c установленным проприетарным пакетом Google Play Services.

Устройства iPhone/iPad с iOS до версии 16.4, а также смартфоны с альтернативными прошивками на базе Android, поставляемые без сервисов Google (например, GrapheneOS), не смогут пройти новую капчу. Суть метода на основе QR-кода в подтверждении обладания сертифицированным устройством. В случае с Android, подтверждение осуществляется при помощи API Play Integrity, предоставляемого в Play Services для аттестации аппаратного обеспечения, и позволяющего убедиться, что устройство не модифицировано и сертифицировано в Google. Для устройств Apple используется API App Attest.

Дополнение: Проект GrapheneOS, разрабатывающий защищённую свободную прошивку на базе Android, считает, что продвижение API аттестации аппаратного обеспечения, на фоне усложнения их обхода и навязывания пользователям других ОС через капчу в Web, следует рассматривать как действия по подавлению конкуренции и построению компаниями Apple и Google дуополии в сфере мобильных устройств. По мнению разработчиков GrapheneOS, аттестация оборудования не должна применяться для привязки пользователей к определённому оборудованию и операционным системам. Отмечается, что для верификации через reCAPTCHA в GrapheneOS можно использовать сервисы Google Play, запущенные в изолированном sandbox-окружении, но Google блокирует использование в GrapheneOS сервиса Play Integrity, так как проект не лицензировал пакет Google Mobile Services и отказывается выполнять антиконкурентные правила, уже признанные незаконными в Южной Корее и некоторых других странах.

Видели новость уже?

Добро пожаловать в проприетарные интернеты, куда пускают только с проприетарных устройств.

Как же надоел этот киберпанк.

wandrien
()

Подсветка в истории изменений, баг со списками

 ,

Если зайти в https://www.linux.org.ru/news/linux-general/18283557/history и нажать на «подсветить различия», то пункт списка, который убрал Dimez, не подсвечивается, класс difference-delete ему не назначается.

wandrien
()

C:\Deb

 cusdeb, , ,

Релиз C:\Deb: Windows-система на базе ядра Linux

Разработчик Евгений Голышев, сопровождающий пакетов языка Elixir для Debian и Ubuntu, представил рабочий прототип системы C:\Deb, которая объединяет ядро Linux с классическим окружением Win32. Фундаментом служит Debian 13, запуск Windows-приложений и эмуляцию среды обеспечивает Wine. Чтобы добиться максимального сходства с ОС от Microsoft, автор позаимствовал ряд системных компонентов из открытого проекта ReactOS. Пользовательское окружение построено на базе графической оболочки Wine Explorer. (с) Linux Club

https://cusdeb.com/os

wandrien
()

SafeClaw

 

https://github.com/princezuda/safeclaw

The zero-cost alternative to OpenClaw. No LLM required, though it is optional. No required API bills. Minimal attack surface. Runs on any machine.

SafeClaw uses VADER, spaCy, sumy, YOLO, Whisper, Piper, and other battle-tested ML techniques instead of generative AI. The result: deterministic, predictable, private, and completely free to run.

Зумеры изобрели командную строку.

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

wandrien
()

Британские учёные доказали, что вашей статьи не существует

 , ,

Сабж: https://habr.com/ru/articles/1019296/

Вайб-писатели начали что-то подозревать.

Суть такова: если материал не содержит никакой новой, уникальной информации или личного опыта, то всю «статью» можно сжать в промпт размером меньше ста слов, и нейросеть по нему напишет статью не хуже.

Как по мне, это не совсем так. Например, обучающие материалы, туториалы не содержат уникальной информации напрямую, но в них может быть отражен личный опыт автора косвенно, что выражается в его способности писать доходчиво, отделяя существенное от несущественного.

Но вот к большинству обезличенных корпоративных текстов, а также к той ИИ-помойке, в которую превратилось большинство активных хабов Хабра - это точно относится.

Иронично, что статья по ссылке написана таким же узнаваемым роботизированным языком, и её саму можно было бы сжать тем же методом.

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

wandrien
()

Кто-то пользовался OpenClaw?

 ai assistant, openclaw,

Поделитесь опытом, зачем он нужен.

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

Не, я понимаю, зачем нужен Claude Code, OpenCode, зачем нужен ИИ-ассистированный поиск в интернете и т.п. Это инструменты под конкретные задачи. Сначала у пользователя возникает конкретная прикладная задача, которую надо решить. Потом он берёт инструмент.

Кстати, вот эта статья вчера понравилась: Вайбкодь потише, пожалуйста! или Пацаны, это и раньше было легко. Там тоже поднимает вопрос того, что телега едет впереди лошади.

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

wandrien
()

Написал статью про архитектуру GPT

 , ,

Цель этой статьи — познакомить читателя с архитектурой Generative Pretrained Transformer, лежащей в основе современных языковых моделей.

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

В этой статье я постараюсь дать достаточно подробное описание, что собой представляет «пайплайн» трансформера: как данные со входа проходят по этапам модели и приходят на выход. Я опишу упрощенную схему decoder-only трансформера, пропуская или сокращая те части, которые не принципиальны для понимания общего вида.

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

wandrien
()

projman (текстовый редактор)

 , projman, ,

ProjMan (aka «Tcl/Tk Project Manager») is an editor for programming in TCL/Tk and other languages. It includes a file manager; a source editor with syntax highlighting and code navigation; Git support.

Контекст:

Какой редактор кода или IDE вы используете? (комментарий)

@svk28: Есть, как-то тут в галерее показывал https://git.nuk-svk.ru/svk/projman . Киллер-фич никаких, даже наоборот, обычный редактор с многолетней историей - дорог мне как память :) ну и пишу потихоньку (очень потихоньку).

Дело было вечером, делать было нечего. Я увидел указанный пост и решил JFF покодить на Tcl.

Немножко причесал баги и добавил фич. В планах еще что-нибудь впилить интересное.

Подробнее:

wandrien
()

Не было печали, но пришел glycin

 , glycin, ,

Заметил, что моём файловом менеджере диалог «Свойства файла» стал открываться с задержкой в полсекунды.

Если запустить приложение с export G_MESSAGES_DEBUG=all, то в эти полсекунды имеем вот такую красоту на 360 строк: https://pastebin.com/G0ivjKnz

Если закомментировать вот эту строку то задержка исчезает. Можно считать, что причина локализована. Теперь это нужно как-то чинить.

Могу сказать спасибо Гному и всему опенсорцу за то, что не устают давать мне причины тренироваться в написании мультипоточного и асинхронного кода, чтобы уметь обходить тормоза во фреймфорках и библиотеках. И отдельное спасибо Расту, на котором собственно glycin и реализован.

Работаем дальше.

wandrien
()

LLM: от предсказателя слов к подобию рефлексии

 glm, , ,

В этой статье я хочу познакомить читателя с актуальным состоянием разработок в сфере LLM. Статья носит обзорный и концептуальный характер.

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

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

wandrien
()

Только у меня с huggingface модели не скачиваются или у всех?

 

Провайдер Билайн.

Соединение зависает после получения 16 килобайт:

$ wget 'https://huggingface.co/ggml-org/gemma-3-1b-it-GGUF/resolve/main/gemma-3-1b-it-Q4_K_M.gguf'
--2025-12-06 15:53:16--  https://huggingface.co/ggml-org/gemma-3-1b-it-GGUF/resolve/main/gemma-3-1b-it-Q4_K_M.gguf
Загружен сертификат CA «/etc/ssl/certs/ca-certificates.crt»
Распознаётся huggingface.co (huggingface.co)… 65.9.46.59, 65.9.46.41, 65.9.46.54, ...
Подключение к huggingface.co (huggingface.co)|65.9.46.59|:443... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 302 Found
Адрес: https://cas-bridge.xethub.hf.co/xet-bridge-us/<....> [переход]
--2025-12-06 15:53:17--  https://cas-bridge.xethub.hf.co/xet-bridge-us/<....>
Распознаётся cas-bridge.xethub.hf.co (cas-bridge.xethub.hf.co)… 65.9.46.15, 65.9.46.42, 65.9.46.47, ...
Подключение к cas-bridge.xethub.hf.co (cas-bridge.xethub.hf.co)|65.9.46.15|:443... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: 806058240 (769M)
Сохранение в: ‘gemma-3-1b-it-Q4_K_M.gguf.2’

gemma-3-1b-it-Q4_K_M.gguf.2               0%[                     ]  16,00K  --.-KB/s    ост 3d 6h  ^C
wandrien
()

Один день из копроэкономики

 , ,

Процитирую сообщение, которое сегодня отправил клиенту. Комментарии излишни, наверное. И так всё ясно.


Взял только первые два числа от IP, в топе такие значения получаются:

   4903 42.81
   5446 40.79
   6473 142.147
   6831 42.187
   7347 84.37
   7564 207.241
   9946 65.21
  10110 20.171
  10678 47.246
  37377 8.217
  59520 202.76
  65096 43.173
 201283 216.73
 217590 146.174
 247401 66.249

Проанализировал принадлежность IP и user agent-ы.

66.249 - боты Google.

146.174 - имитирует органическую посещаемость, UA реальных браузеров. Вот только диапазон принадлежит HuaweiCloud.
Забанил весь диапазон IP.

216.73 - ClaudeBot, сегодня ранее уже заблокировал его.

43.173 - диапазон принадлежит компании https://ru.wikipedia.org/wiki/Tencent Все UA почти одинаковые, с небольшими вариациями. Основной UA этот:
Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.6478.114 Safari/537.36
Забанил весь диапазон IP.

202.76 - имитирует органическую посещаемость, но диапазон принадлежит HuaweiCloud.
Забанил весь диапазон IP.

8.217 - UA: AliyunSecBot/Aliyun (AliyunSecBot@service.alibaba.com)
Забанил весь диапазон IP.

47.246 - имитирует органическую посещаемость. Все 10678 были вчера, сегодня обращений ноль. Диапазон адресов принадлежит Alibaba Cloud LLC
Забанил весь диапазон IP.

20.171 - GPTBot, сегодня ранее уже заблокировал его.

65.21 - AwarioBot, сегодня ранее уже заблокировал его.

207.241 - Бот сайта http://archive.org/
Его банить рука не поднялась, единственный полезный сервис на фоне этих наглых ботов китайских нейросеток. Да и нагрузки от него не много.


Отдельная проблема с ботами Гугла. Если взять статистику по поисковым ботам, то окажется, Google создаёт нагрузку в 20 выше, чем Yandex:

  10917 +http://www.bing.com/bingbot.htm
  12092 +http://www.apple.com/go/applebot
  12313 +http://yandex.com/bots
 249190 +http://www.google.com/bot.html

Возможно, Google тоже решил «выкачать весь интернет» для нейронок. И делает это под теми же самыми IP и UA, что и бот поисковой системы. Чтобы веб-мастер не мог просто взять и заблокировать его, если не хочет остаться без присутствия в поисковой выдаче.

wandrien
()

Страдаю на Tcl/Tk

 ,

Немного о качестве батареек в Tcl/Tk:

  • Модуль cmdline в Tcllib писал наркоман, иначе не скажешь. Для вменяемого парсинга опций комадной строки пришлось брать сторонний модуль и доводить его напильником.
  • Поддержка статуса окна maximized есть под виндой и макосью, но нет под юниксами. EWMH для авторов tk ничего не значит. Порылся еще, через wm attributes . -zoomed 1 работает вроде. Но не через wm state.
  • Есть процедура regexp, но нет процедуры для квотирования строки для формирования регэкспов. Эту функцию ты должен написать сам.
  • Нет встроенной процедуры для «вернуть значение переменной, если она существует, иначе вернуть указанное значение». Её ты тоже должен написать сам.

Конкретно самого языка:

  • Возможности метапрограммирования это хорошо.
  • Если писать по уму, то всё надо обвешивать тестами еще сильнее, чем в питоне. Один лишний / пропущенный символ, и программа будет без диагностик просто обрабатывать чушь. Но так как я работаю с уже имеющимся кодом, в котором не было тестов, то пока забил.

Продолжаю наблюдения. Советы приветствуются.

Алсо, cast @Shadow

wandrien
()

Какая же шляпа Андроид

 ,

Ей-богу, я не понимаю, почему настолько плохо.


Концепцию «работы с файлами» или «работы с документами» разрабы приложений целенаправленно игнорируют. С точки зрения разработчика, ты корпоративный раб, который должен «пользоваться приложением» и приносить прибыль, а не с какими-то там своими файлами работать.

Открыть два каталога в разных окнах? Или хотя бы в разных вкладках одного окна?

Или поставить одно видео на паузу и запустить другое?

Или две картинки одновременно редактировать?

НЕТ.

Этот же рак проникает на дескопты. В Telegram на дектопе есть просмотрищик картинок и видео, но открыть параллельно несколько файлов - невозможно. Впрочем, Telegram на обеих платформах - это отдельный рак, про который можно написать несколько тысяч символов бомбёжки. У них на каждой платформе свои уникальные мозговыносящие баги.


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

  • Список видео будет в той же позиции, как и было.
  • Позиция в списке сбросится в начало списка.
  • Вместо списка видео отобразится главная вкладка канала.

Я думал, что на старом телефоне не хватает памяти или типа того. Но когда я в прошлом году купил новый телефон, там оказалась такая же шляпа.

Этот баг существует столько, сколько я вообще помню существование приложения ютуба. Я не понимаю, почему в 2025-м нельзя без багов сохранить и восстановиить состояние UI. Или это какой-то хитрый план, хз.


Вы не можете управлять значением mtime у файла. Если вы закачали файлы с компьютера, попрощайтесь с датами модификации.

В качестве особого издевательства - приложение галереи сортирует фото по mtime, а не по дате снимка. НЕКОТОРЫЕ приложения галереи могут сортировать и по дате из EXIF.


Организовать галерею иерархически? НЕТ. Слишком сложно. Вдруг пользователь сначала начнёт сортировать свои фото, а потом и вовсе начнет ДУМАТЬ. Нам умные не нужны.


Производитель моего телефона своё приложение назвал «Галерея AI». AI в галерее не обнаружено. Зато обнаружено отсутствие группировки снимков по датам в альбомах. Всё сплошной лентой, даты угадывай сам.

Также производитель считает, что рисовать в файловом менеджере белые скруглённые прямоугольники на светло-сером фоне с гигантскими отступами - это хороший UI: https://postimg.cc/zy1Nnw9M

Никаких настроек ничего вообще в этих приложениях нет.


В качестве видеоплеера лежит нечто с названием Visha. Если вы переключитесь с Visha на другое приложение, то Visha встаёт на паузу, а затем обычно закрывается - но не всегда. В плеере есть функция воспроизведения видео в фоне. Она забагована. Аудиодорожка из видео запускается в фоне и не имеет контроллов для управления. Вернуться в плеер после этого нельзя - окно исчезает из списка окон. Если запустить плеер иконкой запуска, он сбрасывается на стартовый экран.

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


Внезапно, опенсорное некоммерческое приложение Галереи из F-Droid - есть настройки по количеству столбцов и параметрам группировки:

А что, так можно было что ли??? (c)
Оказывается, что если делать приложения, думая о людях, а не о бабках, то получается даже ничего.

В качестве креативного решения для этой недоработки Гугл собирается F-Droid уничтожить.


Шторка в современных версиях Андроида это какая-то UI- и UX-катастрофа: https://postimg.cc/JsW8b39Y

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

Да, шторку поменять нельзя, она не считается приложением. Я бы с удовольствием пользовался шторкой от древнего Wileyfox Swift 2X.


В немалом количестве приложений доминирует концепция «навалить как можно больше непонятных иконок». Какие-то неведомые закорючки без какой-либо подсказки, что сейчас произойдёт. То ли текст скопируется, то ли флешка отформатируется.

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


Размеры софта. Рандомные примеры:

  • «Сервисы Google Play» - 1 ГБ, из которых 360 МБ - приложение, остальное «данные».
  • Авито - 700 МБ без кэша.
  • Zoom - 700 МБ без кэша.
  • Gboard - 400 МБ, из которых 180 МБ - «приложение».
  • Магнит - 230 МБ без кэша.
  • Фонарик - 70 МБ!!!

Глядя на то как растут аппетиты, я начинаю сомневаться, что 0.5 ТБ памяти хватит на всё время жизни устройства. Слота под SD-карту в телефоне теперь нет, как и во всех моделях, кроме самых бюджетных.

Если вы хотите пускать Linux-юзерленд под Андроидом, то еще не забудьте, что в Линуксе теперь тоже аппетиты приложений к накопителю растут конскими темпами. Особенно после начала Rust-лихорадки.


Мне кажется, этот перечень херни бесконечно можно продолжать.

P.S. Свеженькое:

Google меняет политику публикации исправлений уязвимостей в Android

Отныне Google изначально предоставляет исправления безопасности для Android исключительно OEM-производителям по закрытым каналам с соглашением о неразглашении, обязующем их не раскрывать исходный код с применением предоставленных патчей на срок 3 месяца с момента получения. В течение этого времени возможно распространение исключительно бинарных сборок с включением исправления.

wandrien
()

Lua Shell

 , , ,

Контест этого топика: Леннарт теперь до эмуляторов терминала добрался (комментарий)

@EXL:

Лучше бы Lennart взялся за Bash.

@wandrien:

Там только выкинуть целиком. Я вот хочу попытаться для lua сделать обвязку для скриптинга уровня оболочки. Подобные либы на Lua есть, но качество и объем фич мне не нравится. Надо лучше. Тебе бы был интересен такой проект?


Итак, вот моя идея в общих чертах. Составные части, на которых основываться:

https://github.com/BanceDev/lush
Низкое качество сборочного скрипта. Вероятно, и кода тоже. Интересует идея в первую очередь.

https://github.com/mna/luashell
Ключевое, что нам нужно. Взять за основу. Но:

  • Нужны полнофункциональные средства перенаправления ввода-вывода, заменить эту часть API. Под капотом, вероятно. придётся делать полноценную обработку fork - настройка процесса - exec.
  • test() должен быть вменяемый, а не парсить строку по пробелам. Просто алиас для sh.cmd("test", ...).exec()
  • Форк процесса без exec в качестве элемента пайплайна на уровне API
  • Как расширение предыдущего - обёртка а ля sh.echo("text").

В качестве базового API взять https://25thandclement.com/~william/projects/lunix.html вместо https://github.com/luaposix/luaposix

Также рассмотреть для включения и/или как источник идей:


Общая идея:

  • Lua + lunix — получаем возможность писать на Луа «приложения как на Си под libc».
  • Сверху на это - форкнутый и допиленный luashell. Это ключевое.
  • Далее QoL вещи: lua-path, argparse, функции для парсинга и форматирвоания времени, функции для JSON.
  • Далее - разработать интерактивный режим для использования в качестве командной оболочки.

Продукт компилируется в статический бинарь с musl и/или cosmopolitan libc и получаем «вечный» shell. При этом весьма компактный.

wandrien
()

Леннарт теперь до эмуляторов терминала добрался

 , , ,

После очередного обновления systemd я обнаружил, что при входе в учетную запись рута под одним из эмуляторов терминала отображается вот такая абракадабра:

]8003;start=18dcf83c-b8a1-49a6-a824-d7a793edfd2c;user=root;hostname=aquila;machineid=609fc63f07736a785af67b1600000438;bootid=6bd8c743-1bf9-4965-88f0-5326eca7fc15;pid=661805;type=shell;cwd=/root[root@aquila ~]# 

Конкретно у меня - проблема со старой версией vte, на которой работают эмуляторы терминала, собранные под gtk2.

Поиск виновника привёл меня к следующим файлам:

/usr/lib/systemd/profile.d/70-systemd-shell-extra.sh
/usr/lib/systemd/profile.d/80-systemd-osc-context.sh

Потом к этому багрепорту: https://github.com/systemd/systemd/issues/39133

К этому: https://bugs.kde.org/show_bug.cgi?id=500842

И наконец к сути: https://github.com/systemd/systemd/blob/main/docs/OSC_CONTEXT.md

Машинный перевод для тех, кто плохо понимает английский: https://translate.google.com/?sl=en&tl=ru&text=https%3A%2F%2Fgithub.com%2Fsystemd%2Fsystemd%2Fblob%2Fmain%2Fdocs%2FOSC_CONTEXT.md&op=translate

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

wandrien
()

Количество исходных пакетов в Arch

 

Не знаю, зачем вам эта информация, но вот вам статистика:

В Arch сейчас 12196 исходных пакетов - рецептов сборки.

Из них 249 пакетов имеют префикс lib32- - относятся к поддержке 32-битного юзерспейса.

Количество пакетов, имеющих префикс конкретного ЯП:

   1840 python-
   1170 haskell-
    635 perl-
     60 cargo-
     30 ocaml-

P.S.: Статистика построена на основе этого оглавления, по которому работает билд-ферма: https://gitlab.archlinux.org/archlinux/packaging/state

wandrien
()

Syncthing: ваше личное, децентрализованное и свободное облако

 , , ,

Syncthing — это свободный P2P‑инструмент синхронизации файлов между вашими устройствами без централизованного облака и подписок. Данные остаются у вас, ключи — у вас, инфраструктура — тоже у вас.

Это обзорная статья, написанная, чтобы дать читателю представление о технологии. Здесь нет конкретных команд для запуска и технических деталей. Вместо этого я предлагаю читателю установить Syncthing и самостоятельно попробовать его на практике.

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

wandrien
()

Simple File Info

 , , ,

В рамках работы над SDE (sde-gui.github.io) реализовал следующий скрипт.

Simple File Info — программа для отображения расширенной информации о файле. Реализована как переносимый POSIX sh-скрипт.

О программе Simple File Info

Программа отображает диалоговое окно с различной информацией о файле, получаемой из инструментов mimetype, file, exiftool, mediainfo, gio info.

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

К программе прилагается desktop-файл, чтобы все ФМ, поддерживающие обработку привязки приложений и файлов, могли отображать пункт вызова программы в меню «Открыть с помощью».

Более подробно об отображаемой информации:

В типичной Unix-like системе присутствует два механизма идентификации типа файла: первый на основе базы данных MimeInfo, второй на основе базы данных для утилиты file.

Большинство приложений с графическим интерфейсом используют идентификацию типа файла через MimeInfo.
Многие скрипты для терминала используют идентификацию через file.

Если у вас в системе установлены команды mimetype и file, Simple File Info включит информацию о типе файла в отчёт.

  • exiftool - мощная программа для отображения метаинформации о файле. В первую очередь она предназначена для отображения данных EXIF в изображениях, но кроме этого поддерживает множество других типов файлов.

  • mediainfo - программа для отображения метаинформации об аудио- и видео-файлах, кроме того, она умеет извлекать метаданные из изображений.

  • gio - модульный фреймфорк для виртуализованной файловой системы, используемый многими графическими программами.

Если у вас в системе установлены команды exiftool, mediainfo, gio, информация из этих программ будет включена в отчёт.

Отображение информации

Для отображения информации используется один из следующих инструментов:

  GXMESSAGE YAD XDIALOG ZENITY XMESSAGE

Simple File Info пытается использовать инструменты в указанном порядке, пока не найдёт установленный и рабочий инструмент.

Чтобы переопределить порядок поиска инструментов, задайте переменную окружения SIMPLE_FILE_INFO_DIALOG_TOOLS. Например:

  export SIMPLE_FILE_INFO_DIALOG_TOOLS='YAD ZENITY GXMESSAGE'

Проблемы/недоработки инструментов отображения диалогов:

  yad
  Не выставляет разумные размер окна и положение окна.

  zenity
  Не выставляет разумные размер окна и положение окна.
  Нет возможности менять иконку в заголовке окна.
  Look & feel в стиле GNOME не соответствует задумке данной программы.

  Xdialog
  Опция --fixed-font не работает на моей машине. Требуется дальнейшее изучение проблемы.
  Отображает себя на "основном" мониторе, а не на мониторе с активным окном.
  Нет возможности менять иконку в заголовке окна.

  xmessage
  Нет поддержки копирования текста в буфера обмена CLIPBOARD, только в PRIMARY.
  Нет возможности менять иконку в заголовке окна.
  Нет возможности переноса длинных строк.
  Нет поддержки юникода.

  gxmessage
  Нет возможности менять иконку в заголовке окна.

Вызов программы

Использование:

  simple-file-info [команда] файлы...

Команды:
  --show-report   - Открыть окно с отчётом по указанным файлам.
                    Если файлов перечислено больше одного, для каждого будет
                    открыто отдельное окно.
  --print-report  - Вывести отчёт по файлам в stdout.
  --show-help     - Открыть окно с данной справкой.
  --help          - Вывести в stdout данную справку и выйти.
  --version       - Вывести в stdout версию программы и выйти.
  --license       - Вывести в stdout информацию о лицензии прогарммы и выйти.
  --desktop-entry - Вывести в stdout содержимое desktop-файла.
  --check-tools   - Вывести в stdout отладочный отчёт о работе внешних утилит.

Если команда не указана, по умолчанию выполняется команда --show-report.

TODO

  • Добавить поддержку определяемых пользователем действий-кнопок
  • Добавить поддержку определяемых пользователем обработчиков внутри generate_report
  • Добавить умный рассчёт размера и позиции окна для yad и zenity
wandrien
()

Потеря открытых вкладок

 , ,

Вчера произошло странное.

После очередного запуска firefox, он не восстановил содержимое окон.

Открывает нужное количество окон, но вместо реальных вкладок там отображается одна пустая вкладка, а вместо реального заголовка окна а ля «Mozilla Firefox» отображается надпись «Безымянное окно».

Попытки подсунуть одну из резервных копий файла sessionstore, которые Firefox бэкапит автоматически, успеха не дали.

Выглядит это так:

  • Сносим sessionstore.jsonlz4 и sessionstore-backups.
  • Запускаем firefox. Открывается пустой сеанс, и можно пользоваться браузером как обычно. При перезапусках сеанс сохраняется и восстанавливается без сбоев.
  • Кладём в качестве sessionstore.jsonlz4 резервную копию.
  • Запускаем firefox. Открываются те самые 50 пустых окон «Безымянное окно».

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

Попытки нагуглить проблему результатов не дали.

Теперь мне предстоит разобрать 1385 ссылок, которые ранее были вкладками в 58-ми окнах браузера.

Попутно я еще решил разобрать бардак в Opera, где открыто еще 359 вкладок.

Пока что я осилил разобрать штук 50.

wandrien
()

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