]> pere.pagekite.me Git - homepage.git/blobdiff - blog/tags/english/index.html
Generated.
[homepage.git] / blog / tags / english / index.html
index 43d0182e8abc3c117708ca1f3fff050dfb7536f4..df2dc97c23152aeac0541b1138537e9ff3c7452b 100644 (file)
 
     <h3>Entries tagged "english".</h3>
     
+    <div class="entry">
+      <div class="title">
+        <a href="https://people.skolelinux.org/pere/blog/Invidious_add_on_for_Kodi_20.html">Invidious add-on for Kodi 20</a>
+      </div>
+      <div class="date">
+        10th August 2023
+      </div>
+      <div class="body">
+        <p>I still enjoy <a href="https://kodi.tv/">Kodi</a> and
+<a href="https://libreelec.tv/">LibreELEC</a> as my multimedia center
+at home.  Sadly two of the services I really would like to use from
+within Kodi are not easily available.  The most wanted add-on would be
+one making <a href="https://archive.org/">The Internet Archive</a>
+available, and it has
+<a href="https://kodi.wiki/view/Add-on:Internet_Archive">not been
+working</a> for many years.  The second most wanted add-on is one
+using <a href="https://invidious.io/">the Invidious privacy enhanced
+Youtube frontent</a>.  A plugin for this has been partly working, but
+not been kept up to date in the Kodi add-on repository, and its
+upstream seem to have given it up in april this year, when the git
+repository was closed.  A few days ago I got tired of this sad state
+of affairs and decided to
+<a href="https://github.com/petterreinholdtsen/kodi-invidious-plugin">have
+go at improvimg the Invidious add-on</a>.  As
+<a href="https://github.com/iv-org/invidious/issues/3872">Google has
+already attacked</a> the Invidious concept, so it need all the support
+if can get.  My small contribution here is to improve the service
+status on Kodi.</p>
+
+<p>I added support to the Invidious add-on for automatically picking a
+working Invidious instance, instead of requiring the user to specify
+the URL to a specific instance after installation.  I also had a look
+at the set of patches floating around in the various forks on github,
+and decided to clean up at least some of the features I liked and
+integrate them into my new release branch.  Now the plugin can handle
+channel and short video items in search results.  Earlier it could
+only handle single video instances in the search response.  I also
+brushed up the set of metadata displayed a bit, but hope I can figure
+out how to get more relevant metadata displayed.</p>
+
+<p>Because I only use Kodi 20 myself, I only test on version 20 and am
+only motived to ensure version 20 is working.  Because of API changes
+between version 19 and 20, I suspect it will fail with earlier Kodi
+versions.</p>
+
+<p>I already
+<a href="https://github.com/xbmc/repo-plugins/pull/4363">asked to have
+the add-on added</a> to the official Kodi 20 repository, and is
+waiting to heard back from the repo maintainers.</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/kodi">kodi</a>, <a href="https://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="https://people.skolelinux.org/pere/blog/tags/video">video</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="https://people.skolelinux.org/pere/blog/What_did_I_learn_from_OpenSnitch_this_summer_.html">What did I learn from OpenSnitch this summer?</a>
+      </div>
+      <div class="date">
+        11th June 2023
+      </div>
+      <div class="body">
+        <p>With yesterdays
+<a href="https://www.debian.org/News/2023/20230610">release of Debian
+12 Bookworm</a>, I am happy to know the
+<a href="https://tracker.debian.org/pkg/opensnitch">the interactive
+application firewall OpenSnitch</a> is available for a wider audience.
+I have been running it for a few weeks now, and have been surprised
+about some of the programs connecting to the Internet.  Some programs
+are obviously calling out from my machine, like the NTP network based
+clock adjusting system and Tor to reach other Tor clients, but others
+were more dubious.  For example, the KDE Window manager try to look up
+the host name in DNS, for no apparent reason, but if this lookup is
+blocked the KDE desktop get periodically stuck when I use it.  Another
+surprise was how much Firefox call home directly to mozilla.com,
+mozilla.net and googleapis.com, to mention a few, when I visit other
+web pages.  This direct connection happen even if I told Firefox to
+always use a proxy, and the proxy setting is ignored for this traffic.
+Other surprising connections come from audacity and dirmngr (I do not
+use Gnome).  It took some trial and error to get a good default set of
+permissions.  Without it, I would get popups asking for permissions at
+any time, also the most inconvenient ones where I am in the middle of
+a time sensitive gaming session.</p>
+
+<p>I suspect some application developers should rethink when then need
+to use network connections or DNS lookups, and recommend testing
+OpenSnitch (only <tt>apt install opensnitch</tt> away in Debian
+Bookworm) to locate and report any surprising Internet connections on
+your desktop machine.</p>
+
+<p>At the moment the upstream developer and Debian package maintainer
+is working on making the system more reliable in Debian, by enabling
+the eBPF kernel module to track processes and connections instead of
+depending in content in /proc/.  This should enter unstable fairly
+soon.</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>
+
+<p><strong>Update 2023-06-12</strong>: I got a tip about
+<a href="https://wiki.debian.org/PrivacyIssues">a list of privacy
+issues in Free Software</a> and the
+<a href="irc://irc.debian.org/%23debian-privacy">#debian-privacy IRC
+channel</a> discussing these topics.</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>, <a href="https://people.skolelinux.org/pere/blog/tags/opensnitch">opensnitch</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="https://people.skolelinux.org/pere/blog/wmbusmeters__parse_data_from_your_utility_meter___nice_free_software.html">wmbusmeters, parse data from your utility meter - nice free software</a>
+      </div>
+      <div class="date">
+        19th May 2023
+      </div>
+      <div class="body">
+        <p>There is a European standard for reading utility meters like water,
+gas, electricity or heat distribution meters.  The
+<a href="https://en.wikipedia.org/wiki/Meter-Bus">Meter-Bus standard
+(EN 13757-2, EN 13757-3 and EN 13757–4)</a> provide a cross vendor way
+to talk to and collect meter data.  I ran into this standard when I
+wanted to monitor some heat distribution meters, and managed to find
+free software that could do the job.  The meters in question broadcast
+encrypted messages with meter information via radio, and the hardest
+part was to track down the encryption keys from the vendor.  With this
+in place I could set up a MQTT gateway to submit the meter data for
+graphing.</p>
+
+<p>The free software systems in question,
+<a href="https://tracker.debian.org/pkg/rtl-wmbus">rtl-wmbus</a> to
+read the messages from a software defined radio, and
+<a href="https://tracker.debian.org/pkg/wmbusmeters">wmbusmeters</a> to
+decrypt and decode the content of the messages, is working very well
+and allowe me to get frequent updates from my meters.  I got in touch
+with upstream last year to see if there was any interest in publishing
+the packages via Debian.  I was very happy to learn that Fredrik
+Öhrström volunteered to maintain the packages, and I have since
+assisted him in getting Debian package build rules in place as well as
+sponsoring the packages into the Debian archive.  Sadly we completed
+it too late for them to become part of the next stable Debian release
+(Bookworm).  The wmbusmeters package just cleared the NEW queue.  It
+will need some work to fix a built problem, but I expect Fredrik will
+find a solution soon.</p>
+
+<p>If you got a infrastructure meter supporting the Meter Bus
+standard, I strongly recommend having a look at these nice
+packages.</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>, <a href="https://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="https://people.skolelinux.org/pere/blog/The_2023_LinuxCNC_Norwegian_developer_gathering.html">The 2023 LinuxCNC Norwegian developer gathering</a>
+      </div>
+      <div class="date">
+        14th May 2023
+      </div>
+      <div class="body">
+        <p>The LinuxCNC project is making headway these days.  A lot of
+patches and issues have seen activity on
+<a href="https://github.com/LinuxCNC/linuxcnc/">the project github
+pages</a> recently.  A few weeks ago there was a developer gathering
+over at the <a href="https://tormach.com/">Tormach</a> headquarter in
+Wisconsin, and now we are planning a new gathering in Norway.  If you
+wonder what LinuxCNC is, lets quote Wikipedia:</p>
+
+<blockquote>
+"LinuxCNC is a software system for numerical control of
+machines such as milling machines, lathes, plasma cutters, routers,
+cutting machines, robots and hexapods. It can control up to 9 axes or
+joints of a CNC machine using G-code (RS-274NGC) as input. It has
+several GUIs suited to specific kinds of usage (touch screen,
+interactive development)."
+</blockquote>
+
+<p>The Norwegian developer gathering take place the weekend June 16th
+to 18th this year, and is open for everyone interested in contributing
+to LinuxCNC.  Up to date information about the gathering can be found
+in
+<a href="https://sourceforge.net/p/emc/mailman/emc-developers/thread/sa64jp06nob.fsf%40hjemme.reinholdtsen.name/#msg37837251">the
+developer mailing list thread</a> where the gathering was announced.
+Thanks to the good people at
+<a href="https://www.debian.org/">Debian</a>,
+<a href="https://www.redpill-linpro.com/">Redpill-Linpro</a> and
+<a href="https://www.nuugfoundation.no/no/">NUUG Foundation</a>, we
+have enough sponsor funds to pay for food, and shelter for the people
+traveling from afar to join us.  If you would like to join the
+gathering, get in touch.</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>, <a href="https://people.skolelinux.org/pere/blog/tags/linuxcnc">linuxcnc</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="https://people.skolelinux.org/pere/blog/OpenSnitch_in_Debian_ready_for_prime_time.html">OpenSnitch in Debian ready for prime time</a>
+      </div>
+      <div class="date">
+        13th May 2023
+      </div>
+      <div class="body">
+        <p>A bit delayed,
+<a href="https://tracker.debian.org/pkg/opensnitch">the interactive
+application firewall OpenSnitch</a> package in Debian now got the
+latest fixes ready for Debian Bookworm.  Because it depend on a
+package missing on some architectures, the autopkgtest check of the
+testing migration script did not understand that the tests were
+actually working, so the migration was delayed.  A bug in the package
+dependencies is also fixed, so those installing the firewall package
+(opensnitch) now also get the GUI admin tool (python3-opensnitch-ui)
+installed by default.  I am very grateful to Gustavo Iñiguez Goya for
+his work on getting the package ready for Debian Bookworm.</p>
+
+<p>Armed with this package I have discovered some surprising
+connections from programs I believed were able to work completly
+offline, and it has already proven its worth, at least to me.  If you
+too want to get more familiar with the kind of programs using
+Internett connections on your machine, I recommend testing <tt>apt
+install opensnitch</tt> in Bookworm and see what you think.</p>
+
+<p>The package is still not able to build its eBPF module within
+Debian.  Not sure how much work it would be to get it working, but
+suspect some kernel related packages need to be extended with more
+header files to get it working.</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>, <a href="https://people.skolelinux.org/pere/blog/tags/opensnitch">opensnitch</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="https://people.skolelinux.org/pere/blog/Speech_to_text__she_APTly_whispered__how_hard_can_it_be_.html">Speech to text, she APTly whispered, how hard can it be?</a>
+      </div>
+      <div class="date">
+        23rd April 2023
+      </div>
+      <div class="body">
+        <p>While visiting a convention during Easter, it occurred to me that
+it would be great if I could have a digital Dictaphone with
+transcribing capabilities, providing me with texts to cut-n-paste into
+stuff I need to write.  The background is that long drives often bring
+up the urge to write on texts I am working on, which of course is out
+of the question while driving.  With the release of
+<a href="https://github.com/openai/whisper/">OpenAI Whisper</a>, this
+seem to be within reach with Free Software, so I decided to give it a
+go.  OpenAI Whisper is a Linux based neural network system to read in
+audio files and provide text representation of the speech in that
+audio recording.  It handle multiple languages and according to its
+creators even can translate into a different language than the spoken
+one.  I have not tested the latter feature.  It can either use the CPU
+or a GPU with CUDA support.  As far as I can tell, CUDA in practice
+limit that feature to NVidia graphics cards.  I have few of those, as
+they do not work great with free software drivers, and have not tested
+the GPU option.  While looking into the matter, I did discover some
+work to provide CUDA support on non-NVidia GPUs, and some work with
+the library used by Whisper to port it to other GPUs, but have not
+spent much time looking into GPU support yet.  I've so far used an old
+X220 laptop as my test machine, and only transcribed using its
+CPU.</p>
+
+<p>As it from a privacy standpoint is unthinkable to use computers
+under control of someone else (aka a "cloud" service) to transcribe
+ones thoughts and personal notes, I want to run the transcribing
+system locally on my own computers.  The only sensible approach to me
+is to make the effort I put into this available for any Linux user and
+to upload the needed packages into Debian.  Looking at Debian Bookworm, I
+discovered that only three packages were missing,
+<a href="https://bugs.debian.org/1034307">tiktoken</a>,
+<a href="https://bugs.debian.org/1034144">triton</a>, and
+<a href="https://bugs.debian.org/1034091">openai-whisper</a>.  For a while
+I also believed
+<a href="https://bugs.debian.org/1034286">ffmpeg-python</a> was
+needed, but as its
+<a href="https://github.com/kkroening/ffmpeg-python/issues/760">upstream
+seem to have vanished</a> I found it safer
+<a href="https://github.com/openai/whisper/pull/1242">to rewrite
+whisper</a> to stop depending on in than to introduce ffmpeg-python
+into Debian.  I decided to place these packages under the umbrella of
+<a href="https://salsa.debian.org/deeplearning-team">the Debian Deep
+Learning Team</a>, which seem like the best team to look after such
+packages.  Discussing the topic within the group also made me aware
+that the triton package was already a future dependency of newer
+versions of the torch package being planned, and would be needed after
+Bookworm is released.</p>
+
+<p>All required code packages have been now waiting in
+<a href="https://ftp-master.debian.org/new.html">the Debian NEW
+queue</a> since Wednesday, heading for Debian Experimental until
+Bookworm is released.  An unsolved issue is how to handle the neural
+network models used by Whisper.  The default behaviour of Whisper is
+to require Internet connectivity and download the model requested to
+<tt>~/.cache/whisper/</tt> on first invocation.  This obviously would
+fail <a href="https://people.debian.org/~bap/dfsg-faq.html">the
+deserted island test of free software</a> as the Debian packages would
+be unusable for someone stranded with only the Debian archive and solar
+powered computer on a deserted island.</p>
+
+<p>Because of this, I would love to include the models in the Debian
+mirror system.  This is problematic, as the models are very large
+files, which would put a heavy strain on the Debian mirror
+infrastructure around the globe.  The strain would be even higher if
+the models change often, which luckily as far as I can tell they do
+not.  The small model, which according to its creator is most useful
+for English and in my experience is not doing a great job there
+either, is 462 MiB (deb is 414 MiB).  The medium model, which to me
+seem to handle English speech fairly well is 1.5 GiB (deb is 1.3 GiB)
+and the large model is 2.9 GiB (deb is 2.6 GiB).  I would assume
+everyone with enough resources would prefer to use the large model for
+highest quality.  I believe the models themselves would have to go
+into the non-free part of the Debian archive, as they are not really
+including any useful source code for updating the models.  The
+"source", aka the model training set, according to the creators
+consist of "680,000 hours of multilingual and multitask supervised
+data collected from the web", which to me reads material with both
+unknown copyright terms, unavailable to the general public.  In other
+words, the source is not available according to the Debian Free
+Software Guidelines and the model should be considered non-free.</p>
+
+<p>I asked the Debian FTP masters for advice regarding uploading a
+model package on their IRC channel, and based on the feedback there it
+is still unclear to me if such package would be accepted into the
+archive.  In any case I wrote build rules for a
+<a href="https://salsa.debian.org/deeplearning-team/openai-whisper-model">OpenAI
+Whisper model package</a> and
+<a href="https://github.com/openai/whisper/pull/1257">modified the
+Whisper code base</a> to prefer shared files under <tt>/usr/</tt> and
+<tt>/var/</tt> over user specific files in <tt>~/.cache/whisper/</tt>
+to be able to use these model packages, to prepare for such
+possibility.  One solution might be to include only one of the models
+(small or medium, I guess) in the Debian archive, and ask people to
+download the others from the Internet.  Not quite sure what to do
+here, and advice is most welcome (use the debian-ai mailing list).</p>
+
+<p>To make it easier to test the new packages while I wait for them to
+clear the NEW queue, I created an APT source targeting bookworm.  I
+selected Bookworm instead of Bullseye, even though I know the latter
+would reach more users, is that some of the required dependencies are
+missing from Bullseye and I during this phase of testing did not want
+to backport a lot of packages just to get up and running.</p>
+
+<p>Here is a recipe to run as user root if you want to test OpenAI
+Whisper using Debian packages on your Debian Bookworm installation,
+first adding the APT repository GPG key to the list of trusted keys,
+then setting up the APT repository and finally installing the packages
+and one of the models:</p>
+
+<p><pre>
+curl https://geekbay.nuug.no/~pere/openai-whisper/D78F5C4796F353D211B119E28200D9B589641240.asc \
+  -o /etc/apt/trusted.gpg.d/pere-whisper.asc
+mkdir -p /etc/apt/sources.list.d
+cat > /etc/apt/sources.list.d/pere-whisper.list &lt;&lt;EOF
+deb https://geekbay.nuug.no/~pere/openai-whisper/ bookworm main
+deb-src https://geekbay.nuug.no/~pere/openai-whisper/ bookworm main
+EOF
+apt update
+apt install openai-whisper
+</pre></p>
+
+<p>The package work for me, but have not yet been tested on any other
+computer than my own.  With it, I have been able to (badly) transcribe
+a 2 minute 40 second Norwegian audio clip to test using the small
+model.  This took 11 minutes and around 2.2 GiB of RAM.  Transcribing
+the same file with the medium model gave a accurate text in 77 minutes
+using around 5.2 GiB of RAM.  My test machine had too little memory to
+test the large model, which I believe require 11 GiB of RAM.  In
+short, this now work for me using Debian packages, and I hope it will
+for you and everyone else once the packages enter Debian.</p>
+
+<p>Now I can start on the audio recording part of this project.</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>, <a href="https://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="https://people.skolelinux.org/pere/blog/tags/video">video</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="https://people.skolelinux.org/pere/blog/rtlsdr_scanner__software_defined_radio_frequency_scanner_for_Linux____nice_free_software.html">rtlsdr-scanner, software defined radio frequency scanner for Linux  - nice free software</a>
+      </div>
+      <div class="date">
+         7th April 2023
+      </div>
+      <div class="body">
+        <p>Today I finally found time to track down a useful radio frequency
+scanner for my software defined radio.  Just for fun I tried to locate
+the radios used in the areas, and a good start would be to scan all
+the frequencies to see what is in use.  I've tried to find a useful
+program earlier, but ran out of time before I managed to find a useful
+tool.  This time I was more successful, and after a few false leads I
+found a description of
+<a href="https://www.kali.org/tools/rtlsdr-scanner/">rtlsdr-scanner
+over at the Kali site</a>, and was able to track down
+<a href="https://gitlab.com/kalilinux/packages/rtlsdr-scanner.git">the
+Kali package git repository</a> to build a deb package for the
+scanner.  Sadly the package is missing from the Debian project itself,
+at least in Debian Bullseye.  Two runtime dependencies,
+<a href="https://gitlab.com/kalilinux/packages/python-visvis.git">python-visvis</a>
+and
+<a href="https://gitlab.com/kalilinux/packages/python-rtlsdr.git">python-rtlsdr</a>
+had to be built and installed separately.  Luckily '<tt>gbp
+buildpackage</tt>' handled them just fine and no further packages had
+to be manually built.  The end result worked out of the box after
+installation.</p>
+
+<p>My initial scans for FM channels worked just fine, so I knew the
+scanner was functioning.  But when I tried to scan every frequency
+from 100 to 1000 MHz, the program stopped unexpectedly near the
+completion.  After some debugging I discovered USB software radio I
+used rejected frequencies above 948 MHz, triggering a unreported
+exception breaking the scan.  Changing the scan to end at 957 worked
+better.  I similarly found the lower limit to be around 15, and ended
+up with the following full scan:</p>
+
+<p><a href="https://people.skolelinux.org/pere/blog/images/2023-04-07-radio-freq-scanning.png"><img src="https://people.skolelinux.org/pere/blog/images/2023-04-07-radio-freq-scanning.png" width="100%"></a></p>
+
+<p>Saving the scan did not work, but exporting it as a CSV file worked
+just fine.  I ended up with around 477k CVS lines with dB level for
+the given frequency.</p>
+
+<p>The save failure seem to be a missing UTF-8 encoding issue in the
+python code.  Will see if I can find time to send a patch
+<a href="https://github.com/CdeMills/RTLSDR-Scanner/">upstream</a>
+later to fix this exception:</p>
+
+<pre>
+Traceback (most recent call last):
+  File "/usr/lib/python3/dist-packages/rtlsdr_scanner/main_window.py", line 485, in __on_save
+    save_plot(fullName, self.scanInfo, self.spectrum, self.locations)
+  File "/usr/lib/python3/dist-packages/rtlsdr_scanner/file.py", line 408, in save_plot
+    handle.write(json.dumps(data, indent=4))
+TypeError: a bytes-like object is required, not 'str'
+Traceback (most recent call last):
+  File "/usr/lib/python3/dist-packages/rtlsdr_scanner/main_window.py", line 485, in __on_save
+    save_plot(fullName, self.scanInfo, self.spectrum, self.locations)
+  File "/usr/lib/python3/dist-packages/rtlsdr_scanner/file.py", line 408, in save_plot
+    handle.write(json.dumps(data, indent=4))
+TypeError: a bytes-like object is required, not 'str'
+</pre>
+<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>, <a href="https://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="https://people.skolelinux.org/pere/blog/OpenSnitch_available_in_Debian_Sid_and_Bookworm.html">OpenSnitch available in Debian Sid and Bookworm</a>
+      </div>
+      <div class="date">
+        25th February 2023
+      </div>
+      <div class="body">
+        <p>Thanks to the efforts of the OpenSnitch lead developer Gustavo
+Iñiguez Goya allowing me to sponsor the upload,
+<a href="https://tracker.debian.org/pkg/opensnitch">the interactive
+application firewall OpenSnitch</a> is now available in Debian
+Testing, soon to become the next stable release of Debian.</p>
+
+<p>This is a package which set up a network firewall on one or more
+machines, which is controlled by a graphical user interface that will
+ask the user if a program should be allowed to connect to the local
+network or the Internet.  If some background daemon is trying to dial
+home, it can be blocked from doing so with a simple mouse click, or by
+default simply by not doing anything when the GUI question dialog pop
+up.  A list of all programs discovered using the network is provided
+in the GUI, giving the user an overview of how the machine(s) programs
+use the network.</p>
+
+<p>OpenSnitch was uploaded for NEW processing about a month ago, and I
+had little hope of it getting accepted and shaping up in time for the
+package freeze, but the Debian ftpmasters proved to be amazingly quick
+at checking out the package and it was accepted into the archive about
+week after the first upload.  It is now team maintained under the Go
+language team umbrella.  A few fixes to the default setup is only in
+Sid, and should migrate to Testing/Bookworm in a week.</p>
+
+<p>During testing I ran into an
+<a href="https://github.com/evilsocket/opensnitch/issues/813">issue
+with Minecraft server broadcasts disappearing</a>, which was quickly
+resolved by the developer with a patch and a proposed configuration
+change.  I've been told this was caused by the Debian packages default
+use if /proc/ information to track down kernel status, instead of the
+newer eBPF module that can be used.  The reason is simply that
+upstream and I have failed to find a way to build the eBPF modules for
+OpenSnitch without a complete configured Linux kernel source tree,
+which as far as we can tell is unavailable as a build dependency in
+Debian.  We tried unsuccessfully so far to use the kernel-headers
+package.  It would be great if someone could provide some clues how to
+build eBPF modules on build daemons in Debian, possibly without the full
+kernel source.</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>, <a href="https://people.skolelinux.org/pere/blog/tags/opensnitch">opensnitch</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <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/applications/, 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>
+      <div class="body">
+        <p>While reading a
+<a href="https://sneak.berlin/20230115/macos-scans-your-local-files-now/">blog
+post claiming MacOS X recently started scanning local files and
+reporting information about them to Apple</a>, even on a machine where
+all such callback features had been disabled, I came across a
+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 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
+<a href="https://bugs.debian.org/909567">request for Debian
+packaging</a> since 2018, but no-one completed the job so far.  Just
+for fun, I decided to see if I could help, and I was very happy to
+discover that
+<a href="https://github.com/evilsocket/opensnitch/issues/304">upstream
+want a Debian package too</a>.</p>
+
+<p>After struggling a bit with getting the program to run, figuring
+out building Go programs (and a little failed detour to look at eBPF
+builds too - help needed), I am very happy to report that I am
+sponsoring upstream to maintain the package in Debian, and it has
+since this morning been waiting in NEW for the ftpmasters to have a
+look.  Perhaps it can get into the archive in time for the Bookworm
+release?</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>, <a href="https://people.skolelinux.org/pere/blog/tags/opensnitch">opensnitch</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
     <div class="entry">
       <div class="title">
         <a href="https://people.skolelinux.org/pere/blog/LinuxCNC_MQTT_publisher_component.html">LinuxCNC MQTT publisher component</a>
