<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://baszerr.eu/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>BaSzErr</title>
        <description></description>
        <link>https://baszerr.eu/</link>
        <lastBuildDate>Sat, 04 Apr 2026 00:29:25 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://baszerr.eu/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
            <title>BaSzErr</title>
            <link>https://baszerr.eu/</link>
        </image>
        <item>
            <title>2026-01-12_-_easy_emoji_under_linux</title>
            <link>https://baszerr.eu/doku.php?id=blog:2026:01:11:2026-01-12_-_easy_emoji_under_linux</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;easy_emoji_under_linux&quot;&gt;2026-01-12 - easy emoji under linux&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
recently i was wondering what&amp;#039;s the best way to type in emoji under linux. some key bindings would be nice, to the common ones… and it turned out that using Wayland and &lt;code&gt;sway&lt;/code&gt; DM it&amp;#039;s very easy! :)
&lt;/p&gt;

&lt;p&gt;
1st we need a script that&amp;#039;s using &lt;code&gt;wtype&lt;/code&gt; to simulate inserting characters from keyboard. e.g.:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-euo&lt;/span&gt; pipefail
&lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; name &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;$@&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;do&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$name&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt;
    &lt;span class=&quot;st0&quot;&gt;&amp;quot;cold_swet&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;     wtype &lt;span class=&quot;st0&quot;&gt;&amp;quot;😅&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    &lt;span class=&quot;st0&quot;&gt;&amp;quot;grimacing&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;     wtype &lt;span class=&quot;st0&quot;&gt;&amp;quot;😬&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    &lt;span class=&quot;st0&quot;&gt;&amp;quot;grin&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;          wtype &lt;span class=&quot;st0&quot;&gt;&amp;quot;😁&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    &lt;span class=&quot;st0&quot;&gt;&amp;quot;hushed&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;        wtype &lt;span class=&quot;st0&quot;&gt;&amp;quot;😯&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    &lt;span class=&quot;st0&quot;&gt;&amp;quot;innocent&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;      wtype &lt;span class=&quot;st0&quot;&gt;&amp;quot;😇&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    &lt;span class=&quot;st0&quot;&gt;&amp;quot;rotfl&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;         wtype &lt;span class=&quot;st0&quot;&gt;&amp;quot;🤣&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    &lt;span class=&quot;st0&quot;&gt;&amp;quot;scream&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;        wtype &lt;span class=&quot;st0&quot;&gt;&amp;quot;😱&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    &lt;span class=&quot;st0&quot;&gt;&amp;quot;skull&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;         wtype &lt;span class=&quot;st0&quot;&gt;&amp;quot;💀&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    &lt;span class=&quot;st0&quot;&gt;&amp;quot;sunglasses&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;    wtype &lt;span class=&quot;st0&quot;&gt;&amp;quot;😎&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    &lt;span class=&quot;st0&quot;&gt;&amp;quot;thinking&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;      wtype &lt;span class=&quot;st0&quot;&gt;&amp;quot;🤔&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    &lt;span class=&quot;st0&quot;&gt;&amp;quot;speak_no_evil&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; wtype &lt;span class=&quot;st0&quot;&gt;&amp;quot;🙊&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    &lt;span class=&quot;st0&quot;&gt;&amp;quot;hear_no_evil&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  wtype &lt;span class=&quot;st0&quot;&gt;&amp;quot;🙉&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    &lt;span class=&quot;st0&quot;&gt;&amp;quot;see_no_evil&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;   wtype &lt;span class=&quot;st0&quot;&gt;&amp;quot;🙈&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    &lt;span class=&quot;st0&quot;&gt;&amp;quot;spock&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;         wtype &lt;span class=&quot;st0&quot;&gt;&amp;quot;🖖&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    &lt;span class=&quot;st0&quot;&gt;&amp;quot;thumbs_up&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;     wtype &lt;span class=&quot;st0&quot;&gt;&amp;quot;👍&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    &lt;span class=&quot;st0&quot;&gt;&amp;quot;thumbs_down&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;   wtype &lt;span class=&quot;st0&quot;&gt;&amp;quot;👎&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    &lt;span class=&quot;st0&quot;&gt;&amp;quot;rocket&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;        wtype &lt;span class=&quot;st0&quot;&gt;&amp;quot;🚀&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    &lt;span class=&quot;st0&quot;&gt;&amp;quot;poo&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;           wtype &lt;span class=&quot;st0&quot;&gt;&amp;quot;💩&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    &lt;span class=&quot;st0&quot;&gt;&amp;quot;rolling_eyes&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  wtype &lt;span class=&quot;st0&quot;&gt;&amp;quot;🙄&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    &lt;span class=&quot;st0&quot;&gt;&amp;quot;fire&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;          wtype &lt;span class=&quot;st0&quot;&gt;&amp;quot;🔥&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    &lt;span class=&quot;st0&quot;&gt;&amp;quot;snowman&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;       wtype &lt;span class=&quot;st0&quot;&gt;&amp;quot;⛄&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;               wtype &lt;span class=&quot;st0&quot;&gt;&amp;quot;?&amp;quot;&lt;/span&gt;  &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;esac&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;done&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
then add key bindings to &lt;code&gt;Sway&lt;/code&gt;&amp;#039;s config (i use right alt, as this is default for inserting polish national characters, too) in &lt;code&gt;~/.config/sway/config&lt;/code&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[...]
# emoji
bindsym Mod5+g       exec emoji grin
bindsym Mod5+shift+g exec emoji grimacing
bindsym Mod5+r       exec emoji rotfl
bindsym Mod5+Shift+r exec emoji rocket
bindsym Mod5+p       exec emoji spock
bindsym Mod5+Shift+p exec emoji poo
bindsym Mod5+t       exec emoji thinking
bindsym Mod5+h       exec emoji scream
bindsym Mod5+Shift+h exec emoji hushed
bindsym Mod5+u       exec emoji thumbs_up
bindsym Mod5+d       exec emoji thumbs_down
bindsym Mod5+l       exec emoji cold_sweat
bindsym Mod5+k       exec emoji skull
bindsym Mod5+j       exec emoji sunglasses
bindsym Mod5+i       exec emoji innocent
bindsym Mod5+y       exec emoji rolling_eyes
bindsym Mod5+f       exec emoji fire
bindsym Mod5+w       exec emoji snowman
[...]&lt;/pre&gt;

&lt;p&gt;
…and off we go! :)
&lt;/p&gt;

&lt;p&gt;
you might have noticed that not all emoji have a binding. that&amp;#039;s ok, as you can still use the script from command line with e.g.: &lt;code&gt;emoji fire&lt;/code&gt; and you get your character inserted where needed! :)
&lt;/p&gt;

