<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>bovender</title><link>https://www.bovender.de/</link><description>Recent content on bovender</description><generator>Hugo -- 0.163.1</generator><language>en</language><copyright>2024-2026 Daniel Kraus</copyright><lastBuildDate>Sun, 26 Jul 2026 06:48:03 +0200</lastBuildDate><atom:link href="https://www.bovender.de/index.xml" rel="self" type="application/rss+xml"/><item><title>[German] Becherhalter im Skoda Enyaq</title><link>https://www.bovender.de/posts/2026/07/german-becherhalter-im-skoda-enyaq/</link><pubDate>Sun, 26 Jul 2026 06:48:03 +0200</pubDate><guid>https://www.bovender.de/posts/2026/07/german-becherhalter-im-skoda-enyaq/</guid><description>Die Becherhalter (cup holder) im Enyaq MJ 2027 sind überraschend schmal und man tut sich schwer, Informationen über passende Thermobecher zu bekommen.
</description><content type="text/html" mode="escaped"><![CDATA[<figure><img src="/posts/2026/07/german-becherhalter-im-skoda-enyaq/cupholder-overview.jpg"
    alt="Becherhalter im Enyaq">
</figure>
<p>Die Becherhalter im Skoda Enyaq (Modelljahr 2027) sind überraschend schmal und
ich tue mich schwer, einen passenden Thermo-Kaffeebecher dafür zu finden. Mein
schöner Isolierbecher von LARS NYSØM, den ich geschenkt bekommen habe, passt
leider nicht hinein :-/</p>
<figure><img src="/posts/2026/07/german-becherhalter-im-skoda-enyaq/cupholder-caliper.jpg"
    alt="Becherhalter mit Schublehre">
</figure>
<p>Ich habe den Durchmesser ausgemessen und komme auf 6,8 cm:</p>
<figure><img src="/posts/2026/07/german-becherhalter-im-skoda-enyaq/caliper-detail.jpg"
    alt="Schublehre-Detail">
</figure>
<p>Das Problem nun ist, dass man zwar einige Becher finden kann, die unten
einen Durchmesse von 6,8 cm haben, dieser hier zum Beispiel ist aber nicht
zylindrisch, sondern konisch und passt deshalb nicht vollständig hinein:</p>
<figure><img src="/posts/2026/07/german-becherhalter-im-skoda-enyaq/cup-in-cupholder.jpg"
    alt="Becher in Becherhalter">
</figure>
<p>Zudem ist dieses spezielle Modell (von 720 Degree) etwas unpraktisch, da der
Kaffee rundherum unter dem Deckel austreten kann, so dass er mir auf breiter
Front in den Mund läuft und ich aufpassen muss, dass es mir nicht neben
dem Mundwinkel heraustropft.</p>
<p>Der Becher passt auch nicht ganz in den Becherhalter, aber immerhin so weit,
dass er nicht wackelt und auch nicht herauszufallen droht:</p>
<figure><img src="/posts/2026/07/german-becherhalter-im-skoda-enyaq/cup-detail.jpg"
    alt="Detail des Bechers in Becherhalter">
</figure>
<p>Ich werde die Augen weiter offen halten, vielleicht finde ich ja irgendwann
einen schmalen Becher für meinen Weg zu Arbeit&hellip; Der im übrigen im Enyaq
sehr angenehm ist.</p>
<p>Das mit dem Becherhalter ist irgendwie wenig clever, meiner Meinung nach.</p>
<hr>
<p>Nachtrag vom 1.8.2026: Leider ist der Deckel dieses Kaffeebechers so
konstruiert, dass der Inhalt sehr &ldquo;breit&rdquo; aus der Zirkumferenz
herauskommt. Sozusagen ein Anti-Schnabelbecher mit automatischer
Mundwinkel- und Wangenbefeuchtung. Nachdem ich mich jetzt 2x beim
Autofahren mit Kaffee besudelt habe, wird dieser Becher leider nicht
mehr mit mir mitkommen. Schade.</p>
]]></content></item><item><title>How to import emails from a .pst file into KMail</title><link>https://www.bovender.de/posts/2026/05/how-to-import-emails-from-a-.pst-file-into-kmail/</link><pubDate>Fri, 15 May 2026 17:30:00 +0200</pubDate><guid>https://www.bovender.de/posts/2026/05/how-to-import-emails-from-a-.pst-file-into-kmail/</guid><description>Using a tool called &amp;#34;readpst&amp;#34; you can transfer emails from an Outlook account into any other email client, for example KMail.
</description><content type="text/html" mode="escaped"><![CDATA[<p>Here I describe how I imported an email archive from Outlook to KDE&rsquo;s
<a href="https://apps.kde.org/kmail2">KMail</a>. This turned out to be harder than expected.</p>
<p>My machine is a Fedora 44 KDE box, but the procedure should be the same or at
least very similar on other Linux systems.</p>
<h2 id="prerequisites">Prerequisites<a href="#prerequisites" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
      stroke-linecap="round" stroke-linejoin="round" class="feather">
      <path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path>
      <line x1="8" y1="12" x2="16" y2="12"></line>
   </svg></a></h2>
<p>Let&rsquo;s assume the following:</p>
<ol>
<li>An Outlook archive file named <code>archive.pst</code>.</li>
<li>Inside this archive file: An email folder structure with first-level folders
in the style of <code>MyFolder1</code>, <code>MyFolder2</code> etc. and subfolder
<code>MyFolder1/MyFolder1Subfolder1</code> and so on.</li>
</ol>
<p>I use the venerable <a href="https://www.five-ten-sg.com/libpst/rn01re01.html">readpst</a> tool to extract folders and emails from the
archive file. It&rsquo;s included in common Linux distributions, but at least on
Fedora you don&rsquo;t install it directly, but rather the <code>libpst</code> package:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fish" data-lang="fish"><span class="line"><span class="cl"><span class="nf">sudo</span> <span class="nf">dnf</span> install libpst
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fish" data-lang="fish"><span class="line"><span class="cl"><span class="c"># dnf info libpst
</span></span></span><span class="line"><span class="cl"><span class="nf">Updating</span> and <span class="nf">loading</span> repositories:
</span></span><span class="line"><span class="cl"><span class="nf">Repositories</span> loaded.
</span></span><span class="line"><span class="cl"><span class="nf">Installed</span> packages
</span></span><span class="line"><span class="cl"><span class="nf">Name</span>            : libpst
</span></span><span class="line"><span class="cl"><span class="nf">Epoch</span>           : <span class="m">0</span>
</span></span><span class="line"><span class="cl"><span class="nf">Version</span>         : <span class="m">0</span>.<span class="m">6</span>.<span class="m">76</span>
</span></span><span class="line"><span class="cl"><span class="nf">Release</span>         : <span class="m">28</span>.fc44
</span></span><span class="line"><span class="cl"><span class="nf">Architecture</span>    : x86_64
</span></span><span class="line"><span class="cl"><span class="nf">Installed</span> size  : <span class="m">192</span>.<span class="m">7</span> KiB
</span></span><span class="line"><span class="cl"><span class="nf">Source</span>          : libpst-<span class="m">0</span>.<span class="m">6</span>.<span class="m">76</span>-<span class="m">28</span>.fc44.src.rpm
</span></span><span class="line"><span class="cl"><span class="nf">From</span> repository : <span class="o">&lt;</span>unknown<span class="o">&gt;</span>
</span></span><span class="line"><span class="cl"><span class="nf">Summary</span>         : Utilities to convert Outlook .pst files to other formats
</span></span><span class="line"><span class="cl"><span class="nf">URL</span>             : http://www.five-ten-sg.com/libpst/
</span></span><span class="line"><span class="cl"><span class="nf">License</span>         : GPL-<span class="m">2</span>.<span class="m">0</span>-or-later
</span></span><span class="line"><span class="cl"><span class="nf">Description</span>     : The Libpst utilities include readpst which can convert email messages
</span></span><span class="line"><span class="cl">                : to both mbox and <span class="nf">MH</span> mailbox formats, pst2ldif which can convert the
</span></span><span class="line"><span class="cl">                : contacts to .ldif format for <span class="nv">import</span> into ldap databases, and <span class="nf">pst2dii</span>
</span></span><span class="line"><span class="cl">                : which can convert email messages to the DII load file format used by
</span></span><span class="line"><span class="cl">                : Summation.
</span></span><span class="line"><span class="cl"><span class="nf">Vendor</span>          : Fedora Project
</span></span></code></pre></div><h2 id="working-solution-as-of-2026">Working solution as of 2026<a href="#working-solution-as-of-2026" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
      stroke-linecap="round" stroke-linejoin="round" class="feather">
      <path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path>
      <line x1="8" y1="12" x2="16" y2="12"></line>
   </svg></a></h2>
<p>Modern <a href="https://apps.kde.org/kmail2">KMail</a> does not store emails in the traditional storage formats such
as <a href="https://en.wikipedia.org/wiki/Maildir">Maildir</a> or <a href="https://en.wikipedia.org/wiki/Mbox">Mbox</a>. It uses KDE&rsquo;s Akonadi database system. Therefore,
we need to first export all folders and emails from the Outlook data file,
then import these into KMail&rsquo;s database using the <code>File &gt; Import Messages...</code>
command.</p>
<p>At first, I struggled a bit to find the correct output format option to make
it work. <code>readpst</code> offers a number of different formats &ndash; basically various
flavors of the <a href="https://en.wikipedia.org/wiki/MH_Message_Handling_System">MH</a>/<a href="https://en.wikipedia.org/wiki/Maildir">maildir</a> and the <a href="https://en.wikipedia.org/wiki/Mbox">mbox</a> structures. It did <em>not</em> work
with the <code>-k</code> option that is meant to produce a dedicated KMail format. I ended
up using the simple <code>-e</code> option that produces a directory structure according
to the folders in the Outlook archive, with one separate file for each email
message.</p>
<ol>
<li>
<p>Export folders and emails from the Outlook data file:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fish" data-lang="fish"><span class="line"><span class="cl"><span class="nf">readpst</span> <span class="na">-e</span> archive.pst
</span></span></code></pre></div><p>There is no need to create and specifiy a dedicated directory, because
<code>readpst</code> will create a directory structure with a generic top-level
directory (in German, this directory is called &ldquo;Outlook-Datendatei&rdquo;,
Outlook data file).</p>
</li>
<li>
<p>Import the folder structure and emails into KMail:</p>
<p>a. In the <code>File</code> menu, choose <code>Import Messages...</code>.</p>
<p>b. In the Import dialog that appears, choose &ldquo;Import KMail Maildirs and
Folder Structure&rdquo;.</p>
<figure><img src="/posts/2026/05/how-to-import-emails-from-a-.pst-file-into-kmail/kmail-import-dialog.png">
    </figure>
<p>c. At the bottom of the dialog where it says &ldquo;Please select the folder to
import to&rdquo;, click on the folder icon. Choose the existing &ldquo;Local Folders&rdquo;.
There is no need to create an extra folder for the import because KMail
will create a folder &ldquo;KMail-Import&rdquo; just for you.</p>
<p>d. Click on &ldquo;Next&rdquo; and choose your <code>.pst</code> file.</p>
<p>e. Start the import process.</p>
</li>
<li>
<p>All imported messages are marked as unread at first, but this will go away
after a while.</p>
</li>
</ol>
]]></content></item><item><title>Testing CFexpress Type B card readers</title><link>https://www.bovender.de/posts/2026/04/testing-cfexpress-type-b-card-readers/</link><pubDate>Sun, 19 Apr 2026 12:26:06 +0200</pubDate><guid>https://www.bovender.de/posts/2026/04/testing-cfexpress-type-b-card-readers/</guid><description>Is there a true, relevant difference in the performance of current CFexpress Type B card readers, or is it all just marketing?
</description><content type="text/html" mode="escaped"><![CDATA[<figure><img src="/posts/2026/04/testing-cfexpress-type-b-card-readers/cfexpress_type_b_card.jpg">
</figure>
<p>I&rsquo;ve been looking for a card reader for my CFexpress Type B cards that I use in
my camera. There are not very many devices on the market, but they have a large
price span: around 10x.</p>
<p>Since I was wondering whether the price correlates with speed, I decided to
perform some simple tests using my existing hardware:</p>
<ul>
<li>a UGREEN CFexpress Type B card reader</li>
<li>a PGYTECH CreateMate CFE-B/SD card reader</li>
<li>a Nextorage B1 Pro CFexpress Type B card with 165 GB capacity</li>
<li>the built-in NVMe SSD of my Thinkpad laptop, a Samsung SSD 990 PRO with 2 TB
storage capacity.</li>
</ul>
<p>The two external card readers are attached via USB-C/USB 3.2 Gen 2 to my
Thinkpad Thunderbolt 3 dock. I am generally happy with both of them, I think
they have good quality.</p>
<p>By the way, why should I even look for a new card reader in the first place?
Well, the CreateMate card reader is a bit bulky and heavy and I once forgot to
take it with me on vacation. So I was looking for something smaller and lighter.</p>
<h2 id="sequential-read-and-write-tests">Sequential read and write tests<a href="#sequential-read-and-write-tests" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
      stroke-linecap="round" stroke-linejoin="round" class="feather">
      <path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path>
      <line x1="8" y1="12" x2="16" y2="12"></line>
   </svg></a></h2>
<p>I did not want to overcomplicate things, just get an impression if there are any
differences between card readers or not. Therefore I decided to perform
sequential read and write tests using <code>dd</code> as described at <a href="https://www.baeldung.com/linux/disk-performance-test">Baeldung.com</a>.</p>
<p>These are the commands that I used in <a href="https://fishshell.com">Fish</a> shell; Bash has slightly
different syntax.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fish" data-lang="fish"><span class="line"><span class="cl"><span class="ch">#!/usr/bin/fish
</span></span></span><span class="line"><span class="cl"><span class="k">echo</span> <span class="s2">&#34;*** Sequential write test ***&#34;</span>
</span></span><span class="line"><span class="cl"><span class="k">for</span> <span class="nv">i</span> <span class="k">in</span> <span class="o">(</span><span class="nf">seq</span> <span class="m">1</span> <span class="m">5</span><span class="o">)</span><span class="p">;</span> <span class="nf">dd</span> <span class="nv">if</span><span class="o">=</span>/dev/zero <span class="nv">of</span><span class="o">=</span>/run/media/daniel/NIKON<span class="se">\ </span><span class="nf">Z6_3</span>/tempfile <span class="nv">bs</span><span class="o">=</span>1M <span class="nv">count</span><span class="o">=</span><span class="m">1024</span> <span class="nv">conv</span><span class="o">=</span>fdatasync<span class="p">;</span> <span class="k">end</span>
</span></span><span class="line"><span class="cl"><span class="k">echo</span>
</span></span><span class="line"><span class="cl"><span class="k">echo</span> <span class="s2">&#34;*** Sequential read test ***&#34;</span>
</span></span><span class="line"><span class="cl"><span class="k">for</span> <span class="nv">in</span> <span class="k">in</span> <span class="o">(</span><span class="nf">seq</span> <span class="m">1</span> <span class="m">5</span><span class="o">)</span><span class="p">;</span> <span class="nf">sudo</span> <span class="nf">sh</span> <span class="na">-c</span> <span class="s2">&#34;/usr/bin/echo 3 &gt; /proc/sys/vm/drop_caches&#34;</span> <span class="o">&amp;&amp;</span> <span class="nf">dd</span> <span class="nv">if</span><span class="o">=</span>/run/media/daniel/NIKON<span class="se">\ </span><span class="nf">Z6_3</span>/tempfile <span class="nv">of</span><span class="o">=</span>/dev/null <span class="nv">bs</span><span class="o">=</span>1M <span class="nv">count</span><span class="o">=</span><span class="m">1024</span><span class="p">;</span> <span class="k">end</span>
</span></span><span class="line"><span class="cl"><span class="nf">rm</span> /run/media/daniel/NIKON<span class="se">\ </span>Z6_3/tempfile
</span></span></code></pre></div><h2 id="results">Results<a href="#results" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
      stroke-linecap="round" stroke-linejoin="round" class="feather">
      <path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path>
      <line x1="8" y1="12" x2="16" y2="12"></line>
   </svg></a></h2>
<p>The graph below shows the means and standard deviations of 5 tests for each
device. The &ldquo;direct&rdquo; label denotes tests with the card reader attached directly
to a USB-C/USB 3.2 Gen 2 port of my <a href="/posts/2024/08/experience-with-running-fedora-linux-on-a-thinkpad-p14s-gen-5/">Thinkpad P14s</a> laptop, rather than via
the Thunderbolt 3 dock.</p>
<figure><img src="/posts/2026/04/testing-cfexpress-type-b-card-readers/speed_tests.svg">
</figure>
<p>When attached to the Thunderbolt dock, the PGYTECH CreateMate reads from the
CFexpress card much faster than the UGREEN reader. It does also write a bit
faster than the UGREEN reader.</p>
<p>Attaching the card readers directly to the laptop results in increased speeds
overall, and the differences between the UGREEN and the PGYTECH readers seems
negligible.</p>
<p><strong>However, regardless of how the readers are connected to the laptop, both are
left in the dust by the internal SSD!</strong></p>
<p>Is the observed difference in read speeds between the UGREEN and the PGYTECH
card readers &ldquo;clinically relevant&rdquo;? Does it justify spending a lot more money
for the PGYTECH reader? Given the very large difference of both of these card
readers to the internal SSD, I don&rsquo;t really think so.</p>
<h2 id="what-to-expect-from-a-usb-c-or-rather-usb-32-gen-2-connection">What to expect from a &ldquo;USB-C&rdquo; or rather, USB 3.2 Gen 2 connection<a href="#what-to-expect-from-a-usb-c-or-rather-usb-32-gen-2-connection" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
      stroke-linecap="round" stroke-linejoin="round" class="feather">
      <path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path>
      <line x1="8" y1="12" x2="16" y2="12"></line>
   </svg></a></h2>
<p>It should be noted that the USB 3.2 Gen 2 standard has a nominal transfer speed
of 10 GBit/s or 1.25 GB/s. As stated in the <a href="https://en.wikipedia.org/wiki/USB_3.0#3.2">Wikipedia article on USB 3.2</a>,
actual transfer rates are round 0.8-1.0 GB/s. Still higher than what I measured.</p>
<p>My Thinkpad&rsquo;s USB-C ports a really Thunderbolt 4/USB 4 ports that should be
capable of transferring up to 40 Gbit/s or 5 GB/s. This would be in the internal
SSD&rsquo;s ballpark. However, the card readers have &ldquo;only&rdquo; USB 3.2 Gen 2. PGYTECH
claims 1000 MB/s for the CreateMate and UGREEN 1250 MB/s for their device. The
card itself claims read speeds of up to 1950 MB/s and write speeds of up to 1900
MB/s, which roughly corresponds to 1.86 and 1.90 GB/s. Obviously, the 0.3 to 0.6
GB/s that I measured are nowhere near any of these numbers.</p>
<h2 id="using-darktables-local-copies-feature">Using Darktable&rsquo;s local copies feature<a href="#using-darktables-local-copies-feature" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
      stroke-linecap="round" stroke-linejoin="round" class="feather">
      <path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path>
      <line x1="8" y1="12" x2="16" y2="12"></line>
   </svg></a></h2>
<p>Evidently, nothing is faster than the internal NVMe SSD.</p>
<p>This reminds me that <a href="https://darktable.org">Darktable</a> has a feature to copy image files to the
built-in SSD. This not only allows for faster read and write speeds, but also
makes it possible to work on the images without having the card reader attached
to the laptop: <a href="https://docs.darktable.org/usermanual/development/en/overview/sidecar-files/local-copies/">Darktable&rsquo;s user manual on local copies</a>.</p>
<p>Local copies (or rather, the XMP sidecar files) are synchronized whenever the
external storage is attached when Darktable is starting up. I don&rsquo;t know if
Darktable will automatically remove synchronized local copies in case disk
space gets low.</p>
<h2 id="conclusion">Conclusion<a href="#conclusion" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
      stroke-linecap="round" stroke-linejoin="round" class="feather">
      <path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path>
      <line x1="8" y1="12" x2="16" y2="12"></line>
   </svg></a></h2>
<p>In practice, I am going to create local copies of my images and select and work
on the local copies. Yes, the initial process of copying the files will take a
few seconds less with the PGYTECH reader than with the UGREEN reader, but that
is negligible given the amount of time that I spend on selecting the images and
working on the RAW file development in total.</p>
<p>Therefore, if I decide to purchase a new reader, I will focus on the size and
build, and the UGREEN reader is a strong contender when it comes to small size.</p>
]]></content></item><item><title>Teaching an old Android new tricks</title><link>https://www.bovender.de/posts/2026/01/teaching-an-old-android-new-tricks/</link><pubDate>Thu, 01 Jan 2026 18:00:00 +0100</pubDate><guid>https://www.bovender.de/posts/2026/01/teaching-an-old-android-new-tricks/</guid><description>An oldish Android phone suddenly refused to connect to an IMAP server. The error message was not helpful at all. The solution was that the IMAP server&amp;#39;s SSL certificate had been issued by a different Certificate Authority than before, and this CA&amp;#39;s root certificate was not known to the phone.
</description><content type="text/html" mode="escaped"><![CDATA[<p>A few days ago, my smartphone suddenly stopped synchronizing my university emails.
I use <a href="https://aqua-mail.com/android">Aqua Mail</a> to work with my emails on a Samsung Galaxy S20 FE. This phone
was purchased in 2021.</p>
<p>Aqua Mail worked perfectly well with both my personal as well as my university
email accounts. But now it refused to connect to the university&rsquo;s IMAP server:</p>
<figure><img src="/posts/2026/01/teaching-an-old-android-new-tricks/aqua-mail-no-peer-certificate.png"
    alt="Aqua Mail complaining about the absence of a peer certificate."><figcaption>
      <p>Aqua Mail complaining about the absence of a peer certificate.</p>
    </figcaption>
</figure>
<p>The German error message says (somewhat clumsily): <strong>&ldquo;Error Messages being
synchronized: Invalid security certificate (SSL): No peer certificates.&rdquo;</strong></p>
<p>I suspected the mail server to be at fault. After all, my setup used to work.
However, my laptop mail client was able to connect to the IMAP server without
any problem.</p>
<p>Web search with &ldquo;Aqua Mail no peer certificates&rdquo; wasn&rsquo;t helpful at all, either.</p>
<p>So I manually initiated an IMAP session with the server from the command line:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fish" data-lang="fish"><span class="line"><span class="cl"><span class="nf">openssl</span> s_client <span class="na">-connect</span> <span class="nv">$REDACTED</span>:<span class="m">993</span> <span class="na">-crlf</span>
</span></span></code></pre></div><p>This went well &ndash; I simply terminated the session by issuing</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-plain" data-lang="plain"><span class="line"><span class="cl">a logout
</span></span></code></pre></div><p>(If you, like me, are not fluent in IMAP &ndash; the <code>a</code> in front of the logout
command is an arbitrary, but required identifying prefix.)</p>
<p>The output started with these lines:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-plain" data-lang="plain"><span class="line"><span class="cl">Connecting to [REDACTED]
</span></span><span class="line"><span class="cl">CONNECTED(00000003)
</span></span><span class="line"><span class="cl">depth=2 C=GR, O=Hellenic Academic and Research Institutions CA, CN=HARICA TLS RSA Root CA 2021
</span></span><span class="line"><span class="cl">verify return:1
</span></span><span class="line"><span class="cl">depth=1 C=GR, O=Hellenic Academic and Research Institutions CA, CN=GEANT TLS RSA 1
</span></span><span class="line"><span class="cl">verify return:1
</span></span><span class="line"><span class="cl">depth=0 C=DE, ST=[REDACTED], O=[REDACTED], CN=[REDACTED]
</span></span><span class="line"><span class="cl">verify return:1
</span></span><span class="line"><span class="cl">---
</span></span><span class="line"><span class="cl">Certificate chain
</span></span><span class="line"><span class="cl"># ...
</span></span></code></pre></div><p>This caught my eye. I remembered an announcement that the university
was going to obtain their certificates from <a href="https://www.harica.eu">HARICA</a> in the future,
and evidently, the future is now.</p>
<p>Sure enough, I did <em>not</em> find the root certificate &ldquo;HARICA TLS RSA Root CA 2021&rdquo;
in the root certificate store of my phone. There were 3 HARICA certificates, but
not the required one &ldquo;HARICA TLS RSA Root CA 2021&rdquo;.</p>
<figure><img src="/posts/2026/01/teaching-an-old-android-new-tricks/android-root-certificates.png"
    alt="The root certificates of this 2021 Android phone do not include HARICA TLS RSA Root CA 2021."><figcaption>
      <p>The root certificates of this 2021 Android phone do not include HARICA TLS RSA Root CA 2021.</p>
    </figcaption>
</figure>
<p>From there, the solution was simple. I downloaded the missing root certificate from
<a href="https://repo.harica.gr/rep_dyn.php">HARICA&rsquo;s repository</a> to my phone and installed it from there.</p>
<p>Now Aqua Mail happily syncs my uni mail account again.</p>
<p>Sometimes it pays off to try and teach an old dog new tricks!</p>
<p>Happy New Year.</p>
]]></content></item><item><title>Mainz Central Station</title><link>https://www.bovender.de/posts/2025/09/mainz-central-station/</link><pubDate>Fri, 05 Sep 2025 18:45:00 +0200</pubDate><guid>https://www.bovender.de/posts/2025/09/mainz-central-station/</guid><description>Mainz Central Station, edited to simulate a mist filter</description><content type="text/html" mode="escaped"><![CDATA[<p>Mainz Central Station (Mainz Hauptbahnhof or just short Mainz Hbf) at night. I stepped
out of the <a href="https://www.adamundeden.com">Adam &amp; Eden</a> restaurant the other night and I was impressed by the
illuminated station.</p>
<figure><img src="/posts/2025/09/mainz-central-station/DSC_5532-1.jpg"
    alt="Nikon Z6III with Tamron 35-150mm f/2.0-2.8"><figcaption>
      <p>Nikon Z6III with Tamron 35-150mm f/2.0-2.8</p>
    </figcaption>
