<?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>Photography on bovender</title>
		<link>https://www.bovender.de/tags/photography/</link>
		<description>Recent content in Photography on bovender</description>
		<generator>Hugo -- 0.154.5</generator>
		<language>en-us</language>
		<copyright>2024-2025 Daniel Kraus</copyright>
		<lastBuildDate>Sun, 19 Apr 2026 12:26:06 +0200</lastBuildDate>
		<atom:link href="https://www.bovender.de/tags/photography/index.xml" rel="self" type="application/rss+xml" />
		
		
		<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><author>Daniel Kraus</author><guid>https://www.bovender.de/posts/2026/04/testing-cfexpress-type-b-card-readers/</guid>
			<description><![CDATA[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>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><author>Daniel Kraus</author><guid>https://www.bovender.de/posts/2025/09/mainz-central-station/</guid>
			<description><![CDATA[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><author>Daniel Kraus</author><guid>https://www.bovender.de/posts/2025/08/clouds/</guid>
			<description><![CDATA[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>Schwanheimer Wiese</title>
			<link>https://www.bovender.de/posts/2025/03/schwanheimer-wiese/</link>
			<pubDate>Tue, 04 Mar 2025 06:21:18 +0000</pubDate><author>Daniel Kraus</author><guid>https://www.bovender.de/posts/2025/03/schwanheimer-wiese/</guid>
			<description><![CDATA[Two images from Schwanheimer Wiese, Frankfurt, Germany]]></description><content type="text/html" mode="escaped"><![CDATA[<p>I have decided to publish some of my photos on my blog.</p>
<p>Here are the first two of them, both taken on
<a href="https://de.wikipedia.org/wiki/Frankfurt-Schwanheim#Schwanheimer_Wiese">&ldquo;Schwanheimer Wiese&rdquo;</a> a meadow in the forests
of <a href="https://en.wikipedia.org/wiki/Schwanheim_(Frankfurt_am_Main)">Frankfurt-Schwanheim</a>.</p>
<figure><img src="/posts/2025/03/schwanheimer-wiese/20250223_152944%20IMGP9786.jpg">
</figure>
<p>The &ldquo;Struwwelpeter&rdquo; is a tree named after a figure from
a famous <a href="https://en.wikipedia.org/wiki/Struwwelpeter">children&rsquo;s book</a>:</p>
<figure><img src="/posts/2025/03/schwanheimer-wiese/20250223_153306%20IMGP9790.jpg">
</figure>
<p>Camera: Pentax K-3 APS-C, 18-55 mm kit lens (crop factor 1.5),
image developed in <a href="https://darktable.org">Darktable</a>. Raw image file available
upon reasonable request. All rights reserved.</p>
]]></content>
		</item>
		
	</channel>
</rss>