&lt;p&gt;
also a note – while in theory you could put &lt;code&gt;wtype&lt;/code&gt; directly to &lt;code&gt;Sway&lt;/code&gt;&amp;#039;s config, it&amp;#039;s make it harder to read, as there are no inline comments and in text mode, many emojis are hard to read or do not show at all (i.e. just a hex code).
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>basz@undisclosed.example.com (basz)</author>
            <pubDate>Mon, 12 Jan 2026 19:55:04 +0000</pubDate>
        </item>
        <item>
            <title>2026-01-11_-_redundant_internet_at_home</title>
            <link>https://baszerr.eu/doku.php?id=blog:2026:01:11:2026-01-11_-_redundant_internet_at_home</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;redundant_internet_at_home&quot;&gt;2026-01-11 - redundant internet at home&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
for some years now i work 95% remotely, visiting office only a few times a year. this means i want to have network connection as stable as it can be. while i do have fiber optics and while it&amp;#039;s almost perfect wrt availability, 1-2 times a year there are moment when internet is down… and with my luck, this can strike in a very bad moment.
&lt;/p&gt;

&lt;p&gt;
to combat that i decided to get a redundant network connection. my 2nd ISP is a mobile provider. therefor i have 2 WANs – the main via my PC-router one and a &lt;a href=&quot;https://en.wikipedia.org/wiki/RasPi&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/RasPi&quot;&gt;RasPi&lt;/a&gt; with USB modem attached. on a home router i have a simple script that pings a set a predefined IPs to check if internet connection is there or not. if it fails, it moves to a secondary link. it goes like this:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-eu&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-o&lt;/span&gt; pipefail
&lt;span class=&quot;re2&quot;&gt;app&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;basename&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;$0&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; is_alive &lt;span class=&quot;co0&quot;&gt;# &amp;lt;0:iface&amp;gt;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw3&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;i&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  &lt;span class=&quot;kw3&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;n&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; addr &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;sort&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-R&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;startup&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;allowed_external_hosts.ips &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;head&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;-&lt;span class=&quot;es2&quot;&gt;$n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;do&lt;/span&gt;
    timeout &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ping&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-c&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-I&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;$1&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$addr&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$app&lt;/span&gt;: ping &lt;span class=&quot;es2&quot;&gt;$addr&lt;/span&gt; via $1 failed (&lt;span class=&quot;es2&quot;&gt;$i&lt;/span&gt;/&lt;span class=&quot;es2&quot;&gt;$n&lt;/span&gt;)&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;++i&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;done&lt;/span&gt;
  &lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$app&lt;/span&gt;: looks like $1 is dead...&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;kw3&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; set_default &lt;span class=&quot;co0&quot;&gt;# &amp;lt;0:metric_pri&amp;gt; &amp;lt;1:metric_sec&amp;gt;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$app&lt;/span&gt;: setting &lt;span class=&quot;es2&quot;&gt;$if_pri&lt;/span&gt;=$1 vs. &lt;span class=&quot;es2&quot;&gt;$if_sec&lt;/span&gt;=$2&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; +e
    &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-x&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;ip&lt;/span&gt; r del &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es3&quot;&gt;${rule_pri[@]}&lt;/span&gt;&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;ip&lt;/span&gt; r del &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es3&quot;&gt;${rule_sec[@]}&lt;/span&gt;&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;ip&lt;/span&gt; r add &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es3&quot;&gt;${rule_pri[@]}&lt;/span&gt;&amp;quot;&lt;/span&gt; metric &lt;span class=&quot;st0&quot;&gt;&amp;quot;$1&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;ip&lt;/span&gt; r add &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es3&quot;&gt;${rule_sec[@]}&lt;/span&gt;&amp;quot;&lt;/span&gt; metric &lt;span class=&quot;st0&quot;&gt;&amp;quot;$2&amp;quot;&lt;/span&gt;
    systemctl stop  openvpn
    systemctl start openvpn
    &lt;span class=&quot;kw2&quot;&gt;sleep&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;co0&quot;&gt;# give VPN some time to reconnect, so that the routing table is shown properly&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;ip&lt;/span&gt; r
  &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  &lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$app&lt;/span&gt;: switchover completed&amp;quot;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; set_pri
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  set_default &lt;span class=&quot;nu0&quot;&gt;2000&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3000&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; set_sec
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  set_default &lt;span class=&quot;nu0&quot;&gt;3000&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2000&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;if_pri&lt;/span&gt;=wan0
&lt;span class=&quot;re2&quot;&gt;if_sec&lt;/span&gt;=wan1
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;rule_pri&lt;/span&gt;=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;ip&lt;/span&gt; r &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;^default .* &lt;span class=&quot;es2&quot;&gt;$if_pri&lt;/span&gt;\&amp;gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;s/ metric .*//&#039;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;s/ *$//&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;rule_sec&lt;/span&gt;=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;ip&lt;/span&gt; r &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;^default .* &lt;span class=&quot;es2&quot;&gt;$if_sec&lt;/span&gt;\&amp;gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;s/ metric .*//&#039;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;s/ *$//&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;current&lt;/span&gt;=unknown
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;trap&lt;/span&gt; set_pri EXIT
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sleep&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;do&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; is_alive &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$if_pri&lt;/span&gt;&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$current&lt;/span&gt;&amp;quot;&lt;/span&gt; = pri &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt;
      &lt;span class=&quot;kw2&quot;&gt;sleep&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;
      set_pri
      &lt;span class=&quot;re2&quot;&gt;current&lt;/span&gt;=pri
    &lt;span class=&quot;kw1&quot;&gt;fi&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;continue&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;fi&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; is_alive &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$if_sec&lt;/span&gt;&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$current&lt;/span&gt;&amp;quot;&lt;/span&gt; = sec &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt;
      &lt;span class=&quot;kw2&quot;&gt;sleep&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;11&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;
      set_sec
      &lt;span class=&quot;re2&quot;&gt;current&lt;/span&gt;=sec
    &lt;span class=&quot;kw1&quot;&gt;fi&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;continue&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;fi&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$app&lt;/span&gt;: both interfaces seem to be dead - that&#039;s bad...&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;done&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
the script is meant to be ran as a &lt;code&gt;systemd&lt;/code&gt; service.
&lt;/p&gt;

&lt;p&gt;
since pinging is possible via an explicitly-specified interface, we can check if a given link is up or not, w/o changing any network settings. then, if link switch is required, it&amp;#039;s enough to swap metric of 2 interfaces (here: &lt;code&gt;wan0&lt;/code&gt; and &lt;code&gt;wan1&lt;/code&gt;) and restart VPN, so that it connects via a new interface… and that&amp;#039;s it. works like a charm for a long time now, with fairly fast switching in case of a problem. it&amp;#039;s also quite noise resistant, as many different IPs are used randomly and multiple IPs are checked before deciding to fail over.
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>basz@undisclosed.example.com (basz)</author>
            <pubDate>Sun, 11 Jan 2026 12:25:29 +0000</pubDate>
        </item>
        <item>
            <title>2026-01-11_-_rsync_and_defaults</title>
            <link>https://baszerr.eu/doku.php?id=blog:2026:01:11:2026-01-11_-_rsync_and_defaults</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;rsync_and_defaults&quot;&gt;2026-01-11 - rsync and defaults&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