</figure>
<p>The above was edited as usual in <a href="https://darktable.org">Darktable</a>. I wanted to let the lights in the windows
glow a bit and have them contrast with the otherwise rather dark scene. I did not have
a mist filter on my camera, so I attempted to simulate one with Darktable&rsquo;s
<a href="https://www.youtube.com/watch?v=pAbyORw0mng">Diffuse or Sharpen</a> module. In my opinion, the effect of mist filters can quickly
destroy an image, it&rsquo;s like emptying an entire bottle of ketchup all at once onto
your fries. I was wary of that and attempted to make it subtle. Don&rsquo;t know if this was
the way to go.</p>
<p>See my <a href="https://www.youtube.com/watch?v=pAbyORw0mng">Diffuse or Sharpen</a> mist filter preset over at
<a href="https://github.com/bovender/darktable-presets-and-styles">github.com/bovender/darktable-presets-and-styles</a>.</p>
<figure><img src="/posts/2025/09/mainz-central-station/mist-filter-in-darktable-screenshot-1.png"
    alt="Screenshot of Darktable with mask overlay turned on."><figcaption>
      <p>Screenshot of Darktable with mask overlay turned on.</p>
    </figcaption>
</figure>
<p>The screenshot above shows the mask overlay in Darktable. The screenshow below
shows the settings of the &lsquo;g&rsquo; channel: I want to exclude dark image areas from
the filter effect.</p>
<figure><img src="/posts/2025/09/mainz-central-station/diffuse-or-sharpen-settings-1.png"
    alt="Settings of the diffuse-or-sharpen module with &lsquo;g&rsquo; channel."><figcaption>
      <p>Settings of the diffuse-or-sharpen module with &lsquo;g&rsquo; channel.</p>
    </figcaption>