@@ -61,8 +786,8 @@ before it can go into the mainland LinuxCNC code base.</p>
 
 <p>Since I started on the MQTT component, I came across
 <a href="https://yewtu.be/watch?v=Bqa2grG0XtA">another video from Kent
-VanderVelden where he combine LinuxCNC with a set of screen glasses
-controlled by a Raspberry Pi</a>, and it occured to me that it would
+VanderVelden</a> where he combine LinuxCNC with a set of screen glasses
+controlled by a Raspberry Pi, and it occured to me that it would
 be useful for such use cases if LinuxCNC also provided a REST API for
 querying its status.  I hope to start on such component once the MQTT
 component is working well.</p>
@@ -5427,7 +6152,7 @@ activities, please send Bitcoin donations to my address
       <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/multimedia">multimedia</a>, <a href="https://people.skolelinux.org/pere/blog/tags/video">video</a>.
+        Tags: <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="https://people.skolelinux.org/pere/blog/tags/kodi">kodi</a>, <a href="https://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="https://people.skolelinux.org/pere/blog/tags/video">video</a>.
         
         
       </div>
@@ -35625,7 +36350,17 @@ be the only one fitting our needs. :/</p>
 <li>2023
 <ul>
 
-<li><a href="https://people.skolelinux.org/pere/blog/archive/2023/01/">January (1)</a></li>
+<li><a href="https://people.skolelinux.org/pere/blog/archive/2023/01/">January (3)</a></li>
+
+<li><a href="https://people.skolelinux.org/pere/blog/archive/2023/02/">February (1)</a></li>
+
+<li><a href="https://people.skolelinux.org/pere/blog/archive/2023/04/">April (2)</a></li>
+
+<li><a href="https://people.skolelinux.org/pere/blog/archive/2023/05/">May (3)</a></li>
+
+<li><a href="https://people.skolelinux.org/pere/blog/archive/2023/06/">June (1)</a></li>
+
+<li><a href="https://people.skolelinux.org/pere/blog/archive/2023/08/">August (1)</a></li>
 
 </ul></li>
 