i really like &lt;a href=&quot;https://en.wikipedia.org/wiki/rsync&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/rsync&quot;&gt;rsync&lt;/a&gt;. there&amp;#039;s sth brilliant in how it&amp;#039;s (conceptually) simple and yet so powerful. there are however gotchas. recently i&amp;#039;ve noticed, when i sync data between some of my machines, there are certain files that are ~always re-synced (despite not being changed) as well as there are files that sync once, and then cause errors to sync after that.
&lt;/p&gt;

&lt;p&gt;
to debug this it&amp;#039;s worth using &lt;code&gt;–itemize-changes&lt;/code&gt; that outputs a reason why a given file was synced. format is a bit cryptic, but after a moment with docs, it turned out that there&amp;#039;s a bit of time offset (we&amp;#039;re talking some tens of milliseconds, to be clear!) between source and target machines. this caused those “unfortunate” files to be always synced. the answer? use &lt;code&gt;–times&lt;/code&gt; flag to &lt;code&gt;rsync&lt;/code&gt;, so that it also copies creation / modification times from source. this way time offset between machines does not matter. that solved the 1st problem.
&lt;/p&gt;

&lt;p&gt;
the second one is… odd. turns out that &lt;code&gt;git&lt;/code&gt; does not give write permissions to object files in &lt;code&gt;.git&lt;/code&gt; dir, as these are not expected to ever change after writing. fine locally, but a bit problematic when &lt;code&gt;rsync&lt;/code&gt;ing repo, as there the file &lt;em&gt;can&lt;/em&gt; change (e.g. resuming previous partial send). to fix this one &lt;code&gt;–chmod=u+rw&lt;/code&gt; was added to &lt;code&gt;rsync&lt;/code&gt;, so that remote copy has always R/W access for user at least. this allows to error-less sync things.
&lt;/p&gt;

&lt;p&gt;
nice. these were quite some discoveries to be made. my only question – could we ask for a better defaults? the current ones just cause confusion…
&lt;/p&gt;

&lt;p&gt;
btw: more &lt;a href=&quot;https://github.com/el-bart/help_cmds/blob/master/rsync.txt&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/el-bart/help_cmds/blob/master/rsync.txt&quot; rel=&quot;ugc nofollow&quot;&gt;rsync tips&lt;/a&gt; can be found on &lt;a href=&quot;https://github.com/el-bart/help_cmds&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/el-bart/help_cmds&quot; rel=&quot;ugc nofollow&quot;&gt;help_cmds&lt;/a&gt; repo, as usual.
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>basz@undisclosed.example.com (basz)</author>
            <pubDate>Sun, 11 Jan 2026 11:55:55 +0000</pubDate>
        </item>
        <item>
            <title>2026</title>
            <link>https://baszerr.eu/doku.php?id=blog:2026:2026</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;section2026&quot;&gt;2026&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://baszerr.eu/doku.php?id=blog:2026:01:11:2026-01-12_-_easy_emoji_under_linux&quot; class=&quot;wikilink1&quot; title=&quot;blog:2026:01:11:2026-01-12_-_easy_emoji_under_linux&quot; data-wiki-id=&quot;blog:2026:01:11:2026-01-12_-_easy_emoji_under_linux&quot;&gt;2026-01-12 - easy emoji under linux&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://baszerr.eu/doku.php?id=blog:2026:01:11:2026-01-11_-_redundant_internet_at_home&quot; class=&quot;wikilink1&quot; title=&quot;blog:2026:01:11:2026-01-11_-_redundant_internet_at_home&quot; data-wiki-id=&quot;blog:2026:01:11:2026-01-11_-_redundant_internet_at_home&quot;&gt;2026-01-11 - redundant internet at home&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://baszerr.eu/doku.php?id=blog:2026:01:11:2026-01-11_-_rsync_and_defaults&quot; class=&quot;wikilink1&quot; title=&quot;blog:2026:01:11:2026-01-11_-_rsync_and_defaults&quot; data-wiki-id=&quot;blog:2026:01:11:2026-01-11_-_rsync_and_defaults&quot;&gt;2026-01-11 - rsync and defaults&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
</description>
            <author>basz@undisclosed.example.com (basz)</author>
            <pubDate>Sun, 11 Jan 2026 11:46:30 +0000</pubDate>
        </item>
        <item>
            <title>2025-10-10_-_spectrograms_of_different_light_sources</title>
            <link>https://baszerr.eu/doku.php?id=blog:2025:10:10:2025-10-10_-_spectrograms_of_different_light_sources</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;spectrograms_of_different_light_sources&quot;&gt;2025-10-10 - spectrograms of different light sources&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
after discovering &lt;a href=&quot;https://www.youtube.com/@project-326&quot; class=&quot;urlextern&quot; title=&quot;https://www.youtube.com/@project-326&quot; rel=&quot;ugc nofollow&quot;&gt;project 326&lt;/a&gt; YT channel i came across a review of &lt;a href=&quot;https://www.youtube.com/watch?v=LxQmaJYMOAk&quot; class=&quot;urlextern&quot; title=&quot;https://www.youtube.com/watch?v=LxQmaJYMOAk&quot; rel=&quot;ugc nofollow&quot;&gt;dirt cheap spectrometer&lt;/a&gt; (see also &lt;a href=&quot;https://www.youtube.com/watch?v=9XIhMJAFPd4&quot; class=&quot;urlextern&quot; title=&quot;https://www.youtube.com/watch?v=9XIhMJAFPd4&quot; rel=&quot;ugc nofollow&quot;&gt;part 2&lt;/a&gt;) manufactured by an individual in china. actually it looked quite impressive and with a price tag of 50€ there really did not need any more convincing… so this year i bought my 1st spectrometer. this blog post is a collection of samples and some interesting observations made with it.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2025-10-10 - spectrograms of different light sources&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;spectrograms_of_different_light_sources&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-604&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;device&quot;&gt;device&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.aliexpress.com/item/1005007241834839.html&quot; class=&quot;urlextern&quot; title=&quot;https://www.aliexpress.com/item/1005007241834839.html&quot; rel=&quot;ugc nofollow&quot;&gt;little garden spectrometer&lt;/a&gt;&lt;sup&gt;&lt;a href=&quot;#fn__1&quot; id=&quot;fnt__1&quot; class=&quot;fn_top&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt; came nicely packed, and fairly fast (~1w time). some of the more interesting parameters are:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; spectrum range: 340nm-1050nm&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 1nm prevision for visible light&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 1-3nm outside of visible light&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
i&amp;#039;ll not get into internal workings, though it&amp;#039;s actually very interesting. i highly recommend the linked review videos for more details.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;device&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;device&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;605-1197&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;sw_setup&quot;&gt;SW setup&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
from protocol PoV, the device is nothing more than a webcam. however to be able to interpret the white dots, a SW package is needed. it also need to be calibrated.
&lt;/p&gt;