</figure>
<p>The next screenshot shows the &lsquo;hz&rsquo; channel, which I adjusted to include warmish
colors only.</p>
<figure><img src="/posts/2025/09/mainz-central-station/diffuse-or-sharpen-settings-2.png"
    alt="Settings of the diffuse-or-sharpen module with &lsquo;hz&rsquo; channel."><figcaption>
      <p>Settings of the diffuse-or-sharpen module with &lsquo;hz&rsquo; channel.</p>
    </figcaption>
</figure>
<p>Finally, I applied a large blurring radius so that I can achieve a glowing effect.</p>
<p>I&rsquo;m not sure yet whether to exclude the moon from the mist filter effect or not.</p>
<hr>
<p>Original image developed in <a href="https://darktable.org">Darktable</a>. Raw image file available
upon reasonable request. All rights reserved.</p>
<hr>
<p>Here&rsquo;s one of several video tutorials on the Diffuse or Sharpen module
by Boris Hajdukovic. He&rsquo;s a master of image editing with Darktable.
Highly recommended.</p>
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
			<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/pAbyORw0mng?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
		</div>

<hr>
]]></content></item><item><title>Clouds</title><link>https://www.bovender.de/posts/2025/08/clouds/</link><pubDate>Sat, 02 Aug 2025 07:00:00 +0200</pubDate><guid>https://www.bovender.de/posts/2025/08/clouds/</guid><description>Clouds over Rhön Mountains area</description><content type="text/html" mode="escaped"><![CDATA[<p>Cloudy skies over the <a href="https://en.wikipedia.org/wiki/Rh%C3%B6n_Mountains">Rhön Mountains</a> area in Germany.</p>
<figure><img src="/posts/2025/08/clouds/DSC_3699.jpg"
    alt="Nikon Z6III with Nikkor 20mm f/1.8 S"><figcaption>
      <p>Nikon Z6III with Nikkor 20mm f/1.8 S</p>
    </figcaption>
