tag:blogger.com,1999:blog-5717560518853552642024-03-13T04:06:18.156+03:00Damn Small BlogЗаметки и советы так или иначе касающиеся ОС GNU/LinuxUnknownnoreply@blogger.comBlogger58125tag:blogger.com,1999:blog-571756051885355264.post-35929541640990903922020-01-18T14:52:00.000+03:002020-03-10T10:11:12.313+03:00Linux, Яндекс.Браузер и DRM-контент в 2020-м году
UPDATE МАРТ 2020: Яндекс актуализировал описание на официальном сайте,
следует ориентироваться на него.
2020-й год, Yandex.Browser версии 19.12.3.332, Debian 10 Buster и сайт с DRM-видео, на примере Кинопоиск HD.
Трейлеры воспроизводятся, т.е. можно предположить, что с кодеками все в порядке. Однако при попытке воспроизведения купленного фильма видим: «Пожалуйста, подождите, идет настройкаUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-571756051885355264.post-21151401408038690032019-12-26T11:23:00.000+03:002020-03-27T11:23:17.739+03:00Яндекс.Музыка vs Deezer
Yet another субъективный сравнительный обзор музыкальных стриминговых сервисов.
Блюдя тематику (GNU/Linux) блога сравнивались только мобильные приложения для Android и десктопные web-интерфейсы.
В сравнении не участвует Spotify из-за своей скорости принятия корпоративных решений, потому что он уже более пяти лет скоро-скоро запустится в России.
Также не участвуют сервисы Google из-за вечного Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-571756051885355264.post-87445459811296685252019-12-20T11:59:00.001+03:002019-12-20T11:59:57.656+03:00Экспресс-разбор данных от input-устройства клавиатуры
Устройство клавиатуры можно найти по имени в каталоге "/dev/input/by-id/".
Возможно, нужно будет сменить владельца на текущего пользователя:
sudo chown user:user /dev/input/by-id/usb-Logitech_USB_Keyboard-event-kbd
Далее для снятия дампа в hex-виде предлагаю такую замысловатую команду:
sleep 1 ; hexdump -e '24/1 " %02X" "\n"' /dev/input/by-id/usb-Logitech_USB_Keyboard-event-kbd /dev/Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-571756051885355264.post-34739520809774666362018-08-04T17:26:00.001+03:002018-08-04T17:26:34.426+03:00Если перестал работать Wi-Fi на роутере WRT54GL с DD-WRT
Итак, есть роутер WRT54GL (а может быть и другой какой) с прошивкой DD-WRT. Wi-Fi работает (скорее всего годами) и в какой-то момент без видимых причин перестает. Помогает отключение аутентификации.
Первый раз после выключения аутентификации и повторного включения роутер мой продолжил работать как нужно, но через несколько месяцев (возможно после кратковременного отключения электричества?Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-571756051885355264.post-69970448096450522012018-02-22T10:43:00.000+03:002018-02-22T11:57:21.390+03:00Создание объектов GObject по имени типа. Часть 2.
В позапрошлом посте рассказывалось о создании экземпляров объектов GObject по имени класса, где, кроме всего прочего, было сказано:
Получается: либо типы всех потенциально загружаемых из файла объектов должны быть заранее зарегистрированы, т.е. все (обязательно все) и явно (в каком-то виде) типы должны быть прописаны в коде разработчиком, либо же нужен неизящный и непортабельный механизм вроде Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-571756051885355264.post-18561738925074467942016-10-04T18:39:00.002+03:002016-10-04T18:55:34.303+03:00Intel Math Kernel Library и MinGW
Итак, есть проект на Си/Vala, который собирается под 64bit Windows с помощью GCC (MinGW). Есть желание использовать в проекте библиотеку Intel Math Kernel Library (Intel MKL), но нет желания собирать все это дело с помощью Visual Studio.
Если попробуем просто слинковать lib и dll-файлы из MKL со своим проектом (передав их линковщику через gcc -l), то увидим ошибку вида:
...
C:\Views\Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-571756051885355264.post-21098260321946690242016-09-05T21:34:00.003+03:002018-02-22T10:45:24.579+03:00Создание объектов GObject по имени типа. Часть 1.
В предыдущем посте «Клонирование GObject» я рассказывал про идею некоего обобщенного кода, не зависимого от конкретной задачи,
который бы сохранял объекты Gobject в файлы (типы объектов и значения
свойств) и потом воссоздавал последовательность объектов по этим файлам. Предполагалось сохранять в текстовый файл имена классов и порядок объектов, а также имена свойств объектов и их значения.
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-571756051885355264.post-87262207388721277442016-04-25T09:22:00.000+03:002016-04-25T09:29:43.669+03:00Клонирование GObject
В одной из программ на работе используется ряд самописных Gtk-виджетов для настройки фильтров изображения. Виджеты лежат в Box'е, добавляются, удаляются и настраиваются пользователем. У каждого типа виджетов свой набор настроек. Все настройки виджеты хранят в своих свойствах.
Чтобы сохранять после перезапуска программы список фильтров и их параметры, была идея сделать некий обобщенны код, не Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-571756051885355264.post-77826060252913416292015-09-26T10:13:00.000+03:002015-09-26T10:14:59.850+03:00GtkCheckButton как label_widget в GtkExpander
Есть такая особенность в GTK, что если положить с помощью gtk_expander_set_label_widget в GtkExpander активируемый виджет вроде GtkCheckButton или GtkSwitch, то активируемый виджет вроде как работает (можно кликнуть по нему и получить статус "active"), но отрисовывается не правильно. Например, в случае GtkCheckButton не рисуется галочка, даже если кнопка в активном состоянии. В принципе даже из Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-571756051885355264.post-88947021202324773722014-11-28T12:23:00.001+03:002014-11-28T12:23:34.907+03:00CPackDeb.cmake и $ORIGIN в RPATH
CMake-ковский CPack в Debian “wheezy” не справляется с созданием deb-пакета, если в RPATH прописан $ORIGIN. CMake вываливается с ошибкой вида:
$ORIGIN используется в RPATH (...) и соответствующий каталог невозможно определить из-за отсутствия подкаталога DEBIAN в корне дерева сборки пакета
Или, для CLANG=C:
CPackDeb: dpkg-shlibdeps: dpkg-shlibdeps: warning: $ORIGIN is used in RPATH of .Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-571756051885355264.post-47061503241527258572014-11-28T12:13:00.001+03:002014-11-28T12:13:11.209+03:00gtk_show_uri и ghelp
В свежеустановленной Astra Linux не работала функция gtk_show_uri() с URI типа ghelp.
В GError при этом можно было увидеть ошибку:
'Действие не поддерживается'.
Или, с LANG=C:
'Operation not supported'.
Естественно, yelp был установлен.
Вопреки некоторым советам из интернетов, gvfs тут ни при чем.
Проблема решилась установкой пакета desktop-file-utils.
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-571756051885355264.post-80847630602366079122013-11-20T18:14:00.001+04:002013-11-20T18:18:16.976+04:00Диск для виртуальной машины из образа раздела
Задача следующая:
У вас есть образ раздела (скажем, sda1), но не всего диска (sda). Т.е. без таблицы разделов. Образ сделан с помощью старого доброго dd.
Нужно из него создать диск для VirtualBox'а (или другой виртуальной машины, например, VMware).
Решение:
Создаем пока пустой файл myvm.img для будущего образа диска (всего диска, в т.ч. с разделами). Размер файла выбираем исходя из размера Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-571756051885355264.post-67158210024162143372013-10-04T18:45:00.001+04:002013-10-18T23:22:52.999+04:00Iconia Tab W511 и Linux
Итак, есть планшет Acer Iconia Tab W511 (или другой, столь же кривой, т.е. на x86, но без поддержки Linux). Требуется запустить на нем Linux-программу с графическим интерфейсом (не портированную под win32, в т.ч. под cygwin). Пусть хоть в режиме тонкого клиента.
Решение — XServer под виндой (я выбрал Cygwin/X) и ssh-сервер на Linux-машине.
Алгоритм следующий:
На Linux-машине должен быть Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-571756051885355264.post-66346736408133264762013-07-25T21:32:00.000+04:002013-07-25T21:39:07.530+04:00Попытки разобраться в pixman'е
Библиотека pixman, как известно, документацией пользователей не балует ("There is currently no documentation besides the source code itself").
Поэтому выкладываю пару откомментированных на русском примеров. Примеры из официальной поставки, конкретно версии pixman-0.30. В комментариях могут быть ошибки, неточности и т.п. Тем не менее, вот они:
trap-test — вырезает из зеленого изображения Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-571756051885355264.post-46934852762195119902013-01-30T11:16:00.001+04:002013-01-30T11:19:34.815+04:00Пример GTK off-screen window на Vala
Код основан на примере "Rotated button" из gtk-demo. Собирается под Gtk-2. Местами код неидеален (например виджет RotatedBin.scale создается вручную в main), но, думаю, вполне может быть полезен.
Скрин:
Код:
https://docs.google.com/file/d/0B40UHa6ea9QkdUFTVnRqNnFaTDg/edit
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-571756051885355264.post-82792204588227302132012-11-28T19:24:00.000+04:002012-11-28T19:24:07.551+04:00FFTW VAPI на скорую руку
Потребовалось использовать в программе на Vala некоторые функции небезызвестной библиотеки для вычисления быстрого преобразования Фурье fftw3. Для чего был написан простенький vapi-файл. В силу своего, прямо скажем, мизерного пока еще опыта использования Vala, не рекомендую брать данный vapi за эталон, тем не менее выкладываю его на случай, если кому-то он окажется полезен. В vapi прописаны лишьUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-571756051885355264.post-43816090863529593652012-11-14T21:33:00.003+04:002012-11-14T21:33:51.557+04:00Чтение из бинарного файла на Vala
"Хозяйке на заметку": прочитать данные (переменные, целые, с плавающей точкой и т.п.) из бинарного файла на Vala можно и нужно с помощью GVariant, например так:
{
uint8[] buf = new uint8[sizeof(uint32) + sizeof(uint32) +
sizeof(double) + sizeof(double)];
{
var data_stream = new DataInputStream(file.read());
data_stream.read(buf);
}
Variant variant = Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-571756051885355264.post-64545718357906752992011-11-30T12:16:00.000+04:002011-12-02T11:24:16.744+04:00Патч с сохранением хэша в Git
В гите есть встроенные средства для создания и накладывания патчей. Но по умолчанию git не сохраняет сообщения коммитов "как есть" и изменяет время коммитов на время, когда были наложены патчи. Из-за этого меняются хэши коммитов. Что особенно неприятно если у вас есть два репозитория и один является субмодулем (git submodule) другого (т.к. основной репозиторий проверяет актуальность субмодуля Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-571756051885355264.post-57132012247605864822010-05-26T20:45:00.007+04:002010-05-26T21:09:04.676+04:00Кнопки в заголовке окна слева в IceWMМарк со своей Убунтой перешел на расположение кнопок в заголовке окна слева.Стив уже давно проповедует именно такой стиль.Быть может это действительно удобно и есть в этом смысл?Чтобы это проверить, я решил переоборудовать свой IceWM под такую схему расположения кнопок.Для этого в настройках (файл /home/USER/.icewm/preferences) нужно выставить следующие опции:# Titlebar buttons supported by Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-571756051885355264.post-22358278830804353022009-09-28T19:18:00.012+04:002009-09-28T20:01:04.517+04:00Тире, дефис и Compose.Как известно, тире на клавиатуре набрать не так-то просто, поэтому в большинстве своем в интернете мы встречаем лишь один знак — дефис. Подробнее об этой орфографической и типографической трагедии можно прочесть в статье "Тире, минус и дефис, или Черты русской типографики". Знак минуса пока оставим в покое, а вот тире попробуем все же отыскать. Поможет нам в этом клавиша Compose.Для начала ее Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-571756051885355264.post-59745449252173172732009-03-06T23:07:00.009+03:002009-03-07T12:40:55.953+03:00Linux и гатара (дополнение к найденному в сети).Без вступления скажу, что Linux и гитара вполне себе совместимы, чем конечно же Америку не открою (см. кучу статей в гугл по запросу "linux гитара").В замечательной статье по ссылке можно найти список полезных программ с их краткими описаниями.От себя же просто хочу добавить описание одной обойденной вниманием в данной статье софтине - тюнере для гитары и (как видно из названия программы) не Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-571756051885355264.post-70865776473231133852008-12-02T22:09:00.010+03:002008-12-02T22:34:32.986+03:00OpenOffice.org и Java в стиле Gtk.Пара советов как привести изначально унылый внешний вид OpenOffice и Java-приложений к стилю программ на Gtk:OpenOffice.orgСоздаем файл /etc/profile.d/openoffice.sh со следующим содержанием:## /etc/profile.d/openoffice.shexport SAL_USE_VCLPLUGIN=gtkexport OOO_FORCE_DESKTOP=gnomeТеперь достаточно перелогиниться в системе, необходимые настройки подхватятся.JavaСоздаем файл /etc/profile.d/gtkjava.shUnknownnoreply@blogger.com1tag:blogger.com,1999:blog-571756051885355264.post-34973257810310594152008-11-28T18:41:00.014+03:002008-11-28T19:14:39.907+03:00О том, как расшарить сканер.Пошаговое мини-howto, описывающее как расшарить сканер между linux-системами по аналогии с сетевым принтером.Предполагаем, что локально сканер на сервере настроен и работает (см. sane).Теперь нужно выполнить следующие действия:На сервере:1) Ставим демон saned (входит в состав разных пакетов, в зависимости от дистрибутива, наример sane-utils или sane-server).2) В /etc/sane.d/saned.conf добавляем Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-571756051885355264.post-65746640703773507162008-11-26T18:05:00.028+03:002008-11-26T19:24:56.499+03:00Пара способов установить dwm.Что такое dwm......можно прочитать например здесь (динамический фреймовый оконный менеджер и т.п.).Заинтересовавшимся про настройку можно (и нужно) почитать здесь.Я же опишу свои самые первые шаги по освоению dwm, а именно его установку.Первоначальные действия по распаковке (я ставил в домашнюю директорию) и сборке:# Будем ставить в домашнюю директорию, в скрытый каталог .dwmmkdir .dwmcd ./.dwm/#Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-571756051885355264.post-58804009293733824032008-10-09T18:53:00.010+04:002008-10-09T19:26:42.876+04:00Bootsplash и AltLinux Desktop 4.1.После обновления с AltLinux Desktop 4.0 до 4.1 приказал долго жить bootsplash.Как выяснилось новая тема design-bootsplash-desktop не поддерживает установленное у меня разрешение фреймбуфера (1280x1024), о чём на данный момент висит соответствующая бага.Вот мои действия по лечению проблемы:1) Смотрим доступные разрешения:$ ls /etc/bootsplash/themes/desktop/config/bootsplash-*.cfg/etc/bootsplash/Unknownnoreply@blogger.com0