&lt;p&gt;
the SW package is a &lt;a href=&quot;https://drive.google.com/drive/folders/17_R7CdaOaqt3w51hBl3s1I5LO8cFTbQu?usp=drive_link&quot; class=&quot;urlextern&quot; title=&quot;https://drive.google.com/drive/folders/17_R7CdaOaqt3w51hBl3s1I5LO8cFTbQu?usp=drive_link&quot; rel=&quot;ugc nofollow&quot;&gt;modified theremino&lt;/a&gt;, that has some improvements to work best with this device.
&lt;/p&gt;

&lt;p&gt;
it&amp;#039; over a quarter of century since i&amp;#039;d don&amp;#039;t use Windows as my primary &lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt;. this also means i&amp;#039;m _very_ uncomfortable running any binary SW. in this case the SW is also only runnable for windows. so for start i decided to run it inside a VM.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;SW setup&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;sw_setup&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1198-1817&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;take_1win_xp&quot;&gt;take 1: Win XP&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
since it runs on windows (XP), i decided to use a VM for that. &lt;abbr title=&quot;Too long; didn&amp;#039;t read&quot;&gt;TL;DR&lt;/abbr&gt; it took me so much time to try to run a USB camera there it actually turned out to be faster to use linux + wine. i&amp;#039;ll spare you the frustration of dealing with XP (those were some truly dark ages back then).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;take 1: Win XP&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;take_1win_xp&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1818-2122&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;take_2linux_wine&quot;&gt;take 2: linux + wine&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
start as usual: &lt;code&gt;qemu&lt;/code&gt; + debian:13 base. example command to run the tool:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# this gets the camera device:&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;camera_re&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot; 0c68:6464 Sonix Technology Co\., Ltd\. USB 2\.0 Camera&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;dev&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;lsusb &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$camera_re&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;awk&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{ print $2 &amp;quot;/&amp;quot; $4 }&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;tr&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-d&lt;/span&gt; :&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# here we start the VM:&lt;/span&gt;
qemu-system-x86_64 \
  &lt;span class=&quot;re5&quot;&gt;-enable-kvm&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-vga&lt;/span&gt; virtio \
  &lt;span class=&quot;re5&quot;&gt;-drive&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;file&lt;/span&gt;=disk.qcow2 \
  &lt;span class=&quot;re5&quot;&gt;-m&lt;/span&gt; 4G &lt;span class=&quot;re5&quot;&gt;-smp&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-usb&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-device&lt;/span&gt; usb-ehci,&lt;span class=&quot;re2&quot;&gt;id&lt;/span&gt;=ehci &lt;span class=&quot;re5&quot;&gt;-device&lt;/span&gt; qemu-xhci \
  &lt;span class=&quot;re5&quot;&gt;-nic&lt;/span&gt; user,&lt;span class=&quot;re2&quot;&gt;model&lt;/span&gt;=virtio-net-pci,&lt;span class=&quot;re2&quot;&gt;hostfwd&lt;/span&gt;=tcp:127.0.0.1:&lt;span class=&quot;nu0&quot;&gt;22017&lt;/span&gt;-:&lt;span class=&quot;nu0&quot;&gt;22&lt;/span&gt;
  &lt;span class=&quot;re5&quot;&gt;-device&lt;/span&gt; usb-host,&lt;span class=&quot;re2&quot;&gt;hostdevice&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;/dev/bus/usb/&lt;span class=&quot;es2&quot;&gt;$dev&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
once &lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt; is there, install X11 and some light graphical env. you can also get &lt;code&gt;mplayer&lt;/code&gt; to ensure camera is working properly:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mplayer&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-tv&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;driver=v4l2:width=1920:height=1080:device=/dev/video0&amp;quot;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-vo&lt;/span&gt; xv tv:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
if all is fine, it&amp;#039;s time to install &lt;code&gt;wine&lt;/code&gt; and enable 32-bit support:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;apt &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;wine&lt;/span&gt; wine32:i386 winetricks&lt;/pre&gt;

&lt;p&gt;
since we need 32-bit app support, make sure you have these in env at all times:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;WINEARCH&lt;/span&gt;=win32
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;WINEPREFIX&lt;/span&gt;=~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;.wine32&lt;/pre&gt;

&lt;p&gt;
now it&amp;#039;s time to configure &lt;code&gt;wine&lt;/code&gt; itself (the defaults are fine):
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;winecfg&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
and install old .NET version (echos of XP pains are back):
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# install:&lt;/span&gt;
winetricks dotnet40 gdiplus
&lt;span class=&quot;co0&quot;&gt;# confirm it&#039;s there:&lt;/span&gt;
winetricks list-installed&lt;/pre&gt;

&lt;p&gt;
ok - now it&amp;#039;s time to start the show! :)
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;WINEARCH&lt;/span&gt;=win32
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;WINEPREFIX&lt;/span&gt;=~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;.wine32
&lt;span class=&quot;co0&quot;&gt;# start from within the SW package from google drive, linked above:&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;wine&lt;/span&gt; theremino.exe&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;take 2: linux + wine&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;take_2linux_wine&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;2123-3694&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;calibration&quot;&gt;calibration&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
we&amp;#039;re almost there. once the application is up, you need to calibrate it. the instructions and video tutorials go into details. &lt;abbr title=&quot;Too long; didn&amp;#039;t read&quot;&gt;TL;DR&lt;/abbr&gt; is that you need:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; connect fluorescent light&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; let it heat up (~1 min is enough)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; shine fluorescent light onto the device, to capture spectrogram&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; mark &lt;code&gt;436nm&lt;/code&gt; and &lt;code&gt;546nm&lt;/code&gt; peaks, as seen below&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;a href=&quot;https://baszerr.eu/lib/exe/detail.php?id=blog%3A2025%3A10%3A10%3A2025-10-10_-_spectrograms_of_different_light_sources&amp;amp;media=blog:2025:10:10:fluorescent_light_436_546_611_ready.png&quot; class=&quot;media&quot; title=&quot;blog:2025:10:10:fluorescent_light_436_546_611_ready.png&quot;&gt;&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=800&amp;amp;tok=c4737b&amp;amp;media=blog:2025:10:10:fluorescent_light_436_546_611_ready.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;fluorescent light - selecting reference&quot; alt=&quot;fluorescent light - selecting reference&quot; width=&quot;800&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
once the calibration is done – you&amp;#039;re off to the races! :)
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;calibration&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;calibration&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;3695-4229&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;measurements&quot;&gt;measurements&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
this section contains some measurements from different light sources i found around, with a comments… and some unexpected findings. :)
&lt;/p&gt;