</figure>
<hr>
<figure><img src="/posts/2025/08/clouds/DSC_4404.jpg"
    alt="Nikon Z6III with Tamron 35-150mm f/2.0-2.8"><figcaption>
      <p>Nikon Z6III with Tamron 35-150mm f/2.0-2.8</p>
    </figcaption>
</figure>
<hr>
<figure><img src="/posts/2025/08/clouds/DSC_4656.jpg"
    alt="Nikon Z6III with Nikkor 20mm f/1.8 S"><figcaption>
      <p>Nikon Z6III with Nikkor 20mm f/1.8 S</p>
    </figcaption>
</figure>
<p>Images developed in <a href="https://darktable.org">Darktable</a>. Raw image file available
upon reasonable request. All rights reserved.</p>
]]></content></item><item><title>Impressum und Datenschutz</title><link>https://www.bovender.de/impressum/</link><pubDate>Sat, 02 Aug 2025 07:00:00 +0200</pubDate><guid>https://www.bovender.de/impressum/</guid><description>&amp;lt;no value&amp;gt;</description><content type="text/html" mode="escaped"><![CDATA[<p>Dr. Daniel Kraus<br>
Tel. (0 61 07‌) 7 5‌6 88 4‌0<br>
Mail: <a href="mailto:bovender@bovender.de">bovender@bovender.de</a></p>
<a id="cy-effective-orcid-url"
  class="underline"
  href="https://orcid.org/0000-0002-6351-3706"
  target="orcid.widget"
  rel="me noopener noreferrer" style="vertical-align: top">
  <img src="https://orcid.org/sites/default/files/images/orcid_16x16.png"
    style="width: 1em; display: inline"
    alt="ORCID iD icon" />
  https://orcid.org/0000-0002-6351-3706