@@ -36041,7 +36776,7 @@ be the only one fitting our needs. :/</p>
 
  <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 (185)</a></li>
+ <li><a href="https://people.skolelinux.org/pere/blog/tags/debian">debian (194)</a></li>
 
  <li><a href="https://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (159)</a></li>
 
@@ -36055,7 +36790,7 @@ be the only one fitting our needs. :/</p>
 
  <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 (441)</a></li>
+ <li><a href="https://people.skolelinux.org/pere/blog/tags/english">english (451)</a></li>
 
  <li><a href="https://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
 
@@ -36075,7 +36810,7 @@ be the only one fitting our needs. :/</p>
 
  <li><a href="https://people.skolelinux.org/pere/blog/tags/kart">kart (23)</a></li>
 
- <li><a href="https://people.skolelinux.org/pere/blog/tags/kodi">kodi (4)</a></li>
+ <li><a href="https://people.skolelinux.org/pere/blog/tags/kodi">kodi (6)</a></li>
 
  <li><a href="https://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
 
@@ -36083,7 +36818,7 @@ be the only one fitting our needs. :/</p>
 
  <li><a href="https://people.skolelinux.org/pere/blog/tags/lenker">lenker (8)</a></li>
 
- <li><a href="https://people.skolelinux.org/pere/blog/tags/linuxcnc">linuxcnc (4)</a></li>
+ <li><a href="https://people.skolelinux.org/pere/blog/tags/linuxcnc">linuxcnc (5)</a></li>
 
  <li><a href="https://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (2)</a></li>
 
@@ -36093,9 +36828,9 @@ be the only one fitting our needs. :/</p>
 
  <li><a href="https://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
 
- <li><a href="https://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (44)</a></li>
+ <li><a href="https://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (46)</a></li>
 
- <li><a href="https://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (13)</a></li>
+ <li><a href="https://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (15)</a></li>
 
  <li><a href="https://people.skolelinux.org/pere/blog/tags/noark5">noark5 (23)</a></li>
 
@@ -36107,6 +36842,8 @@ be the only one fitting our needs. :/</p>
 
  <li><a href="https://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
 
+ <li><a href="https://people.skolelinux.org/pere/blog/tags/opensnitch">opensnitch (4)</a></li>
+
  <li><a href="https://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (75)</a></li>
 
  <li><a href="https://people.skolelinux.org/pere/blog/tags/personvern">personvern (114)</a></li>
@@ -36149,7 +36886,7 @@ be the only one fitting our needs. :/</p>
 
  <li><a href="https://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri (20)</a></li>
 
- <li><a href="https://people.skolelinux.org/pere/blog/tags/video">video (77)</a></li>
+ <li><a href="https://people.skolelinux.org/pere/blog/tags/video">video (79)</a></li>
 
  <li><a href="https://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>