&lt;p&gt;
click on an image to enlarge it.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;measurements&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;measurements&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;4230-4428&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;daylight&quot;&gt;daylight&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://baszerr.eu/lib/exe/detail.php?id=blog%3A2025%3A10%3A10%3A2025-10-10_-_spectrograms_of_different_light_sources&amp;amp;media=blog:2025:10:10:sunlight_filter_paper.png&quot; class=&quot;media&quot; title=&quot;blog:2025:10:10:sunlight_filter_paper.png&quot;&gt;&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=800&amp;amp;tok=ef3317&amp;amp;media=blog:2025:10:10:sunlight_filter_paper.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;sunlight&quot; alt=&quot;sunlight&quot; width=&quot;800&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
as you can see, there&amp;#039;s quite a bit of IR and some UV-A.
&lt;/p&gt;

&lt;p&gt;
a classic one. interesting as a reference for other sources.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;daylight&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;daylight&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;4429-4629&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;daylight_behind_a_double_window&quot;&gt;daylight behind a double window&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://baszerr.eu/lib/exe/detail.php?id=blog%3A2025%3A10%3A10%3A2025-10-10_-_spectrograms_of_different_light_sources&amp;amp;media=blog:2025:10:10:sunlight_behind_double_window.png&quot; class=&quot;media&quot; title=&quot;blog:2025:10:10:sunlight_behind_double_window.png&quot;&gt;&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=800&amp;amp;tok=a58503&amp;amp;media=blog:2025:10:10:sunlight_behind_double_window.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;sunlight behind a double window&quot; alt=&quot;sunlight behind a double window&quot; width=&quot;800&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
common wisdom is that glass blocks UV… and the first surprise – yes, it blocks UV… but not a close-UV.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;daylight behind a double window&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;daylight_behind_a_double_window&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;4630-4873&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;candle&quot;&gt;candle&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://baszerr.eu/lib/exe/detail.php?id=blog%3A2025%3A10%3A10%3A2025-10-10_-_spectrograms_of_different_light_sources&amp;amp;media=blog:2025:10:10:candle_light_1.png&quot; class=&quot;media&quot; title=&quot;blog:2025:10:10:candle_light_1.png&quot;&gt;&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=800&amp;amp;tok=43aac8&amp;amp;media=blog:2025:10:10:candle_light_1.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;candle light&quot; alt=&quot;candle light&quot; width=&quot;800&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
many times i&amp;#039;ve heard ppl saying natural fire light is similar to sunlight, so it&amp;#039;s “better” (TM?). well – when you look into spectrogram and compare to sun&amp;#039;s light, you can see it&amp;#039;s actually very different. while overall shape looks similar, it&amp;#039;s heavily shifter towards IR. in fact - half of the spectrum is outside of a visible range (heat! surprise! surprise!). so it&amp;#039;s nice, it&amp;#039;s warm… and it&amp;#039;s nothing like a sun&amp;#039;s light. everyone plz deal with it. ;)
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;candle&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;candle&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;4874-5411&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit11&quot; id=&quot;halogen&quot;&gt;halogen&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://baszerr.eu/lib/exe/detail.php?id=blog%3A2025%3A10%3A10%3A2025-10-10_-_spectrograms_of_different_light_sources&amp;amp;media=blog:2025:10:10:halogen_light.png&quot; class=&quot;media&quot; title=&quot;blog:2025:10:10:halogen_light.png&quot;&gt;&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=800&amp;amp;tok=21f889&amp;amp;media=blog:2025:10:10:halogen_light.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;halogen light&quot; alt=&quot;halogen light&quot; width=&quot;800&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
another surprise – halogen light looks almost like a candle light! just must less bright (ok - my halogen light was just a small, desk lamp). here also big chunk is emitted as IR.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;halogen&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;halogen&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;5412-5670&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;red_laser_pointer&quot;&gt;red laser (pointer)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://baszerr.eu/lib/exe/detail.php?id=blog%3A2025%3A10%3A10%3A2025-10-10_-_spectrograms_of_different_light_sources&amp;amp;media=blog:2025:10:10:laser_pointer_red.png&quot; class=&quot;media&quot; title=&quot;blog:2025:10:10:laser_pointer_red.png&quot;&gt;&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=800&amp;amp;tok=d35d61&amp;amp;media=blog:2025:10:10:laser_pointer_red.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;red laser pointer&quot; alt=&quot;red laser pointer&quot; width=&quot;800&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
well – very much as expected. 1, sharp peak at the reference frequency / wavelength (&lt;code&gt;659nm&lt;/code&gt;).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;red laser (pointer)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;red_laser_pointer&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;5671-5866&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit13&quot; id=&quot;green_laser_pointer&quot;&gt;green laser (pointer)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
nope. :D i do not have one. nevertheless i decided to put a comment why it is so, as a word of warning.
&lt;/p&gt;

&lt;p&gt;
these are commonly done as a charge-pump in IR, that causes emission in a visible light. this means that aside from obvious green peak, there&amp;#039;s another one in IR (aka: invisible) range. this can potentially be dangerous to eyes, as there&amp;#039;s much more energy emitted by these, than you can see. a silent trap, if not made correctly (i.e. with an IR filter). this is why i decided to not buy one.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;green laser (pointer)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;green_laser_pointer&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;5867-6399&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit14&quot; id=&quot;leds&quot;&gt;LEDs&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
here are some LEDs i found laying around.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;mm_blue&quot;&gt;5mm blue&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://baszerr.eu/lib/exe/detail.php?id=blog%3A2025%3A10%3A10%3A2025-10-10_-_spectrograms_of_different_light_sources&amp;amp;media=blog:2025:10:10:led_blue.png&quot; class=&quot;media&quot; title=&quot;blog:2025:10:10:led_blue.png&quot;&gt;&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=800&amp;amp;tok=5142d6&amp;amp;media=blog:2025:10:10:led_blue.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;blue LED&quot; alt=&quot;blue LED&quot; width=&quot;800&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
it clearly shows a difference between LED and laser – peak is more bell-shaped (centered around &lt;code&gt;466nm&lt;/code&gt;) than just a sharp spike. however interestingly – it&amp;#039;s actually very bright. we&amp;#039;ll get back to this very soon…
&lt;/p&gt;