</a>
<p>Ladungsfähige Anschrift bei meinem Arbeitgeber: Universitätsklinikum Heidelberg,
Im Neuenheimer Feld 162, 69120 Heidelberg. <strong>Dies ist eine rein private Homepage
und in keiner Weise von meinem Arbeitgeber beworben oder unterstützt.</strong> Meine
Privatanschrift ist zu meinem persönlichen Schutz und dem Schutz meiner Familie
hier nicht veröffentlicht. <strong>Ich bitte, von Anrufen abzusehen.</strong> Über Mail oder
die verlinkten sozialen Netzwerke (siehe Icons) bin ich i.d.R. kurzfristig
erreichbar.</p>
<h2 id="mailserver-bovenderde">Mailserver bovender.de<a href="#mailserver-bovenderde" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
      stroke-linecap="round" stroke-linejoin="round" class="feather">
      <path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path>
      <line x1="8" y1="12" x2="16" y2="12"></line>
   </svg></a></h2>
<p>Der Mailserver bovender.de ist zuständig für die Domains:</p>
<ul>
<li><a href="https://bantel-stiftung.de">bantel-stiftung.de</a></li>
<li><a href="https://bantelstiftung.de">bantelstiftung.de</a></li>
<li><a href="https://bovender.de">bovender.de</a></li>
<li><a href="https://gemeinsam-gegen-armut.org">gemeinsam-gegen-armut.org</a></li>
<li><a href="https://ggap-ev.org">ggap-ev.org</a></li>
<li><a href="https://mainzer-niere.de">mainzer-niere.de</a></li>
<li><a href="https://neph.social">neph.social</a></li>
<li><a href="https://nephrowiki.de">nephrowiki.de</a></li>
<li><a href="https://nierenverein.de">nierenverein.de</a></li>
<li><a href="https://xltoolbox.net">xltoolbox.net</a></li>
</ul>
<h2 id="cookie-consent">Datenverarbeitung aus berechtigtem Interesse (Art. 6 Abs. 1 lit. f DSGVO)<a href="#cookie-consent" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
      stroke-linecap="round" stroke-linejoin="round" class="feather">
      <path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path>
      <line x1="8" y1="12" x2="16" y2="12"></line>
   </svg></a></h2>
