]> pere.pagekite.me Git - homepage.git/blobdiff - blog/index.html
Generated.
[homepage.git] / blog / index.html
index fa4bbf0183e1a73185e512225df32cfd0f543bb7..ac3d39b573d82d0fadda42a6f307b7f86b0a573e 100644 (file)
 
 
     
+    <div class="entry">
+      <div class="title"><a href="https://people.skolelinux.org/pere/blog/Is_the_desktop_recommending_your_program_for_opening_its_files_.html">Is the desktop recommending your program for opening its files?</a></div>
+      <div class="date">29th January 2023</div>
+      <div class="body"><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>
+</div>
+      <div class="tags">
+        
+        
+        Tags: <a href="https://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>. 
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
     <div class="entry">
       <div class="title"><a href="https://people.skolelinux.org/pere/blog/Opensnitch__the_application_level_interactive_firewall__heading_into_the_Debian_archive.html">Opensnitch, the application level interactive firewall, heading into the Debian archive</a></div>
       <div class="date">22nd January 2023</div>
@@ -31,7 +117,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
@@ -640,90 +726,6 @@ minutes my machine had the latest and greatest BIOS firmware in place.</p>
     </div>
     <div class="padding"></div>
     
-    <div class="entry">
-      <div class="title"><a href="https://people.skolelinux.org/pere/blog/Playing_and_encoding_AV1_in_Debian_Bullseye.html">Playing and encoding AV1 in Debian Bullseye</a></div>
-      <div class="date">16th April 2022</div>
-      <div class="body"><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>
-</div>
-      <div class="tags">
-        
-        
-        Tags: <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="https://people.skolelinux.org/pere/blog/tags/standard">standard</a>, <a href="https://people.skolelinux.org/pere/blog/tags/video">video</a>. 
-        
-        
-      </div>
-    </div>
-    <div class="padding"></div>
-    
     <p style="text-align: right;"><a href="index.rss"><img src="https://people.skolelinux.org/pere/blog/xml.gif" alt="RSS feed" width="36" height="14" /></a></p>
     <div id="sidebar">
       
@@ -735,7 +737,7 @@ activities, please send Bitcoin donations to my address
 <li>2023
 <ul>
 
-<li><a href="https://people.skolelinux.org/pere/blog/archive/2023/01/">January (2)</a></li>
+<li><a href="https://people.skolelinux.org/pere/blog/archive/2023/01/">January (3)</a></li>
 
 </ul></li>
 
@@ -1151,7 +1153,7 @@ activities, please send Bitcoin donations to my address
 
  <li><a href="https://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
 
- <li><a href="https://people.skolelinux.org/pere/blog/tags/debian">debian (186)</a></li>
+ <li><a href="https://people.skolelinux.org/pere/blog/tags/debian">debian (187)</a></li>
 
  <li><a href="https://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (159)</a></li>
 
@@ -1165,7 +1167,7 @@ activities, please send Bitcoin donations to my address
 
  <li><a href="https://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
 
- <li><a href="https://people.skolelinux.org/pere/blog/tags/english">english (442)</a></li>
+ <li><a href="https://people.skolelinux.org/pere/blog/tags/english">english (443)</a></li>
 
  <li><a href="https://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>