X-Git-Url: http://pere.pagekite.me/gitweb/homepage.git/blobdiff_plain/bc2ce852a725885e6f6ee3996d1d1b122ed13241..2e2484ec393ad01b09c75d286217371758794262:/blog/index.rss diff --git a/blog/index.rss b/blog/index.rss index 1069d61319..d2c57d67db 100644 --- a/blog/index.rss +++ b/blog/index.rss @@ -6,6 +6,86 @@ https://people.skolelinux.org/pere/blog/ + + Is the desktop recommending your program for opening its files? + https://people.skolelinux.org/pere/blog/Is_the_desktop_recommending_your_program_for_opening_its_files_.html + https://people.skolelinux.org/pere/blog/Is_the_desktop_recommending_your_program_for_opening_its_files_.html + Sun, 29 Jan 2023 11:00:00 +0100 + <p>Linux desktop systems +<a href="https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html">have +standardized</a> how programs present themselves to the desktop +system. If a package include a .desktop file in +/usr/share/application, Gnome, KDE, LXDE, Xfce and the other desktop +environments will pick up the file and use its content to generate the +menu of available programs in the system. A lesser known fact is that +a package can also explain to the desktop system how to recognize the +files created by the program in question, and use it to open these +files on request, for example via a GUI file browser.</p> + +<p>A while back I ran into a package that did not tell the desktop +system how to recognize its files and was not used to open its files +in the file browser and fixed it. In the process I wrote a simple +debian/tests/ script to ensure the setup keep working. It might be +useful for other packages too, to ensure any future version of the +package keep handling its own files.</p> + +<p>For this to work the file format need a useful MIME type that can +be used to identify the format. If the file format do not yet have a +MIME type, it should define one and preferably also +<a href="https://www.iana.org/assignments/media-types/media-types.xhtml">register +it with IANA</a> to ensure the MIME type string is reserved.</p> + +<p>The script uses the <tt>xdg-mime</tt> program from xdg-utils to +query the database of standardized package information and ensure it +return sensible values. It also need the location of an example file +for xdg-mime to guess the format of.</p> + +<pre> +#!/bin/sh +# +# Author: Petter Reinholdtsen +# License: GPL v2 or later at your choice. +# +# Validate the MIME setup, making sure motor types have +# application/vnd.openmotor+yaml associated with them and is connected +# to the openmotor desktop file. + +retval=0 + +mimetype="application/vnd.openmotor+yaml" +testfile="test/data/real/o3100/motor.ric" +mydesktopfile="openmotor.desktop" + +filemime="$(xdg-mime query filetype "$testfile")" + +if [ "$mimetype" != "$filemime" ] ; then + retval=1 + echo "error: xdg-mime claim motor file MIME type is $filemine, not $mimetype" +else + echo "success: xdg-mime report correct mime type $mimetype for motor file" +fi + +desktop=$(xdg-mime query default "$mimetype") + +if [ "$mydesktopfile" != "$desktop" ]; then + retval=1 + echo "error: xdg-mime claim motor file should be handled by $desktop, not $mydesktopfile" +else + echo "success: xdg-mime agree motor file should be handled by $mydesktopfile" +fi + +exit $retval +</pre> + +<p>It is a simple way to ensure your users are not very surprised when +they try to open one of your file formats in their file browser.</p> + +<p>As usual, if you use Bitcoin and want to show your support of my +activities, please send Bitcoin donations to my address +<b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p> + + + Opensnitch, the application level interactive firewall, heading into the Debian archive https://people.skolelinux.org/pere/blog/Opensnitch__the_application_level_interactive_firewall__heading_into_the_Debian_archive.html @@ -20,7 +100,7 @@ description of the Little Snitch application for MacOS X. It seemed like a very nice tool to have in the tool box, and I decided to see if something similar was available for Linux.</p> -<p>It did not took long to find +<p>It did not take long to find <a href="https://github.com/evilsocket/opensnitch">the OpenSnitch package</a>, which has been in development since 2017, and now is in version 1.5.0. It has had a @@ -573,83 +653,5 @@ minutes my machine had the latest and greatest BIOS firmware in place.</p> - - Playing and encoding AV1 in Debian Bullseye - https://people.skolelinux.org/pere/blog/Playing_and_encoding_AV1_in_Debian_Bullseye.html - https://people.skolelinux.org/pere/blog/Playing_and_encoding_AV1_in_Debian_Bullseye.html - Sat, 16 Apr 2022 08:40:00 +0200 - <p>Inspired by the recent news of -<a href="https://slashdot.org/story/22/04/03/2039219/intel-beats-amd-and-nvidia-with-arc-gpus-full-av1-support">AV1 -hardware encoding support from Intel</a>, I decided to look into -the state of AV1 on Linux today. AV1 is a -<a href="https://web.archive.org/web/20160618103850/http://www.digistan.org/open-standard:definition">free -and open standard</a> as defined by Digistan without any royalty -payment requirement, unlike its much used competitor encoding -H.264. While looking, I came across an 5 year -<a href="https://askubuntu.com/questions/1061908/how-to-encode-and-playback-video-with-the-av1-codec-on-bionic-beaver-18-04">old -question on askubuntu.com</a> which in turn inspired me to check out -how things are in Debian Stable regarding AV1. The test file listed -in the question (askubuntu_test_aom.mp4) did not exist any more, so I -tracked down a different set of test files on -<a href="https://av1.webmfiles.org/">av1.webmfiles.org</a> to test them -with the various video tools I had installed on my machine. I was -happy to discover that AV1 decoding and playback worked with almost -every tool I tested: - -<table align="center"> -<tr><td>mediainfo</td> <td>ok</td></tr> -<tr><td>dragonplayer</td> <td>ok</td></tr> -<tr><td>ffmpeg / ffplay</td> <td>ok</td></tr> -<tr><td>gnome-mplayer</td> <td>fail</td></tr> -<tr><td>mplayer</td> <td>ok</td></tr> -<tr><td>mpv</td> <td>ok</td></tr> -<tr><td>parole</td> <td>ok</td></tr> -<tr><td>vlc</td> <td>ok</td></tr> -<tr><td>firefox</td> <td>ok</td></tr> -<tr><td>chromium</td> <td>ok</td></tr> -</table> - -<p>AV1 encoding is available in Debian Stable from the aom-tools -version 1.0.0.errata1-3 package, using the aomenc tool. The encoding -using the package in Debian Stable is quite slow, with the frame rate -for my 10 second test video at around 0.25 fps. My 10 second video -test took 16 minutes and 11 seconds on my test machine.</p> - -<p>I tested by first running ffmpeg and then aomenc using the recipe -provided by the askubuntu recipe above. I had to remove the -'--row-mt=1' option, as it was not supported in my 1.0.0 version. The -encoding only used a single thread, according to <tt>top</tt>.</p> - -<blockquote><pre> -ffmpeg -i some-old-video.ogv -t 10 -pix_fmt yuv420p video.y4m -aomenc --fps=24/1 -u 0 --codec=av1 --target-bitrate=1000 \ - --lag-in-frames=25 --auto-alt-ref=1 -t 24 --cpu-used=8 \ - --tile-columns=2 --tile-rows=2 -o output.webm video.y4m -</pre></blockquote> - -<p>As version 1.0.0 currently have several -<a href="https://security-tracker.debian.org/tracker/source-package/aom">unsolved -security issues in Debian Stable</a>, and to see if the recent -backport <a href="https://tracker.debian.org/pkg/aom">provided in -Debian</a> is any quicker, I ran <tt>apt -t bullseye-backports install -aom-tools</tt> to fetch the backported version and re-encoded the -video using the latest version. This time the '--row-mt=1' option -worked, and the encoding was done in 46 seconds with a frame rate of -around 5.22 fps. This time it seem to be using all my four cores to -encode. Encoding speed is still too low for streaming and real time, -which would require frame rates above 25 fps, but might be good enough -for offline encoding.</p> - -<p>I am very happy to see AV1 playback working so well with the -default tools in Debian Stable. I hope the encoding situation improve -too, allowing even a slow old computer like my 10 year old laptop to -be used for encoding.</p> - -<p>As usual, if you use Bitcoin and want to show your support of my -activities, please send Bitcoin donations to my address -<b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p> - - -