<p>Die Website <a href="bovender.de">bovender.de</a> erhebt anonymisierte Statistiken
über die Besuche, um die Nachfrage nach dem Web-Angebot erkennen zu können.
Hierbei wird ein sogenanntes <strong>Cookie</strong> lokal in Ihrem Webbrowser gespeichert.
Bei Seitenaufrufen wird dieses Cookie an den Server übertragen, so dass
festgestellt werden werden kann, ob Sie die Seite schon einmal besucht haben
oder nicht. Es ist uns jedoch nicht möglich, über dieses Cookie Rückschlüsse auf
Ihre Identität zu ziehen. Es findet keine Verknüpfung mit anderen Dienstleistern
statt.</p>
<p>Sie haben die Möglichkeit, der Speicherung eines Cookies zu widersprechen,
indem Sie auf den entsprechenden Button unten auf der Seite klicken. Dass
Sie geklickt haben, wird als sog. &ldquo;Local Storage&rdquo; im Browser hinterlegt &ndash;
hierbei handelt es sich nicht um persönliche Daten, es wird lediglich das
Wort &ldquo;accepted&rdquo; oder &ldquo;declined&rdquo; gespeichert.</p>
<p>Bis zum Klicken des Buttons &ldquo;Akzeptieren&rdquo; oder wenn Sie der Speicherung
eines Cookies widersprochen haben, erfolgt keine anonymisierte Erfassung
Ihres Besuchs auf der Website.</p>
<p>
  Current status:
  <strong id="cookie-status"
    data-accepted="Accepted"
    data-declined="Declined"
    data-none="No decision yet">
    &mdash;
  </strong>
</p>
<button id="cookie-settings-button" onclick="reopenCookieBanner()">
  Change cookie preferences
</button>

<p>Die Website und die anonymisierte statistische Erfassung
(<a href="https://matomo.bovender.de">matomo.bovender.de</a>) befinden sich auf ein und
demselben Server unter administrativer Kontrolle von Daniel Kraus.</p>
<h2 id="dank">Dank<a href="#dank" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
      stroke-linecap="round" stroke-linejoin="round" class="feather">
      <path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path>
      <line x1="8" y1="12" x2="16" y2="12"></line>
   </svg></a></h2>