&lt;p&gt;
before we move one, note also a much smaller, &lt;code&gt;927nm&lt;/code&gt; “peak”. this is a &lt;a href=&quot;https://en.wikipedia.org/wiki/Diffraction_order#Gratings_as_dispersive_elements&quot; class=&quot;urlextern&quot; title=&quot;https://en.wikipedia.org/wiki/Diffraction_order#Gratings_as_dispersive_elements&quot; rel=&quot;ugc nofollow&quot;&gt;second-order diffraction&lt;/a&gt; – i.e. an artifact of the measurement process. we can ignore it – it&amp;#039;s not really there.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;mm_green&quot;&gt;5mm green&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://baszerr.eu/lib/exe/detail.php?id=blog%3A2025%3A10%3A10%3A2025-10-10_-_spectrograms_of_different_light_sources&amp;amp;media=blog:2025:10:10:led_green.png&quot; class=&quot;media&quot; title=&quot;blog:2025:10:10:led_green.png&quot;&gt;&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=800&amp;amp;tok=c4d297&amp;amp;media=blog:2025:10:10:led_green.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;green LED&quot; alt=&quot;green LED&quot; width=&quot;800&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;571nm&lt;/code&gt;. similar in idea to blue, just at a different frequency… and much, much dimmer. interestingly enough – the difference is not as prominent with a naked eye (even though it&amp;#039;s clearly visible). the reason is that human sight (as most other senses) is logarithmic – not linear.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;mm_red&quot;&gt;5mm red&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://baszerr.eu/lib/exe/detail.php?id=blog%3A2025%3A10%3A10%3A2025-10-10_-_spectrograms_of_different_light_sources&amp;amp;media=blog:2025:10:10:led_red.png&quot; class=&quot;media&quot; title=&quot;blog:2025:10:10:led_red.png&quot;&gt;&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=800&amp;amp;tok=5201de&amp;amp;media=blog:2025:10:10:led_red.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;red LED&quot; alt=&quot;red LED&quot; width=&quot;800&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;632nm&lt;/code&gt;. when it comes to brightness, somewhere in between blue and green.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;mm_yellow&quot;&gt;5mm yellow&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://baszerr.eu/lib/exe/detail.php?id=blog%3A2025%3A10%3A10%3A2025-10-10_-_spectrograms_of_different_light_sources&amp;amp;media=blog:2025:10:10:led_yellow.png&quot; class=&quot;media&quot; title=&quot;blog:2025:10:10:led_yellow.png&quot;&gt;&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=800&amp;amp;tok=df30b2&amp;amp;media=blog:2025:10:10:led_yellow.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;yellow LED&quot; alt=&quot;yellow LED&quot; width=&quot;800&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;590nm&lt;/code&gt;, similar in brightness to red LED. again – visually seems a bit dimmer, than it actually is.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;white&quot;&gt;white&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
so… we have: &lt;code&gt;R&lt;/code&gt;, &lt;code&gt;G&lt;/code&gt; and &lt;code&gt;B&lt;/code&gt;… RGB! so we have white, by putting all 3 in the same die, right? well, actually – no!
&lt;/p&gt;

&lt;p&gt;
in fact white LEDs work in a completely different manner. it&amp;#039;s being driven by a 1-color, bright LED that hits luminophore layer, that emits a wide spectrum. looking at the spectrograms below, you can see that blue is the weapon of choice. remember how bright it was, compared to other LEDs, driven by similar current? there you have a practical application of this effect.
&lt;/p&gt;

&lt;p&gt;
note that this also explain why RGB-LEDs are less common than RGBW-LEDs. it&amp;#039;s just that “white LED” is it&amp;#039;s own, separate channel, to give better mixed (and brighter) light.
&lt;/p&gt;

&lt;p&gt;
as a nice side effect this also means that LED light is also much closer to the natural sun light, than a candle! the only differences are no IR component and a dip between blue (driving) and green+ bands (stimulated) – a band gap.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;home_light&quot;&gt;home light&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://baszerr.eu/lib/exe/detail.php?id=blog%3A2025%3A10%3A10%3A2025-10-10_-_spectrograms_of_different_light_sources&amp;amp;media=blog:2025:10:10:home_led_lighting.png&quot; class=&quot;media&quot; title=&quot;blog:2025:10:10:home_led_lighting.png&quot;&gt;&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=800&amp;amp;tok=221ab1&amp;amp;media=blog:2025:10:10:home_led_lighting.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;home LED light&quot; alt=&quot;home LED light&quot; width=&quot;800&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;phone_light&quot;&gt;phone light&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://baszerr.eu/lib/exe/detail.php?id=blog%3A2025%3A10%3A10%3A2025-10-10_-_spectrograms_of_different_light_sources&amp;amp;media=blog:2025:10:10:white_led_phone.png&quot; class=&quot;media&quot; title=&quot;blog:2025:10:10:white_led_phone.png&quot;&gt;&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=800&amp;amp;tok=30d61f&amp;amp;media=blog:2025:10:10:white_led_phone.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;white LED from phone &amp;quot;flashlight&amp;quot;&quot; alt=&quot;white LED from phone &amp;quot;flashlight&amp;quot;&quot; width=&quot;800&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;mm_white&quot;&gt;5mm white&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://baszerr.eu/lib/exe/detail.php?id=blog%3A2025%3A10%3A10%3A2025-10-10_-_spectrograms_of_different_light_sources&amp;amp;media=blog:2025:10:10:led_white.png&quot; class=&quot;media&quot; title=&quot;blog:2025:10:10:led_white.png&quot;&gt;&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=800&amp;amp;tok=1331c9&amp;amp;media=blog:2025:10:10:led_white.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;5mm white LED (discrete)&quot; alt=&quot;5mm white LED (discrete)&quot; width=&quot;800&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;ir_850nm&quot;&gt;IR 850nm&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://baszerr.eu/lib/exe/detail.php?id=blog%3A2025%3A10%3A10%3A2025-10-10_-_spectrograms_of_different_light_sources&amp;amp;media=blog:2025:10:10:led_ir_850nm.png&quot; class=&quot;media&quot; title=&quot;blog:2025:10:10:led_ir_850nm.png&quot;&gt;&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=800&amp;amp;tok=e7af09&amp;amp;media=blog:2025:10:10:led_ir_850nm.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;IR LED 850nm&quot; alt=&quot;IR LED 850nm&quot; width=&quot;800&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
near IR. this one is not visible with a naked eye, but can still be captured by a cellphone&amp;#039;s camera, as slightly brighter spot.
&lt;/p&gt;

&lt;p&gt;
declared as &lt;code&gt;850nm&lt;/code&gt;, measured as &lt;code&gt;844nm&lt;/code&gt;. even though it&amp;#039;s already out of visible range, the precision is still quite good (though a bit below declared values).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;ir_940nm&quot;&gt;IR 940nm&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://baszerr.eu/lib/exe/detail.php?id=blog%3A2025%3A10%3A10%3A2025-10-10_-_spectrograms_of_different_light_sources&amp;amp;media=blog:2025:10:10:led_ir_940nm.png&quot; class=&quot;media&quot; title=&quot;blog:2025:10:10:led_ir_940nm.png&quot;&gt;&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=800&amp;amp;tok=0f368f&amp;amp;media=blog:2025:10:10:led_ir_940nm.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;IR LED 940nm&quot; alt=&quot;IR LED 940nm&quot; width=&quot;800&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
farther IR. this can neither be visible by an eye, not my a phone&amp;#039;s camera. some ESP32 night-vision cameras have this range, so it&amp;#039;s a perfect lighting for nighttime conditions, as it does not draw attention, yet still makes target visible. because of that it is however a bit tricky to work with, as it&amp;#039;s not visible to usual debug tools at hand, so it&amp;#039;s hard to tell if lighting is correct, unless the final camera is used.
&lt;/p&gt;