<p>Besonderer Dank an <a href="https://christianheilmann.com/2023/08/18/adding-a-share-to-mastodon-link-to-any-web-site-and-here/">Christian Heilmann</a> für das Script <a href="https://github.com/codepo8/mastodon-share">mastodon-share</a>,
um Links leicht auf Mastodon zu posten.</p>
]]></content></item><item><title>Soleier: Pickled eggs for Easter</title><link>https://www.bovender.de/posts/2025/04/soleier-pickled-eggs-for-easter/</link><pubDate>Thu, 17 Apr 2025 17:55:07 +0200</pubDate><guid>https://www.bovender.de/posts/2025/04/soleier-pickled-eggs-for-easter/</guid><description>Pickled eggs – &amp;#34;Soleier&amp;#34; – are a favorite Easter tradition in my family. Here&amp;#39;s my personal recipe.
</description><content type="text/html" mode="escaped"><![CDATA[<p>My family has a long-running tradition of producing pickled eggs for Easter
breakfast. We call these &ldquo;Soleier&rdquo; which is a composite of &ldquo;Sole&rdquo; (brine) and
&ldquo;Eier&rdquo; (eggs). Varous theories exist how pickled eggs came into existence, and
there are various ways to relish these eggs. As for the theories, the reader is
kindly referred to the <a href="https://en.wikipedia.org/wiki/Pickled_egg">Wikipedia article</a>
(also <a href="https://de.wikipedia.org/wiki/Solei">in German</a>).</p>
<p>As for the recipe and the way we eat pickled eggs in my family: read on.</p>
<figure><img src="/posts/2025/04/soleier-pickled-eggs-for-easter/20250414_203010.jpg"
    alt="My 2025 Soleier preparation."><figcaption>
      <p>My 2025 Soleier preparation. Smartphone raw image file edited with darktable.</p>
    </figcaption>
</figure>
<h2 id="how-many-eggs">How many eggs?<a href="#how-many-eggs" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
      stroke-linecap="round" stroke-linejoin="round" class="feather">
      <path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path>
      <line x1="8" y1="12" x2="16" y2="12"></line>
   </svg></a></h2>
<p>How many eggs you want to prepare depends on the number of people who want to
eat the pickled eggs, the number of days you want to have them for breakfast (or
any other meal to your liking) and last, but not least, what size of jar you
have to prepare them in.</p>
<p>My 1.5 L <a href="https://en.wikipedia.org/wiki/Weck_jar">Weck jar</a> holds 13 medium-sized eggs.</p>
<p>Typically an adult will have 2 of those eggs for breakfast. With 13 eggs, this
leaves one spare egg (and toast), but there&rsquo;s usually a kid or two who doesn&rsquo;t
eat these eggs in pairs (if at all).</p>
<figure><img src="/posts/2025/04/soleier-pickled-eggs-for-easter/20250414_203911.jpg"
    alt="Pickled eggs with cracks."><figcaption>
      <p>I love my pickled eggs to have cracks so that they let some of the brine in.</p>
    </figcaption>
</figure>
<h2 id="recipe">Recipe<a href="#recipe" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
      stroke-linecap="round" stroke-linejoin="round" class="feather">
      <path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path>
      <line x1="8" y1="12" x2="16" y2="12"></line>
   </svg></a></h2>
<h3 id="ingredients-and-materials">Ingredients and materials<a href="#ingredients-and-materials" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
      stroke-linecap="round" stroke-linejoin="round" class="feather">
      <path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path>
      <line x1="8" y1="12" x2="16" y2="12"></line>
   </svg></a></h3>
<p>This recipe is for 13 eggs and a 1.5 L jar.</p>
<ul>
<li>13 eggs</li>
<li>0.75 L water</li>
<li>50 g salt</li>
<li>1-2 tablespoons of caraway seeds (if you like)</li>
<li>1.5 L <a href="https://en.wikipedia.org/wiki/Weck_jar">Weck jar</a> (doesn&rsquo;t need to be original Weck brand, of course, but must be sealed tight)</li>
<li>13 slices of toast</li>
<li>butter</li>
<li>oil, e.g. rapeseed oil, to your liking</li>
<li>vinegar, e.g. any herb-flavored variant, to your liking</li>
</ul>
<h3 id="directions">Directions<a href="#directions" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
      stroke-linecap="round" stroke-linejoin="round" class="feather">
      <path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path>
      <line x1="8" y1="12" x2="16" y2="12"></line>
   </svg></a></h3>
<p>You should prepare the pickled eggs a few days before you want to eat them. In
my family we typically do this 7 days before Easter, i.e. on Palm Sunday.</p>
<ol>
<li>Boil the eggs so they get hard. I usually place the eggs in a pot, cover them
with water, and then slowly heat the water until it boils. Let it boil until
10 minutes have passed since the eggs were placed on the stove. Your mileage
may vary depending on your stove.</li>
<li>Pour out the hot water and shock the eggs with cold tap water.</li>
<li>Place the eggs into the jar using a clean spoon (not your hands!). I usually
let them drop into the jar so they get nice little cracks, this makes for
beautiful texture inside the eggs (see image).</li>
<li>Add the salt and caraway seeds to the jar.</li>
<li>Bring the water to boiling and pour it over the eggs in the jar.</li>
<li>Close the jar.</li>
<li>Invert the jar a couple of times (you may want to wear gloves while doing
this, the jar is hot!).</li>
<li>Store the jar in a cool place &ndash; in our house, this is usually the basement.</li>
</ol>
<h2 id="how-to-eat-soleier">How to eat Soleier<a href="#how-to-eat-soleier" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
      stroke-linecap="round" stroke-linejoin="round" class="feather">
      <path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path>
      <line x1="8" y1="12" x2="16" y2="12"></line>
   </svg></a></h2>
<p>There seem to be two fundamentally different ways to eat a <em>Solei</em>.</p>
<h3 id="our-way-of-eating-soleier">Our way of eating Soleier<a href="#our-way-of-eating-soleier" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
      stroke-linecap="round" stroke-linejoin="round" class="feather">
      <path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path>
      <line x1="8" y1="12" x2="16" y2="12"></line>
   </svg></a></h3>
<p>My family&rsquo;s tradition is to peel two eggs, place them on a dish, cut them into
pieces, then pour some oil and vinegar over the pieces and mash the eggs with a
fork. This leaves an ugly mess on the plate and I will update this post with a
picture of this year&rsquo;s appearance.</p>
<p>Brown two slices of toast, spread butter on them, and eat the <em>Solei</em> mash/mess
using a fork while intermittently taking a bite from the bread.</p>
<h3 id="the-more-sophisticated-way-to-eat-soleier">The more sophisticated way to eat Soleier<a href="#the-more-sophisticated-way-to-eat-soleier" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
      stroke-linecap="round" stroke-linejoin="round" class="feather">
      <path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path>
      <line x1="8" y1="12" x2="16" y2="12"></line>
   </svg></a></h3>
<p>There is an alternative way to have your pickled eggs that supposedly is less
messy. The <a href="https://de.wikipedia.org/wiki/Solei">German Wikipedia article</a> claims it&rsquo;s the &lsquo;proper&rsquo; or let&rsquo;s
say usual way to eat these eggs. I tried it once and I was totally unhappy with
the experience, so I stick with our traditional way.</p>
<p>Peel two eggs, cut the eggs into halves, remove the egg yolk and mash the egg
yolk with oil and vinegar. Transfer the mashed egg yolk back into the eggs. I
will look slightly less ugly, but I promise you will have a hard time getting
all the egg yolk&ndash;oil&ndash;vinegar mixture back into the eggs, the plate will look
like someone&rsquo;s been having <em>Soleier</em> the traditional way, and when trying to put
the egg halves into your mouth, be prepared for everyone else who sits at the
table with you bursting into spontaneous laughter. At least that&rsquo;s what happened
to me one time&hellip; ;-)</p>
]]></content></item><item><title>Install pynitrokey on Fedora 41</title><link>https://www.bovender.de/posts/2025/03/install-pynitrokey-on-fedora-41/</link><pubDate>Sun, 30 Mar 2025 10:53:35 +0100</pubDate><guid>https://www.bovender.de/posts/2025/03/install-pynitrokey-on-fedora-41/</guid><description>Here&amp;#39;s how I installed pynitrokey on my Fedora 41 KDE laptop, resolving missing dependencies.</description><content type="text/html" mode="escaped"><![CDATA[<figure><img src="/posts/2025/03/install-pynitrokey-on-fedora-41/IMGP0069.jpg"
    alt="My Nitrokey 3A mini"><figcaption>
      <h4>My Nitrokey 3A mini on the right side of the picture</h4>
    </figcaption>
</figure>
<p>I use <a href="https://www.yubico.com">Yubikey</a>s and <a href="https://www.nitrokey.com">Nitrokey</a>s as a second factor during 2FA
authentication.</p>
<p>My experiences with Nitrokey devices have been mixed. Currently my 3A mini
stopped working. I wanted to investigate what&rsquo;s going on, only to find out that
the commandline tool <code>nitropy</code> no longer worked on my machine either! :-(</p>
<p>Here&rsquo;s how I got it to work again. I&rsquo;m a Python noob, so maybe there&rsquo;s a better
way to install the dependencies. The operating system is Fedora 41.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sudo dnf install systemd-devel python3-devel
</span></span><span class="line"><span class="cl">pipx install pynitrokey
</span></span></code></pre></div><p>Afterwards I was greeted with this:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">$ nitropy nk3 test
</span></span><span class="line"><span class="cl">Command line tool to interact with Nitrokey devices 0.8.1
</span></span><span class="line"><span class="cl">Critical error:
</span></span><span class="line"><span class="cl">No connected NK3 devices found
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">--------------------------------------------------------------------------------
</span></span><span class="line"><span class="cl">Critical error occurred, exiting now
</span></span><span class="line"><span class="cl">Unexpected? Is this a bug? Would you like to get support/help?
</span></span><span class="line"><span class="cl">- You can report issues at: https://support.nitrokey.com/
</span></span><span class="line"><span class="cl">- Writing an e-mail to support@nitrokey.com is also possible
</span></span><span class="line"><span class="cl">- Please attach the log: &#39;/tmp/nitropy.log._p6mpa3e&#39; with any support/help request!
</span></span><span class="line"><span class="cl">- Please check if you have udev rules installed: https://docs.nitrokey.com/nitrokeys/nitrokey3/firmware-update#troubleshooting-linux
</span></span></code></pre></div><p>I made sure that I had the abovementioned <code>udev</code> rules in place. The key is not
detected by any system, be it my personal Linux laptop or any Windows machine
that I could access. <a href="https://en.wikipedia.org/wiki/D'oh!">D&rsquo;oh</a>!</p>
]]></content></item><item><title>[In German] USB-Sticks in den Fotostationen von dm</title><link>https://www.bovender.de/posts/2025/03/in-german-usb-sticks-in-den-fotostationen-von-dm/</link><pubDate>Sat, 22 Mar 2025 22:20:07 +0100</pubDate><guid>https://www.bovender.de/posts/2025/03/in-german-usb-sticks-in-den-fotostationen-von-dm/</guid><description>&lt;p&gt;(This post is in German.)&lt;/p&gt;
&lt;p&gt;In den letzten Wochen habe ich ein paar Mal Fotoabzüge benötigt und bin mit
einem USB-Stick zur örtlichen Drogerie. Zu meiner Überraschung konnten keinerlei
Bilder auf dem Stick gefunden werden. Inzwischen habe ich das mit mehreren
Sticks und an verschiedenen Foto-Stationen (aber immer in demselben Laden)
probiert, Fehlanzeige. Interessanterweise hat es mit einer SD-Karte problemlos
geklappt.&lt;/p&gt;
&lt;p&gt;Offenbar bin ich weder der erste noch der einzige, der dieses Problem schon
einmal hatte, es gibt zu einem ähnlichen Problem mit einer CEWE-Fotostation
einen &lt;a href="https://www.cewe-community.com/forum/fb/viewtopic.php?t=13036&amp;amp;p=135162"&gt;Forumsthread&lt;/a&gt;.&lt;/p&gt;</description><content type="text/html" mode="escaped"><![CDATA[<p>(This post is in German.)</p>
<p>In den letzten Wochen habe ich ein paar Mal Fotoabzüge benötigt und bin mit
einem USB-Stick zur örtlichen Drogerie. Zu meiner Überraschung konnten keinerlei
Bilder auf dem Stick gefunden werden. Inzwischen habe ich das mit mehreren
Sticks und an verschiedenen Foto-Stationen (aber immer in demselben Laden)
probiert, Fehlanzeige. Interessanterweise hat es mit einer SD-Karte problemlos
geklappt.</p>
<p>Offenbar bin ich weder der erste noch der einzige, der dieses Problem schon
einmal hatte, es gibt zu einem ähnlichen Problem mit einer CEWE-Fotostation
einen <a href="https://www.cewe-community.com/forum/fb/viewtopic.php?t=13036&amp;p=135162">Forumsthread</a>.</p>
<p>In diesem Blog-Beitrag sammele ich einfach mal meine Beobachtungen, vielleicht
hilft es ja einmal jemandem. Von Mal zu Mal werde ich dies updaten.</p>
<h2 id="beispiele-für-geht-und-geht-nicht">Beispiele für &ldquo;geht&rdquo; und &ldquo;geht nicht&rdquo;<a href="#beispiele-f%c3%bcr-geht-und-geht-nicht" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
      stroke-linecap="round" stroke-linejoin="round" class="feather">
      <path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path>
      <line x1="8" y1="12" x2="16" y2="12"></line>
   </svg></a></h2>
<p>Ich hatte zuletzt zwei Speichermedien dabei, einen USB-Stick und eine SD-Karte:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-plain" data-lang="plain"><span class="line"><span class="cl">$ lsblk -f
</span></span><span class="line"><span class="cl">NAME        FSTYPE FSVER LABEL       UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
</span></span><span class="line"><span class="cl">sda
</span></span><span class="line"><span class="cl">└─sda1      exfat  1.0   [REDACTED]  E7F3-FDF9                             114,5G     0% /run/media/daniel/[REDACTED]
</span></span><span class="line"><span class="cl">sdb
</span></span><span class="line"><span class="cl">└─sdb1      exfat  1.0               7FDE-A701                               119G     0% /run/media/daniel/7FDE-A701
</span></span></code></pre></div><p><code>sda</code> ist ein USB-Stick, den ich häufig in anderen Zusammenhängen im Einsatz
habe. <code>sdb</code> ist eine ältere SD-Karte. Beide haben nominell 128 GB Kapazität, und
beide haben eine Partitionstabelle im herkömmlichen MSDOS-Format und eine
Primärpartition, die mit dem Dateisystem EXFAT formatiert ist. Das Dateisystem
auf dem USB-Stick hat ein Label, welches aus wenigen Buchstaben ohne
Sonderzeichen besteht.</p>
<p>Auf beiden Speichermedien hatte ich denselben Foto-Ordner kopiert, mit etwa
einer Handvoll Fotos. Die Bilder lagen also auf beiden Medien in einem
Unterorder.</p>
<p><strong>Interessanterweise wurden die Bilder auf der SD-Karte gefunden, die Bilder auf
dem USB-Stick jedoch nicht.</strong></p>
<p>Hier meine Beobachtungen im einzelnen, denn entsprechende Überlegungen findet
man auch im Netz:</p>
<h3 id="dateisystem">Dateisystem<a href="#dateisystem" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
      stroke-linecap="round" stroke-linejoin="round" class="feather">
      <path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path>
      <line x1="8" y1="12" x2="16" y2="12"></line>
   </svg></a></h3>
<p>Bevor ich es sowohl mit dem Stick als auch mit der SD-Karte probierte, habe ich
folgende Dateisysteme auf dem USB-Stick ausprobiert:</p>
<ul>
<li>EXFAT</li>
<li>FAT32</li>
</ul>
<p>Mit beiden Dateisystemen wurden keine Bilder gefunden.</p>
<h3 id="root-verzeichnis-vs-unterverzeichnis">Root-Verzeichnis vs. Unterverzeichnis<a href="#root-verzeichnis-vs-unterverzeichnis" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
      stroke-linecap="round" stroke-linejoin="round" class="feather">
      <path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path>
      <line x1="8" y1="12" x2="16" y2="12"></line>
   </svg></a></h3>
<p>Es hat keinen Unterschied gemacht, ob ich die Bilder (JPG-Dateien) im
Wurzelverzeichnis oder in einem Unterordner auf dem Stick hatte.</p>
<h3 id="verschiedene-terminals">Verschiedene Terminals<a href="#verschiedene-terminals" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
      stroke-linecap="round" stroke-linejoin="round" class="feather">
      <path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path>
      <line x1="8" y1="12" x2="16" y2="12"></line>
   </svg></a></h3>
<p>Ich habe meinen USB-Stick an verschiedenen Foto-Terminals ausprobiert, an keinem
von ihnen wurden die Bilder gefunden.</p>
]]></content></item></channel></rss>