&lt;p&gt;
declared as &lt;code&gt;940nm&lt;/code&gt; and measured as &lt;code&gt;943nm&lt;/code&gt; – very good and within the &lt;abbr title=&quot;specification&quot;&gt;spec&lt;/abbr&gt;.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;uv_led_395nm&quot;&gt;UV LED 395nm&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
this one is no joke! &lt;code&gt;395nm&lt;/code&gt; is on the edge of visible spectrum, so that you can only see a small glow, despite flashlight being very bright. this is obviously dangerous, as it can damage your eyes.
&lt;/p&gt;

&lt;p&gt;
just to give you a sense of how much power the flashlight in question emits – a few seconds to shining over “glow in the dark” printed block made it shine so bright in visible spectrum, i do not think i have ever seen it so bright before, even when left on a natural sunlight!
&lt;/p&gt;

&lt;p&gt;
the flashlight came with “protective googles”. while the whole set was rather on a cheaper side, i had my doubts in how good the googles actually are, so just in case, used to prepare an object i needed to “charge”, close my eyes and only then turn flashlight on. now, equipped with a proper measuring tool i can finally check the googles, to do visual inspections.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;flashlight&quot;&gt;flashlight&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://baszerr.eu/lib/exe/detail.php?id=blog%3A2025%3A10%3A10%3A2025-10-10_-_spectrograms_of_different_light_sources&amp;amp;media=blog:2025:10:10:uv_led_395nm.png&quot; class=&quot;media&quot; title=&quot;blog:2025:10:10:uv_led_395nm.png&quot;&gt;&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=800&amp;amp;tok=f8c5ff&amp;amp;media=blog:2025:10:10:uv_led_395nm.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;UV LED 395nm&quot; alt=&quot;UV LED 395nm&quot; width=&quot;800&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;394nm&lt;/code&gt; measured for declared &lt;code&gt;395nm&lt;/code&gt; – spot on! the spike is _huge_. you can tell there&amp;#039;s _a lot_ of energy pumped there. the &lt;code&gt;788nm&lt;/code&gt; and &lt;code&gt;1188nm&lt;/code&gt; are 2nd (&lt;code&gt;394*2 == 788&lt;/code&gt;) and 3rd (&lt;code&gt;394*3 == 1182&lt;/code&gt;) order diffractions and thus can be skipped.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;through_the_protective_glasses&quot;&gt;through the protective glasses&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://baszerr.eu/lib/exe/detail.php?id=blog%3A2025%3A10%3A10%3A2025-10-10_-_spectrograms_of_different_light_sources&amp;amp;media=blog:2025:10:10:uv_led_395nm_filtered.png&quot; class=&quot;media&quot; title=&quot;blog:2025:10:10:uv_led_395nm_filtered.png&quot;&gt;&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=800&amp;amp;tok=27b6b7&amp;amp;media=blog:2025:10:10:uv_led_395nm_filtered.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;UV LED 395nm&quot; alt=&quot;UV LED 395nm&quot; width=&quot;800&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
now that&amp;#039;s impressive! there&amp;#039;s literally nothing but a background noise! all the UV power is gone. the glasses not only actually work, but work very well. now i know i can safely use these to protect my sight.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;LEDs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;leds&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;6400-11355&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit15&quot; id=&quot;summary&quot;&gt;summary&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
spectroscopy is fun! since you made it hear, i&amp;#039;m positive you agree. :) it was super interesting experience for myself and also fun for kids to watch mesmerizing, colorful plots changing with the light sources. at a 50€ price tag there&amp;#039;s no excuse to give it a shot! go for it… as soon as the device is back in stock, that is. ;)
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;summary&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;summary&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;11356-&amp;quot;} --&gt;&lt;div class=&quot;footnotes&quot;&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__1&quot; id=&quot;fn__1&quot; class=&quot;fn_bot&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt; 
&lt;div class=&quot;content&quot;&gt;before you roll your eyes on the name – in chinese “little garden” is a place of contemplation, meditation or hobby. this is the reference here.&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
</description>
            <author>basz@undisclosed.example.com (basz)</author>
            <pubDate>Fri, 10 Oct 2025 20:25:32 +0000</pubDate>
        </item>
        <item>
            <title>uv_led_395nm_filtered.png</title>
            <link>https://baszerr.eu/doku.php?image=blog%3A2025%3A10%3A10%3Auv_led_395nm_filtered.png&amp;ns=blog%3A2025%3A10%3A10&amp;do=media</link>
            <description>&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=500&amp;amp;h=500&amp;amp;tok=6fbe12&amp;amp;media=blog:2025:10:10:uv_led_395nm_filtered.png&quot; alt=&quot;uv_led_395nm_filtered.png&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; /&gt;</description>
            <author>basz@undisclosed.example.com (basz)</author>
            <pubDate>Fri, 10 Oct 2025 20:21:00 +0000</pubDate>
        </item>
        <item>
            <title>uv_led_395nm.png</title>
            <link>https://baszerr.eu/doku.php?image=blog%3A2025%3A10%3A10%3Auv_led_395nm.png&amp;ns=blog%3A2025%3A10%3A10&amp;do=media</link>
            <description>&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=500&amp;amp;h=500&amp;amp;tok=9c2333&amp;amp;media=blog:2025:10:10:uv_led_395nm.png&quot; alt=&quot;uv_led_395nm.png&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; /&gt;</description>
            <author>basz@undisclosed.example.com (basz)</author>
            <pubDate>Fri, 10 Oct 2025 20:17:20 +0000</pubDate>
        </item>
        <item>
            <title>led_ir_940nm.png</title>
            <link>https://baszerr.eu/doku.php?image=blog%3A2025%3A10%3A10%3Aled_ir_940nm.png&amp;ns=blog%3A2025%3A10%3A10&amp;do=media</link>
            <description>&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=500&amp;amp;h=500&amp;amp;tok=910244&amp;amp;media=blog:2025:10:10:led_ir_940nm.png&quot; alt=&quot;led_ir_940nm.png&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; /&gt;</description>
            <author>basz@undisclosed.example.com (basz)</author>
            <pubDate>Fri, 10 Oct 2025 20:07:48 +0000</pubDate>
        </item>
        <item>
            <title>led_ir_850nm.png</title>
            <link>https://baszerr.eu/doku.php?image=blog%3A2025%3A10%3A10%3Aled_ir_850nm.png&amp;ns=blog%3A2025%3A10%3A10&amp;do=media</link>
            <description>&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=500&amp;amp;h=500&amp;amp;tok=86cb3e&amp;amp;media=blog:2025:10:10:led_ir_850nm.png&quot; alt=&quot;led_ir_850nm.png&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; /&gt;</description>
            <author>basz@undisclosed.example.com (basz)</author>
            <pubDate>Fri, 10 Oct 2025 20:06:32 +0000</pubDate>
        </item>
        <item>
            <title>led_white.png</title>
            <link>https://baszerr.eu/doku.php?image=blog%3A2025%3A10%3A10%3Aled_white.png&amp;ns=blog%3A2025%3A10%3A10&amp;do=media</link>
            <description>&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=500&amp;amp;h=500&amp;amp;tok=055369&amp;amp;media=blog:2025:10:10:led_white.png&quot; alt=&quot;led_white.png&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; /&gt;</description>
            <author>basz@undisclosed.example.com (basz)</author>
            <pubDate>Fri, 10 Oct 2025 20:05:32 +0000</pubDate>
        </item>
        <item>
            <title>white_led_phone.png</title>
            <link>https://baszerr.eu/doku.php?image=blog%3A2025%3A10%3A10%3Awhite_led_phone.png&amp;ns=blog%3A2025%3A10%3A10&amp;do=media</link>
            <description>&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=500&amp;amp;h=500&amp;amp;tok=1043fa&amp;amp;media=blog:2025:10:10:white_led_phone.png&quot; alt=&quot;white_led_phone.png&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; /&gt;</description>
            <author>basz@undisclosed.example.com (basz)</author>
            <pubDate>Fri, 10 Oct 2025 20:04:55 +0000</pubDate>
        </item>
        <item>
            <title>home_led_lighting.png</title>
            <link>https://baszerr.eu/doku.php?image=blog%3A2025%3A10%3A10%3Ahome_led_lighting.png&amp;ns=blog%3A2025%3A10%3A10&amp;do=media</link>
            <description>&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=500&amp;amp;h=500&amp;amp;tok=56d148&amp;amp;media=blog:2025:10:10:home_led_lighting.png&quot; alt=&quot;home_led_lighting.png&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; /&gt;</description>
            <author>basz@undisclosed.example.com (basz)</author>
            <pubDate>Fri, 10 Oct 2025 20:03:14 +0000</pubDate>
        </item>
        <item>
            <title>led_yellow.png</title>
            <link>https://baszerr.eu/doku.php?image=blog%3A2025%3A10%3A10%3Aled_yellow.png&amp;ns=blog%3A2025%3A10%3A10&amp;do=media</link>
            <description>&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=500&amp;amp;h=500&amp;amp;tok=aabdcc&amp;amp;media=blog:2025:10:10:led_yellow.png&quot; alt=&quot;led_yellow.png&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; /&gt;</description>
            <author>basz@undisclosed.example.com (basz)</author>
            <pubDate>Fri, 10 Oct 2025 19:55:29 +0000</pubDate>
        </item>
        <item>
            <title>led_red.png</title>
            <link>https://baszerr.eu/doku.php?image=blog%3A2025%3A10%3A10%3Aled_red.png&amp;ns=blog%3A2025%3A10%3A10&amp;do=media</link>
            <description>&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=500&amp;amp;h=500&amp;amp;tok=65975d&amp;amp;media=blog:2025:10:10:led_red.png&quot; alt=&quot;led_red.png&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; /&gt;</description>
            <author>basz@undisclosed.example.com (basz)</author>
            <pubDate>Fri, 10 Oct 2025 19:54:01 +0000</pubDate>
        </item>
        <item>
            <title>led_green.png</title>
            <link>https://baszerr.eu/doku.php?image=blog%3A2025%3A10%3A10%3Aled_green.png&amp;ns=blog%3A2025%3A10%3A10&amp;do=media</link>
            <description>&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=500&amp;amp;h=500&amp;amp;tok=35c770&amp;amp;media=blog:2025:10:10:led_green.png&quot; alt=&quot;led_green.png&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; /&gt;</description>
            <author>basz@undisclosed.example.com (basz)</author>
            <pubDate>Fri, 10 Oct 2025 19:47:48 +0000</pubDate>
        </item>
        <item>
            <title>led_blue.png</title>
            <link>https://baszerr.eu/doku.php?image=blog%3A2025%3A10%3A10%3Aled_blue.png&amp;ns=blog%3A2025%3A10%3A10&amp;do=media</link>
            <description>&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=500&amp;amp;h=500&amp;amp;tok=f83d6f&amp;amp;media=blog:2025:10:10:led_blue.png&quot; alt=&quot;led_blue.png&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; /&gt;</description>
            <author>basz@undisclosed.example.com (basz)</author>
            <pubDate>Fri, 10 Oct 2025 19:46:34 +0000</pubDate>
        </item>
        <item>
            <title>laser_pointer_red.png</title>
            <link>https://baszerr.eu/doku.php?image=blog%3A2025%3A10%3A10%3Alaser_pointer_red.png&amp;ns=blog%3A2025%3A10%3A10&amp;do=media</link>
            <description>&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=500&amp;amp;h=500&amp;amp;tok=e7cded&amp;amp;media=blog:2025:10:10:laser_pointer_red.png&quot; alt=&quot;laser_pointer_red.png&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; /&gt;</description>
            <author>basz@undisclosed.example.com (basz)</author>
            <pubDate>Fri, 10 Oct 2025 19:42:26 +0000</pubDate>
        </item>
        <item>
            <title>halogen_light.png</title>
            <link>https://baszerr.eu/doku.php?image=blog%3A2025%3A10%3A10%3Ahalogen_light.png&amp;ns=blog%3A2025%3A10%3A10&amp;do=media</link>
            <description>&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=500&amp;amp;h=500&amp;amp;tok=eb0f31&amp;amp;media=blog:2025:10:10:halogen_light.png&quot; alt=&quot;halogen_light.png&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; /&gt;</description>
            <author>basz@undisclosed.example.com (basz)</author>
            <pubDate>Fri, 10 Oct 2025 19:40:10 +0000</pubDate>
        </item>
        <item>
            <title>candle_light_1.png</title>
            <link>https://baszerr.eu/doku.php?image=blog%3A2025%3A10%3A10%3Acandle_light_1.png&amp;ns=blog%3A2025%3A10%3A10&amp;do=media</link>
            <description>&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=500&amp;amp;h=500&amp;amp;tok=b4f209&amp;amp;media=blog:2025:10:10:candle_light_1.png&quot; alt=&quot;candle_light_1.png&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; /&gt;</description>
            <author>basz@undisclosed.example.com (basz)</author>
            <pubDate>Fri, 10 Oct 2025 19:37:02 +0000</pubDate>
        </item>
        <item>
            <title>sunlight_behind_double_window.png</title>
            <link>https://baszerr.eu/doku.php?image=blog%3A2025%3A10%3A10%3Asunlight_behind_double_window.png&amp;ns=blog%3A2025%3A10%3A10&amp;do=media</link>
            <description>&lt;img src=&quot;https://baszerr.eu/lib/exe/fetch.php?w=500&amp;amp;h=500&amp;amp;tok=643e2b&amp;amp;media=blog:2025:10:10:sunlight_behind_double_window.png&quot; alt=&quot;sunlight_behind_double_window.png&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; /&gt;</description>
            <author>basz@undisclosed.example.com (basz)</author>
            <pubDate>Fri, 10 Oct 2025 19:34:34 +0000</pubDate>
        </item>
    </channel>
</rss>
