<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Home on Søren&#39;s Blog</title>
    <link>https://soeren.one/</link>
    <description>Recent content in Home on Søren&#39;s Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 04 Feb 2026 06:00:00 +0000</lastBuildDate>
    <atom:link href="https://soeren.one/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>January Recap</title>
      <link>https://soeren.one/2026/2026-01-recap/</link>
      <pubDate>Wed, 04 Feb 2026 06:00:00 +0000</pubDate>
      <guid>https://soeren.one/2026/2026-01-recap/</guid>
      <description>&lt;p&gt;The fist month of 2026 is the over. Time for a quick recap on my ambitions.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Walk 10k steps per day:&lt;/strong&gt; In January I walked an average of 11.5k steps per day. Wow! The last week I felt sick and concluded at 8.2k steps. Next week, I need to move more to catchup again.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Run 300km:&lt;/strong&gt; Dividing 300km by 12months means that I need to run 25km per months. In January, I jogged 26km - slightly above target. Same as above, I paused all activities in the last week. Getting healthy first is more important.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Cycle 500km:&lt;/strong&gt; To achieve this, I need 43km on the bike per months. In January, I cycled 34km. Below target but expected. More cycling during summer.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Drink 0 alcohol:&lt;/strong&gt; I had one beer. Close.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Fast 14h per day:&lt;/strong&gt; I was not tracking this properly in January and thus cannot tell. Will move the app to the Home Screen.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Read 5min for 30 days in a row:&lt;/strong&gt; This is a big win. My current streak is at 38 days - all days of January included. I can put a checkmark on this. What helped me come back to this habit is that I switched to reading ebooks in the Apple Books app on my phone. A device I have with me all the time. Instead of wasting my time in news apps (I &lt;a href=&#34;https://soeren.one/2024/give-up-social-media/&#34;&gt;don’t waste on social media anymore&lt;/a&gt;), I read a few pages. Time well used.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Visit 1 new place:&lt;/strong&gt; I have not been to a new city, but I visited an &lt;a href=&#34;https://www.chairotierlangen.com/&#34;&gt;Indian restaurant in Erlangen&lt;/a&gt; for the fist time and was amazed by the delicious food (608 Makhani)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Write 25 blog posts:&lt;/strong&gt; I wrote  five articles in January. Aiming to keep this spirit.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: January%20Recap&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2026%2f2026-01-recap%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>The Venice-by-bike log</title>
      <link>https://soeren.one/2026/venice-by-bike/</link>
      <pubDate>Thu, 15 Jan 2026 05:00:00 +0000</pubDate>
      <guid>https://soeren.one/2026/venice-by-bike/</guid>
      <description>&lt;p&gt;I am on the train to the office and finally found the inspiration bring something on this blog: the &amp;ldquo;travel log&amp;rdquo; of our &lt;a href=&#34;https://soeren.one/tags/venice-by-bike&#34;&gt;bikepacking trip to Venice&lt;/a&gt; last year.&lt;/p&gt;
&lt;p&gt;Follow by reading:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://soeren.one/2025/ven_day0&#34;&gt;Day 0&lt;/a&gt;: how my excitement built and what I packed.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://soeren.one/2025/ven_day1&#34;&gt;Day 1&lt;/a&gt;: how I got to the starting point of the tour.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://soeren.one/2025/ven_day2&#34;&gt;Day 2&lt;/a&gt;: how the first 100km went and the famous booking chaos.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://soeren.one/2025/ven_day3&#34;&gt;Day 3&lt;/a&gt;: how we enjoy the first sunny day.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://soeren.one/2025/ven_day4&#34;&gt;Day 4&lt;/a&gt;: how we completed the three I&amp;rsquo;s.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://soeren.one/2025/ven_day5&#34;&gt;Day 5&lt;/a&gt;: how we pass the Brenner and reach Italy.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://soeren.one/2025/ven_day6&#34;&gt;Day 6&lt;/a&gt;: how we climb the Dolomites.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://soeren.one/2025/ven_day7&#34;&gt;Day 7&lt;/a&gt;: how we descent to sea level.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://soeren.one/2025/ven_day8&#34;&gt;Day 8&lt;/a&gt;: how we arrive at Venice.&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: The%20Venice-by-bike%20log&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2026%2fvenice-by-bike%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Run Hugo Blog on uberspace</title>
      <link>https://soeren.one/2026/hugo-uberspace/</link>
      <pubDate>Sun, 11 Jan 2026 06:00:00 +0000</pubDate>
      <guid>https://soeren.one/2026/hugo-uberspace/</guid>
      <description>&lt;p&gt;Back in 2019, I wrote an article on &lt;a href=&#34;https://soeren.one/2019/hugo-mit-git-auf-uberspace-benutzen/&#34;&gt;how to run a hugo blog on uberspace&lt;/a&gt; (🇩🇪). The magic is not to bring the static files on a webhoster, that&amp;rsquo;s easy, but that &lt;a href=&#34;https://uberspace.de/en/&#34;&gt;uberspace&lt;/a&gt; allows building and publishing the blog for you on your domain. Like GitHub or Netlify, but with a small German hoster.&lt;/p&gt;
&lt;p&gt;I use this setup ever since. Although &lt;a href=&#34;https://soeren.one/2025/on-blogging-platforms/&#34;&gt;I struggle every now and then&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Robert reached out, because he was facing error messages when trying to implement the same. I couldn&amp;rsquo;t help him directly, because that article is five years old and I was not sure if things have changed in the meantime.&lt;/p&gt;
&lt;p&gt;Luckily, the holidays came with a bit of spare time to test this myself provide an updated version.&lt;/p&gt;
&lt;p&gt;I was very careful to collect all commands I sent to the terminal and am thus very sure that this works on an U7 uberspace.&lt;/p&gt;
&lt;h1 id=&#34;prepare-your-machine&#34;&gt;Prepare your machine&lt;/h1&gt;
&lt;p&gt;You need to have the git and hugo available on your machine. Please follow their installation guides.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://book.git-scm.com/&#34;&gt;git&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://gohugo.io/getting-started/installing/&#34;&gt;hugo&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You also need access to a terminal. That&amp;rsquo;s standard if you&amp;rsquo;re on Linux or Mac. You may want to checkout &lt;a href=&#34;https://www.chiark.greenend.org.uk/~sgtatham/putty/&#34;&gt;Putty&lt;/a&gt; if you&amp;rsquo;re using Windows.&lt;/p&gt;
&lt;h1 id=&#34;create-a-new-asteroid&#34;&gt;Create a new asteroid&lt;/h1&gt;
&lt;p&gt;Now let&amp;rsquo;s create a new asteroid (= account) on uberspace. Surf to &lt;a href=&#34;https://dashboard.uberspace.de/register&#34;&gt;https://dashboard.uberspace.de/register&lt;/a&gt; and fill out the form. It has 3 fields. Should take less than a minute.&lt;/p&gt;
&lt;p&gt;Let me say it again: I am super happy with uberspace as a hoster. They provide all you need, have a great service and company values. If you don&amp;rsquo;t know them yet, check out their &lt;a href=&#34;https://uberspace.de/en/about/&#34;&gt;about-us page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Once the account is created, nagivate to &lt;a href=&#34;https://dashboard.uberspace.de/dashboard/&#34;&gt;Dashboard &amp;ndash;&amp;gt; Login&lt;/a&gt; and set a new password for the SSH access.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;ssh_password.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;Remember the host name on which your asteroid is created. You can find that in the email they write you, or on the &lt;a href=&#34;https://dashboard.uberspace.de/dashboard/datasheet&#34;&gt;Datasheet&lt;/a&gt;.&lt;/p&gt;
&lt;h1 id=&#34;the-nerdy-stuff&#34;&gt;The nerdy stuff&lt;/h1&gt;
&lt;p&gt;So far, so fancy. From now on, no more UI, but terminal commands only.&lt;/p&gt;
&lt;p&gt;First, we connect to your new Asteroid using SSH. Please replace &lt;code&gt;batman&lt;/code&gt; with your user name and &lt;code&gt;helium&lt;/code&gt; with your host name. You need the SSH password you defined in the previous step to log in.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ssh batman@helium.uberspace.de
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Next, we install Hugo. We download the latest release. &lt;a href=&#34;https://github.com/gohugoio/hugo/releases/&#34;&gt;Check GitHub&lt;/a&gt; and replace the url in the &lt;code&gt;wget&lt;/code&gt; if necessary.&lt;/p&gt;
&lt;p&gt;Wondering what the commands do? &lt;code&gt;wget&lt;/code&gt; will download the compressed hugo release, &lt;code&gt;tar&lt;/code&gt; will unzip it, &lt;code&gt;mv&lt;/code&gt; moves the extracted directory, and &lt;code&gt;rm&lt;/code&gt; deletes the file we downloaded.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;cd ~

wget https://github.com/gohugoio/hugo/releases/download/v0.154.4/hugo_0.154.4_Linux-64bit.tar.gz

tar -xvf hugo_0.154.4_Linux-64bit.tar.gz hugo

mv hugo ~/bin

rm hugo_0.154.4_Linux-64bit.tar.gz
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;With &lt;code&gt;mkdir&lt;/code&gt; we create a directory that holds our repository. This is where we will push to. Within the folder, we initialize an empty repository (&lt;code&gt;--bare&lt;/code&gt;) and create the &lt;code&gt;main&lt;/code&gt; branch.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;cd ~

mkdir batblog.git

cd batblog.git

git init --bare

git branch -m main
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Brace yourself, because now we add the magic 🧚&lt;/p&gt;
&lt;p&gt;We tell git to run a few commands every time an update is made on the repository, e.g. when we push a commit holding a new blog post. This is done by changing the content of the &lt;code&gt;post-update&lt;/code&gt; hook.&lt;/p&gt;
&lt;p&gt;Run these commands to open the file in the &lt;code&gt;nano&lt;/code&gt; editor&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;cd ~/batblog.git

nano hooks/post-update
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Copy the following script into the file, change where required.&lt;/p&gt;
&lt;p&gt;What the script does:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;define path to your repository (&lt;code&gt;GIT_REPO&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;define path to a temporary directory to clone into (&lt;code&gt;TMP_GIT&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;define path to your public folder, where the built blog shall be moved to (&lt;code&gt;PUBLIC_WWW&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;clone the repository to the temporary folder&lt;/li&gt;
&lt;li&gt;change into that temporary folder&lt;/li&gt;
&lt;li&gt;build the blog and move the output to the public folder&lt;/li&gt;
&lt;li&gt;delete the temporary folder&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;#!/bin/sh

echo &amp;#34;Start hook magic&amp;#34;

# path to repository
GIT_REPO=$HOME/batblog.git

# path to tmp
TMP_GIT_CLONE=$(mktemp -d)

# path to publich URL
PUBLIC_WWW=/var/www/virtual/$USER/html

# clone repository
git clone $GIT_REPO $TMP_GIT_CLONE
cd $TMP_GIT_CLONE

# build
~/bin/hugo --cleanDestinationDir --destination $PUBLIC_WWW

# clean
rm -Rf $TMP_GIT_CLONE
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Save the changes with &lt;code&gt;control + o&lt;/code&gt; and exit the editor with &lt;code&gt;control + x&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s important to run one more command, letting the machine know that this script is executable.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;cd ~/batblog.git

chmod +x hooks/post-update
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;We&amp;rsquo;re done on the server. The rest happens on your local machine.&lt;/p&gt;
&lt;h1 id=&#34;create-and-publish-your-blog&#34;&gt;Create and publish your blog&lt;/h1&gt;
&lt;p&gt;On your machine, we clone the repository that we created on uberspace.
Adjust the path to your needs, by replacing &lt;code&gt;batman&lt;/code&gt; with your user name, &lt;code&gt;helium&lt;/code&gt; with your host name, and &lt;code&gt;batblog.git&lt;/code&gt; with whatever you called the repository. You need the SSH password that you defined above.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;git clone ssh://batman@helium.uberspace.de/home/batman/batblog.git
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This will create a directory called &lt;code&gt;batblog&lt;/code&gt;. We open this directory, create a new blog in there, commit the changes and push them to the server.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;cd batblog

hugo new site . --force

git add .
git commit -m &amp;#34;initial&amp;#34;
git push origin main
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Wait a few seconds and then open your uberspace URL. If you want to make your blog available at your own domain - you just need to add the domain to your uberspace and adjust the DNS records (A, AAAA). A guide how to do this is here: &lt;a href=&#34;https://manual.uberspace.de/web-domains/&#34;&gt;https://manual.uberspace.de/web-domains/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Enjoy your new blog 👏&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Run%20Hugo%20Blog%20on%20uberspace&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2026%2fhugo-uberspace%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>3Koenigslauf 2026</title>
      <link>https://soeren.one/2026/2026-3kl/</link>
      <pubDate>Wed, 07 Jan 2026 06:00:00 +0000</pubDate>
      <guid>https://soeren.one/2026/2026-3kl/</guid>
      <description>&lt;p&gt;It feels good to start the new year with a sporting success. Yesterday, the „&lt;a href=&#34;https://3koenigslauf.de/&#34;&gt;3Königslauf&lt;/a&gt;“ (literally: Three Kings Run. It’s a reference to the 3 Biblical Magi) took place in Schwäbisch Hall. It was my third time participating, and the second year in a row.&lt;/p&gt;
&lt;p&gt;It promised to be a challenge. Running 10 km right after the holidays is never easy. From 2025, we knew the course and were aware that the climb comes at the end. Temperatures below freezing and snowfall were forecasted for the race day.&lt;/p&gt;
&lt;p&gt;As an additional challenge, both of us had been struggling with illness in December.&lt;/p&gt;
&lt;p&gt;Not the best conditions.&lt;/p&gt;
&lt;p&gt;When we arrived in Schwäbisch Hall, it was very cold, but thankfully just cloudy. No precipitation, no icy wind.&lt;/p&gt;
&lt;p&gt;We positioned ourselves further toward the front of the starting block than last year. At 14:00, the race began.&lt;/p&gt;
&lt;p&gt;The focus during the first kilometer was simple: Don’t bump into anyone. After that, the field started to thin out.&lt;/p&gt;
&lt;p&gt;We started fast. In the second kilometer, I thought there was no way I’d make it.&lt;/p&gt;
&lt;p&gt;Kilometers three and four were about trying to find a rhythm.&lt;/p&gt;
&lt;p&gt;Kilometer five brought the first climb. Tough, but manageable. First lap done in under 28 minutes. Way too fast for our training condition.&lt;/p&gt;
&lt;p&gt;The second lap began with the thought that, at this pace, a new personal best might be possible. We kept pushing. Kilometers six, seven, and eight - we held on. By kilometer nine, all strength was gone - and once again, uphill. We were at our limit. The last 500 meters felt endless. But then we crossed the finish line. &lt;strong&gt;Under 55 minutes&lt;/strong&gt;. Wow!&lt;/p&gt;
&lt;p&gt;I’m very proud. A great start. It feels good to have the &lt;a href=&#34;https://soeren.one/2026/2026-life-goals/&#34;&gt;first 3% of this year’s goal&lt;/a&gt; in the bag.&lt;/p&gt;
&lt;p&gt;With this motivation, we’re now starting our preparation for the half marathon in May.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;workout.JPG&#34; alt=&#34;workout&#34;&gt;&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: 3Koenigslauf%202026&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2026%2f2026-3kl%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>2025 in Statistics</title>
      <link>https://soeren.one/2026/2025-in-statistics/</link>
      <pubDate>Sun, 04 Jan 2026 06:00:00 +0000</pubDate>
      <guid>https://soeren.one/2026/2025-in-statistics/</guid>
      <description>&lt;p&gt;The new year is a few days old. A good opportunity to look back.&lt;/p&gt;
&lt;p&gt;Out of the different Replays, Reviews, Recaps and the Health App (why doesn’t it have a year recap, Apple?), I collected a few statistics.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Run&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I ran 113km&lt;/li&gt;
&lt;li&gt;the average distance per workout was 5.14km. The average duration 33min. The average pace 6:31&lt;/li&gt;
&lt;li&gt;The longest run in 2025, was 10.2km&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I want those numbers to be &lt;a href=&#34;https://soeren.one/2026/2026-life-goals/&#34;&gt;much higher in 2026&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cycle&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I cycled 1.183km.&lt;/li&gt;
&lt;li&gt;the average distance per workout was 20.75km. The average duration 66min.&lt;/li&gt;
&lt;li&gt;The longest trip was 136km.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Those are „biased“ by the &lt;a href=&#34;https://soeren.one/tags/cycle-to-venice/&#34;&gt;trip to Venice&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Health&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I gained 5kg&lt;/li&gt;
&lt;li&gt;I walked an average of 7,980 steps per day. That’s almost 3 million steps.&lt;/li&gt;
&lt;li&gt;The maximum steps per day were 23k&lt;/li&gt;
&lt;li&gt;I tend to get up at 06:00&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I aim for 10k steps and a decline of kilos.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Podcasts&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I listened to podcasts for 245h in 2025&lt;/li&gt;
&lt;li&gt;In total, 215 episodes from 18 different podcasts&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I don’t have statistics from previous years but my gut tells me that 2025 wasn’t a peak year for podcast listening.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: 2025%20in%20Statistics&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2026%2f2025-in-statistics%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>2026 Goals</title>
      <link>https://soeren.one/2026/2026-life-goals/</link>
      <pubDate>Thu, 01 Jan 2026 06:00:00 +0000</pubDate>
      <guid>https://soeren.one/2026/2026-life-goals/</guid>
      <description>&lt;p&gt;1st of January is ideal to think about the upcoming year. We all know that resolutions don&amp;rsquo;t last long, so I am not calling these resolutions. They are targets, goals, elements of a contract with myself.&lt;/p&gt;
&lt;p&gt;Below, is a summary of things I want to achieve in 2026.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Achieve an average of 10k steps per day.&lt;/strong&gt; This is a ~25% increase compared to 2025, where I landed at roughly 8k&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Run 300km.&lt;/strong&gt; This is ambitious, as is more than double of what I was running in 2025. However, I have a 10k and a half-marathon already in the calendar and need to train for those.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cylce 500km.&lt;/strong&gt; This is about 50% of the 1.200km I cycled in 2025 - but I won&amp;rsquo;t take the bike to Venice this year.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Continue the zero alcohol habit.&lt;/strong&gt; I barely drank in 2025, I think it did me good, I want to continue this.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Continue Intermediate Fasting.&lt;/strong&gt; Same as above. I feel that it helps me, I want to continue. I may throw in a few days of complete fasting. Eager to try that once, but am not sure yet.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Achieve a 30-day reading streak.&lt;/strong&gt; I started reading more. I have set an easy timer of only 5min - hoping that this will make the goal realistic. Maybe something I can already check-off in February.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Visit at least one place I&amp;rsquo;ve never been before.&lt;/strong&gt; I am thinking of a city or country, but in worst case it&amp;rsquo;s a museum or gym.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;25 Blog Posts.&lt;/strong&gt; This is probably a joke for most of you, but for me it&amp;rsquo;s hard to find the regular slot between family, working, and volunteering to sit down and write. In 2026, I want at least to write something here every other week. To make the first 50%, I may write monthly status reports on these goals.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Some are ambitious, others hopefully simple. The balance shall keep the motivation high. I&amp;rsquo;ll use this post as anker at the end of the year for reflection.&lt;/p&gt;
&lt;p&gt;Do you set goals?&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: 2026%20Goals&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2026%2f2026-life-goals%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>No news over Christmas</title>
      <link>https://soeren.one/2025/no-news/</link>
      <pubDate>Wed, 31 Dec 2025 06:00:00 +0000</pubDate>
      <guid>https://soeren.one/2025/no-news/</guid>
      <description>&lt;p&gt;I am a political person. Not actively, but interested. On a regular day, I check the news a couple of times a day.&lt;/p&gt;
&lt;p&gt;The one thing I miss about Twitter is that when using it, I felt ahead of the curve on what was going on in the world. Newspapers are slower. I had to adjust to this, but see the benefit: I am not stressed about every little thing anymore, when read what makes it into the news a couple of days later.&lt;/p&gt;
&lt;p&gt;Over the holidays, I tried a more extreme approach. I check the news once per day. In the morning. Mainly skimming the teasers, reading one or two complete articles.&lt;/p&gt;
&lt;p&gt;And I have to admit. This really did me good. The transition from a stressful work week to come down into Christmas mood takes a few days, if not the whole week - but not this year. Disconnecting myself from the world, being present in the moment with my family, a true game changer.&lt;/p&gt;
&lt;p&gt;Something to repeat next year.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: No%20news%20over%20Christmas&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2025%2fno-news%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>On Blogging Platforms</title>
      <link>https://soeren.one/2025/on-blogging-platforms/</link>
      <pubDate>Tue, 30 Dec 2025 06:00:00 +0000</pubDate>
      <guid>https://soeren.one/2025/on-blogging-platforms/</guid>
      <description>&lt;p&gt;Over the holidays, I was thinking about my &lt;a href=&#34;https://soeren.one/2025/blogging-workflow-mid-2025/&#34;&gt;blogging workflow&lt;/a&gt;. Looking at my statistics for 2025, I got the feeling that my setup is too complex and that it prevents me from writing more.&lt;/p&gt;
&lt;p&gt;I thought about moving away from my &lt;a href=&#34;https://soeren.one/2019/hugo-mit-git-auf-uberspace-benutzen/&#34;&gt;self-hosted hugo blog on uberspace&lt;/a&gt; to a hosted service, where I could focus solely on writing text.&lt;/p&gt;
&lt;p&gt;While looking around at the &lt;a href=&#34;https://manuelmoreale.com/blog-platforms&#34;&gt;different options&lt;/a&gt;, &lt;a href=&#34;https://bearblog.dev/&#34;&gt;Bear Blog&lt;/a&gt; and &lt;a href=&#34;https://micro.blog/&#34;&gt;Micro.Blog&lt;/a&gt; quickly became my favorites. They both come with their own pros and cons, but neither is a perfect fit for me.&lt;/p&gt;
&lt;p&gt;But that’s one of the cool things about the blogosphere. I regularly read &lt;a href=&#34;https://robertbirming.com&#34;&gt;Robert’s blog&lt;/a&gt; (and if you don’t yet, you should), and he recently switched from Micro.blog to Bear — or at least, that’s what I thought.&lt;/p&gt;
&lt;p&gt;I wrote him a message, and within a couple of hours I got a reply. He didn’t respond directly via email but instead published his answer as a &lt;a href=&#34;https://robertbirming.com/bear-blog-micro-blog/&#34;&gt;blog post&lt;/a&gt;. (Love it 🧡)&lt;/p&gt;
&lt;p&gt;Now I know, he didn’t switch, but is using both platforms for different purposes — a perfect setup for him.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://carlosacollazo.com/bear-blog-is-the-best-of-both-worlds/&#34;&gt;Carlos&lt;/a&gt; jumped in on the conversation.&lt;/p&gt;
&lt;p&gt;Reading both their posts, helped me a lot. I want something where I can easily create a draft and publish it from every device. Often, that will be a mobile device. And while that is possible for Bear, it requires me to open their website. There’s no app or indirect way to publish. I haven&amp;rsquo;t tested that properly, but it feels cumbersome. I won&amp;rsquo;t write in the web interface and having to open another app and copy stuff over &amp;hellip; I know myself. This won&amp;rsquo;t work - unfortunately.&lt;/p&gt;
&lt;p&gt;Because on the other hand, I liked the look &amp;amp; feel, the possibilities and clarity of Bear more than Micro.Blog. MB has a mobile app and thus a convinient way for publishing, photo posting is simple, but it lacks - I guess on purpose - features. Micro.Blog includes a strong “social” aspect — something I’m glad &lt;a href=&#34;https://soeren.one/2024/give-up-social-media/&#34;&gt;I reduced&lt;/a&gt;. I feel this could become a trap for me.&lt;/p&gt;
&lt;p&gt;What does that mean to me? Both are wonderful services. Thinking about it, I assume my challenge is not the tech, it’s finding that regular slot between family, work, and volunteering to sit down and write. Thank you Robert and Carlos for helping in that decision.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: On%20Blogging%20Platforms&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2025%2fon-blogging-platforms%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>2.500 electrified kilometers</title>
      <link>https://soeren.one/2025/2500km-bev/</link>
      <pubDate>Mon, 06 Oct 2025 06:00:00 +0000</pubDate>
      <guid>https://soeren.one/2025/2500km-bev/</guid>
      <description>&lt;p&gt;We bought our beloved little red car when it was three years old, and it’s been with us for the last ten years. Packing it for summer vacations became a high-level Tetris game once the little one joined the team. And as with all things that age gracefully, it started getting a few glitches. It was time for something new.&lt;/p&gt;
&lt;p&gt;We took the plunge and bought a battery electric vehicle (BEV). Knowing we’d likely drive it for at least the next decade, I just couldn’t justify burning oil in the 2030‘s.&lt;/p&gt;
&lt;p&gt;When we finally picked it up, it was just in time for our summer vacation. I felt genuinely adventurous.&lt;/p&gt;
&lt;p&gt;How far would we get on a single charge?
Would it be easy to find charging points?
Would I need to plan routes more carefully?
How much would electricity cost compared to gas?
And how would the little one handle longer, more frequent breaks?&lt;/p&gt;
&lt;p&gt;Fast-forward to today: 2,500 km on the clock. Time for a quick recap.&lt;/p&gt;
&lt;p&gt;⸻&lt;/p&gt;
&lt;p&gt;🚗 First Impressions&lt;/p&gt;
&lt;p&gt;I really like this car. We checked off many of the options hoping it won’t feel outdated in a few years, and they make a real difference — especially on long drives or in bad weather. It’s comforting when your car knows the road turns left in dense fog.&lt;/p&gt;
&lt;p&gt;⚡ The Driving Experience&lt;/p&gt;
&lt;p&gt;I love how it drives. The single-speed electric motor delivers instant power, accelerates quickly, and runs smoothly. It’s a very different experience — one I enjoy a lot, even if not everyone does.&lt;/p&gt;
&lt;p&gt;📦 Space &amp;amp; Practicality&lt;/p&gt;
&lt;p&gt;It’s larger than our old car but still far from being a full-blown SUV. Fitting in a stroller and luggage still takes some Tetris skills, but we managed to get everything in the trunk this time.&lt;/p&gt;
&lt;p&gt;🛣️ Range &amp;amp; Charging on the Autobahn&lt;/p&gt;
&lt;p&gt;On the Autobahn, we get around 250 km per charge. That sounds terrible, but it really isn’t (let’s see if I still say that in a few months). We usually stop every two to two and a half hours anyway. With a fast DC charger, a 25-minute stop is enough — just enough time for a toilet break, a coffee, and a check-in with the little one.&lt;/p&gt;
&lt;p&gt;🔌 Charging Infrastructure&lt;/p&gt;
&lt;p&gt;There are many ways to recharge in Central Europe. Some stations appeared available but turned out to be out of order — still, there was always an alternative nearby. At least, theoretically…&lt;/p&gt;
&lt;p&gt;💸 The Pricing Chaos&lt;/p&gt;
&lt;p&gt;Here’s where it gets frustrating. The pricing system feels like a scam.&lt;/p&gt;
&lt;p&gt;Different operators? Fine.
Different prices? Also fine.
But different prices depending on how you pay? Not fine.&lt;/p&gt;
&lt;p&gt;The difference can be up to 300%. We saw chargers where we paid around €0.40/kWh with one card, €1.00 if we used a credit card, and €1.20 with another charging card we also own. Imagine going to a gas station and paying double just because you used Amex instead of Visa.&lt;/p&gt;
&lt;p&gt;⸻&lt;/p&gt;
&lt;p&gt;All in all, I’m happy with the switch. It’s a new kind of adventure — quieter, cleaner, and oddly more fun. Let’s see where the next 10 years take us.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: 2.500%20electrified%20kilometers&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2025%2f2500km-bev%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Into Venice, at Last</title>
      <link>https://soeren.one/2025/ven_day8/</link>
      <pubDate>Fri, 29 Aug 2025 05:00:00 +0000</pubDate>
      <guid>https://soeren.one/2025/ven_day8/</guid>
      <description>&lt;p&gt;The final 60 km.&lt;/p&gt;
&lt;p&gt;When we look in the mirror in the morning, we look as exhausted as we feel. Body done. Mind done. We can’t even remember simple things like our room number.&lt;/p&gt;
&lt;p&gt;We often think back to the &lt;a href=&#34;https://soeren.one/tags/e5&#34;&gt;E5&lt;/a&gt; hike and are convinced it felt less exhausting than this.&lt;/p&gt;
&lt;p&gt;The last stage is physically draining – tired legs, burning saddle pain, every pedal stroke hurts. But what really makes it miserable is the route: busy main roads, trucks passing with centimeters to spare, terrible bike paths, traffic lights. Progress is slow.&lt;/p&gt;
&lt;p&gt;As if that weren’t enough, D gets a flat tire. Later, when a fallen tree blocks the bike path and we push the bikes around it, I scrape my calf bloody on the pedal.&lt;/p&gt;
&lt;p&gt;First relief: the town sign for Mestre.&lt;/p&gt;
&lt;p&gt;What I didn&amp;rsquo;t see coming was that it&amp;rsquo;s another 45 minutes from there to Venice.&lt;/p&gt;
&lt;p&gt;We finally arrive, completely spent. Take a photo. Then all we want is the train station, food, and home.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;13.jpeg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;At McDonald’s we spend 45€ and order what feels like everything on the menu. Slowly, things improve. A quick wash, fresh clothes – and we realize just how exhausted we really are.&lt;/p&gt;
&lt;p&gt;Italian train stations reveal the platform only 30 minutes before departure. We wait in the hall. Platform 6 appears. We haul the bikes there because the elevators are blocked by seniors with suitcases.&lt;/p&gt;
&lt;p&gt;Then a cyclist next to us starts carrying his tandem back down. I think: he must be on our train. We check again – platform change. So we carry everything down and back up again. We didn&amp;rsquo;t need that.&lt;/p&gt;
&lt;p&gt;We’ve been longing for the return journey: comfortable seats, air conditioning, barrier-free access – all promised by ÖBB.&lt;/p&gt;
&lt;p&gt;What we get is an ancient train. No AC. It’s a thousand degrees inside. Three narrow steps to get in. The “bike compartment” is just a container inside the train.&lt;/p&gt;
&lt;p&gt;LOL. Seven long hours ahead.&lt;/p&gt;
&lt;p&gt;We arrive at D&amp;rsquo;s place around midnight. It&amp;rsquo;s been one of the hardest things we did - but a great story. During breakfast the next morning, we already discuss what we can do next.&lt;/p&gt;


&lt;div class=&#34;alert-box note&#34;&gt;
  &lt;p&gt;&lt;strong&gt;Statistics&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Distance: 65km&lt;/li&gt;
&lt;li&gt;Elevation: 100Hm &lt;strong&gt;(!!)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Into%20Venice%2c%20at%20Last&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2025%2fven_day8%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Longest Day, Longest Descent</title>
      <link>https://soeren.one/2025/ven_day7/</link>
      <pubDate>Thu, 28 Aug 2025 05:00:00 +0000</pubDate>
      <guid>https://soeren.one/2025/ven_day7/</guid>
      <description>&lt;p&gt;Descent day. And the longest stage: 130 km.&lt;/p&gt;
&lt;p&gt;We ride from the Dolomites – the highest point of the tour –  to Conegliano, which sits at 60 meters above sea level.&lt;/p&gt;
&lt;p&gt;The first two kilometers are rough: the bike path goes uphill on coarse gravel. We switch to the road and then roll easily downhill for the next 20 km.&lt;/p&gt;
&lt;p&gt;There’s occasional drizzle. After about 50 km and a beautiful descent on the SS51, we stop to wait out the first heavier rain.&lt;/p&gt;
&lt;p&gt;After that, it gets harder again. Even though it’s mostly downhill, the day still adds up to around 1,000 meters of climbing. The legs are tired.&lt;/p&gt;
&lt;p&gt;We get soaked at least once, but our clothes dry surprisingly quickly.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;11.jpeg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;The last 40 km are the toughest. Purely a mental game. Counting down kilometers.&lt;/p&gt;
&lt;p&gt;At 3:30 p.m. we reach the hotel – just in time before the sky completely opens up. On our evening walk to the supermarket, we get drenched again. Thunderstorms rage through the night.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;12.jpeg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;


&lt;div class=&#34;alert-box note&#34;&gt;
  &lt;p&gt;&lt;strong&gt;Statistics&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Distance: 130km&lt;/li&gt;
&lt;li&gt;Elevation: 1.000Hm&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Longest%20Day%2c%20Longest%20Descent&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2025%2fven_day7%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Endless Climbing in the Dolomites</title>
      <link>https://soeren.one/2025/ven_day6/</link>
      <pubDate>Wed, 27 Aug 2025 05:00:00 +0000</pubDate>
      <guid>https://soeren.one/2025/ven_day6/</guid>
      <description>&lt;p&gt;The toughest day for me. Probably because the legs are already tired and the body feels drained.&lt;/p&gt;
&lt;p&gt;Around 80 km of constant climbing. Hardly any time to roll or rest – just steady pedaling. The elevation profile feels like exponential growth.&lt;/p&gt;
&lt;p&gt;At least the weather holds, except for the last 10 minutes when we get completely soaked. We eat a surprisingly good döner on the way and catch a glimpse of the &amp;ldquo;&lt;a href=&#34;https://en.wikipedia.org/wiki/Tre_Cime_di_Lavaredo&#34;&gt;Tre Cime&lt;/a&gt;&amp;rdquo; through the mist.&lt;/p&gt;
&lt;p&gt;The hotel is the most expensive of the trip and also the simplest: camp beds, tiny room, half-broken toilet flush. Dinner is buffet-only for 25€ per person. Risotto and soup are good, tiramisu is tasty (and probably store-bought). The rest is &amp;hellip; meh.&lt;/p&gt;
&lt;p&gt;German TV channels are becoming rare. We watch a terrible medical drama.&lt;/p&gt;
&lt;p&gt;The shock moment of the day is a call from home: the little one has swallowed a coin. We try to stay awake until the result comes in, then fall asleep almost instantly.&lt;/p&gt;


&lt;div class=&#34;alert-box note&#34;&gt;
  &lt;p&gt;&lt;strong&gt;Statistics&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Distance: 85km&lt;/li&gt;
&lt;li&gt;Elevation: 1.300Hm&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Endless%20Climbing%20in%20the%20Dolomites&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2025%2fven_day6%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Over the Brenner</title>
      <link>https://soeren.one/2025/ven_day5/</link>
      <pubDate>Tue, 26 Aug 2025 05:00:00 +0000</pubDate>
      <guid>https://soeren.one/2025/ven_day5/</guid>
      <description>&lt;p&gt;No breakfast at the hotel, so we start by riding 4 km uphill to an M-Preis.&lt;/p&gt;
&lt;p&gt;Today is Brenner day: 30 km up, 30 km down.&lt;/p&gt;
&lt;p&gt;Yes, it’s tiring – but compared to yesterday, it feels manageable. The Brenner as a goal pulls us forward.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;7.jpeg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;We pedal steadily up the old Roman road and reach the pass around midday. Espresso on the Italian side, baguette in hand.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;8.jpeg&#34; alt=&#34;&#34;&gt;
&lt;img src=&#34;9.jpeg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;The descent along the old railway line is fantastic: well built, not too steep, pure rolling joy.&lt;/p&gt;
&lt;p&gt;Komoot tries to send us onto a trail at one point. We ignore it. At a road crossing it wants us to turn left while the bike path goes straight. We ask other cyclists and decide on left. Bad idea. Suddenly there’s a sign: “Bicycles prohibited – footpath only.” We carefully continue anyway, along a narrow gravel trail barely wide enough for a single pedestrian.&lt;/p&gt;
&lt;p&gt;We make a mental note to report this to OpenStreetMap.&lt;/p&gt;
&lt;p&gt;From there it’s smooth riding to Sterzing and on toward Brixen. We stay just before Brixen at the Sachsenklemme – a beautiful historic building with excellent pizza.&lt;/p&gt;
&lt;p&gt;At 8 p.m., we collapse into bed.&lt;/p&gt;
&lt;p&gt;Completing this day, we&amp;rsquo;re at more than 300km and almost 4.000Hm. The next days will bring another 280km and ~2.400Hm.&lt;/p&gt;


&lt;div class=&#34;alert-box note&#34;&gt;
  &lt;p&gt;&lt;strong&gt;Statistics&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Distance: 65km&lt;/li&gt;
&lt;li&gt;Elevation: 950Hm&lt;/li&gt;
&lt;li&gt;SoC: 50%&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Over%20the%20Brenner&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2025%2fven_day5%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Isar Spring and into Innsbruck</title>
      <link>https://soeren.one/2025/ven_day4/</link>
      <pubDate>Mon, 25 Aug 2025 05:00:00 +0000</pubDate>
      <guid>https://soeren.one/2025/ven_day4/</guid>
      <description>&lt;p&gt;We sleep well and enjoy a good breakfast while planning the day. Komoot shows that the Isar spring is only 13 km and 200 meters of elevation from our hotel. Since we only have 40 km planned (remember the &lt;a href=&#34;https://soeren.one/2025/ven_day2&#34;&gt;booking chaos?&lt;/a&gt;), we decide to go for it – especially because we can leave the luggage and pick it up on the way back.&lt;/p&gt;
&lt;p&gt;Without panniers, the bikes finally feel agile again. And the detour is incredible. Truly beautiful, almost untouched nature. It feels like riding through the wilderness of Red Dead Redemption – even though the cows remind us it’s still a cultural landscape.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;5.jpeg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;Back at the hotel, we load the bikes and start the main route. It’s tougher than expected, and splitting the stage turns out to be a very good idea.&lt;/p&gt;
&lt;p&gt;After some steady climbing through the forest, we hope for a smooth asphalt descent into the Inn valley. Instead, we get the hardest section of the entire trip so far: 600 meters down on loose, coarse gravel. Brakes glowing, wheels skidding – mentally and physically exhausting. I’m not convinced this should be a bike path.&lt;/p&gt;
&lt;p&gt;Down by the Inn things improve dramatically. We stock up at an M-Preis in Zirl – a place we also stopped at last year with the camper – and then ride a perfectly built bike path alongside the highway into Innsbruck.&lt;/p&gt;
&lt;p&gt;Iller, Isar, Inn – the three “I” rivers are complete.&lt;/p&gt;
&lt;p&gt;Then the final sting: the last 5 km climb from Innsbruck to Igls, 300 meters up. Brutally steep. We stop from parking bay to parking bay to get our heart rates down. I have no idea how D does this without a motor.&lt;/p&gt;
&lt;p&gt;We arrive completely spent. Shower, food from the Spar, a quick attempt at the hotel pool (way too cold), then a short sauna session.&lt;/p&gt;
&lt;p&gt;In the room, we really hope the next days will be easier.&lt;/p&gt;


&lt;div class=&#34;alert-box note&#34;&gt;
  &lt;p&gt;&lt;strong&gt;Statistics&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Distance: 70km&lt;/li&gt;
&lt;li&gt;Elevation: 900Hm&lt;/li&gt;
&lt;li&gt;SoC: 30% (didn&amp;rsquo;t charge on the previous evening)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Isar%20Spring%20and%20into%20Innsbruck&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2025%2fven_day4%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Plansee, Gravel, and the Isar</title>
      <link>https://soeren.one/2025/ven_day3/</link>
      <pubDate>Sun, 24 Aug 2025 05:00:00 +0000</pubDate>
      <guid>https://soeren.one/2025/ven_day3/</guid>
      <description>&lt;p&gt;A relaxed start thanks to yesterday’s booking chaos. Today, we ride 60 km instead of 100. Check-in isn’t until 4 p.m., so we sleep in, have breakfast, and pack slowly.&lt;/p&gt;
&lt;p&gt;Despite that, we’re on the bikes shortly after 9, under a bright blue sky. First goal: Lake Plansee. That means a serious climb – but the view is absolutely stunning.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;3.jpeg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;At the end of the lake we take our first break, then descend on gravel. Tricky. After that, more or less decent bike paths take us toward Garmisch.&lt;/p&gt;
&lt;p&gt;During the second break we try to figure out which mountain is the Zugspitze. We’re never entirely sure.&lt;/p&gt;
&lt;p&gt;Next climb: Mittenwald. Long and draining rather than super steep. At the top, cola and a few minutes off the saddle.&lt;/p&gt;
&lt;p&gt;The last 15 km run alongside a road. Many drivers overtake properly with plenty of space. Some, though, pass with just centimeters to spare – hard to understand why.&lt;/p&gt;
&lt;p&gt;The final stretch on the Isar bike path is beautiful along the Karwendel, but rough to ride: coarse gravel and potholes.&lt;/p&gt;
&lt;p&gt;We arrive at the hotel at 2 p.m. Only the cleaning staff are there, so we sit in the garden with ice cream and wait.&lt;/p&gt;
&lt;p&gt;In the evening we stroll through the village, eat burgers, and watch the surprisingly entertaining movie Meg 2. (We laughed at lot, probably not at the intended scences)&lt;/p&gt;


&lt;div class=&#34;alert-box note&#34;&gt;
  &lt;p&gt;&lt;strong&gt;Statistics&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Distance: 60km&lt;/li&gt;
&lt;li&gt;Elevation: 600Hm&lt;/li&gt;
&lt;li&gt;SoC: 70%&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Plansee%2c%20Gravel%2c%20and%20the%20Isar&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2025%2fven_day3%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Cold Starts and Booking Chaos</title>
      <link>https://soeren.one/2025/ven_day2/</link>
      <pubDate>Sat, 23 Aug 2025 05:00:00 +0000</pubDate>
      <guid>https://soeren.one/2025/ven_day2/</guid>
      <description>&lt;p&gt;I wake up at 5:30 a.m. Body clock. Breakfast around 7:30, chatting and packing. We roll out around 9.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;1.jpeg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;It’s much colder than expected. Cloudy all day, never really warming up. Freezing in August – not something I had anticipated.&lt;/p&gt;
&lt;p&gt;My Wahoo refuses to find GPS all day and is basically useless. Later I’ll learn it’s a bug due to be fixed soon. We rely on D&amp;rsquo;s phone and Komoot instead.&lt;/p&gt;
&lt;p&gt;The first 20 km along the Iller river are easy but feel hard because we can’t get warm. The next 25 km are great. Then come 10 brutally tough kilometers where I seriously wonder how we’re supposed to manage another 50.&lt;/p&gt;
&lt;p&gt;Before the next climb we stop. D eats pizza, I go for pasta. Carbs work miracles – after that, things improve noticeably.&lt;/p&gt;
&lt;p&gt;The cloudy weather hides most of the mountain panorama, which is a shame.&lt;/p&gt;
&lt;p&gt;On the last 20 km, disaster: I lose a screw from my right cleat while unclipping. We search for 20 minutes and call several nearby bike shops – no luck. In the end, we tighten the remaining screw as much as possible and set the pedal very loose. Hopefully it holds. (It did)&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;2.jpeg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;After 105 km we reach the Tannenhof in Reutte – or so we think. Turns out we left a day too early. Our reservation is for Sunday night. Today is Saturday.&lt;/p&gt;
&lt;p&gt;Attempt one: the receptionist looks for an alternative. Booking.com shows “only one room left,” so I book it immediately. We ride there, try to check in &amp;hellip; and another downer. The lady apologizes: she hadn’t checked her emails and just gave the room to the couple right in front of us.&lt;/p&gt;
&lt;p&gt;Third attempt, D calls – success. Finally.&lt;/p&gt;
&lt;p&gt;We store the bikes in a shipping container with power outlets, shower, and rethink our plans. All bookings are now a day off. We decide to split the next day. Two very short days, but after that we’ll be back on schedule.&lt;/p&gt;
&lt;p&gt;Dinner at a nearby restaurant, then we fall asleep in front of the TV.&lt;/p&gt;


&lt;div class=&#34;alert-box note&#34;&gt;
  &lt;p&gt;&lt;strong&gt;Statistics&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Distance: 110km&lt;/li&gt;
&lt;li&gt;Elevation: 1.500Hm&lt;/li&gt;
&lt;li&gt;SoC: 60%&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Cold%20Starts%20and%20Booking%20Chaos&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2025%2fven_day2%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Train Delays, and a Soft Landing</title>
      <link>https://soeren.one/2025/ven_day1/</link>
      <pubDate>Fri, 22 Aug 2025 05:00:00 +0000</pubDate>
      <guid>https://soeren.one/2025/ven_day1/</guid>
      <description>&lt;p&gt;“I’m nervous,” D texts me just after 6 a.m. Same here. Today, I work half a day, then take the train to D. The actual tour starts tomorrow.&lt;/p&gt;
&lt;p&gt;In the afternoon, I finally get going – and immediately things get complicated. I consider taking an earlier train to have more buffer time for changing, completely forgetting about the contruction. The earlier train doesn’t exist. Twenty minutes waiting on the platform on the train I wanted to take anyway.&lt;/p&gt;
&lt;p&gt;Then the ICE from Stuttgart is so delayed, I’d miss my connection anyway. Plan change: I switch in Cannstatt and take the regional train. According to the app, it’s still faster that way.&lt;/p&gt;
&lt;p&gt;Everything works out. Luckily, I had the ICE ticket – in Bavaria, bikes apparently do need a ticket after all.&lt;/p&gt;
&lt;p&gt;D picks me up at the station and we ride to their place together.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Train%20Delays%2c%20and%20a%20Soft%20Landing&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2025%2fven_day1%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Anticipation &amp; Overpacking</title>
      <link>https://soeren.one/2025/ven_day0/</link>
      <pubDate>Thu, 21 Aug 2025 05:00:00 +0000</pubDate>
      <guid>https://soeren.one/2025/ven_day0/</guid>
      <description>&lt;p&gt;The excitement is building. Tomorrow we leave for Venice. As if that weren’t enough, yesterday the car dealer emailed to say that our new car is on its way and will be ready for pickup right after I return from the trip. Two big projects about to start at the same time.&lt;/p&gt;
&lt;p&gt;I’m really looking forward to the bike tour – but I’m also pretty nervous. I’ve never ridden this far, this long, on consecutive days. D has logged roughly twice as many training kilometers this year as I have. And despite multiple rounds of sorting things out, my packed gear still feels like too much.&lt;/p&gt;
&lt;p&gt;I weighed everything roughly:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1.8kg clothing (1x bike wear, something comfy for the evening, bathing cloths, towel)&lt;/li&gt;
&lt;li&gt;1.2kg hygiene (toothbrush &amp;amp; co, shampoo, sun screen)&lt;/li&gt;
&lt;li&gt;1.2kg food (power bars &amp;amp; gels)&lt;/li&gt;
&lt;li&gt;1.2kg chargers (phone &amp;amp; bike)&lt;/li&gt;
&lt;li&gt;1.0kg rain convering (jacket, shoe cover, warm layer)&lt;/li&gt;
&lt;li&gt;0.5kg tools&lt;/li&gt;
&lt;li&gt;0.3kg first aid&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I end up at around 10 kg. More than I expected. Over a kilo just for chargers alone feels absurd – although most of that is the e-bike charger. Still.&lt;/p&gt;
&lt;p&gt;Food is another question mark. I packed everything we still had at home; it’ll get lighter day by day, and maybe I’ll leave some things behind tomorrow morning. Tools we’ll consolidate so we only carry one set. Hopefully that trims things down a bit.&lt;/p&gt;
&lt;h2 id=&#34;packing-list-learnings&#34;&gt;Packing List Learnings&lt;/h2&gt;
&lt;p&gt;After the tour, I checked what I really used during the trip and noted:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;for the afternoon and evening, I had a short trouser packed. I mean, it&amp;rsquo;s August and Italy, it&amp;rsquo;s supposed to be warm. This is need do change next time, definitely bring long causal pants&lt;/li&gt;
&lt;li&gt;a second bib short was &lt;strong&gt;not&lt;/strong&gt; necessary. This may be different if there would have been more rain, but we could wash it out in the evening and it was dry the next morning.&lt;/li&gt;
&lt;li&gt;Bring a real towel. I DONT LIKE THOSE FANCY FAST-DRYING SPORT TOWELS&lt;/li&gt;
&lt;li&gt;If you stay at hotels, very very little shower gel is needed. Hotels usually provide this&lt;/li&gt;
&lt;li&gt;A rain poncho would have been nice&lt;/li&gt;
&lt;li&gt;otherwise, we used almost everything - the list was solid&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Anticipation%20%26%20Overpacking&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2025%2fven_day0%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>F1 Haptic Trailer</title>
      <link>https://soeren.one/2025/haptic-trailer/</link>
      <pubDate>Fri, 13 Jun 2025 06:00:00 +0000</pubDate>
      <guid>https://soeren.one/2025/haptic-trailer/</guid>
      <description>&lt;p&gt;Today, I saw the new &lt;a href=&#34;https://tv.apple.com/se/clip/haptic-trailer/umc.cmc.5834l80x7lpxvb1wqiz7uvgj7?targetId=umc.cmc.3t6dvnnr87zwd4wmvpdx5came&amp;amp;targetType=Movie&#34;&gt;&lt;em&gt;haptic&lt;/em&gt; trailer&lt;/a&gt; for the F1 movie. Not being the biggest F1 fan, this trailer - watched on a compatible iPhone - feels immersive. Recommendation!&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: F1%20Haptic%20Trailer&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2025%2fhaptic-trailer%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>My Blogging Workflow as of mid 2025</title>
      <link>https://soeren.one/2025/blogging-workflow-mid-2025/</link>
      <pubDate>Sun, 08 Jun 2025 05:00:00 +0000</pubDate>
      <guid>https://soeren.one/2025/blogging-workflow-mid-2025/</guid>
      <description>&lt;p&gt;Recently, &lt;a href=&#34;https://birming.com/2025/06/05/my-blogging-workflow/&#34;&gt;Robert wrote&lt;/a&gt; about his updated blogging workflow. A good opportunity to update mine, too.&lt;/p&gt;
&lt;p&gt;I wrote about my blogging workflow in &lt;a href=&#34;https://soeren.one/2020/hugo-blogging-ipad/&#34;&gt;2020&lt;/a&gt; and &lt;a href=&#34;https://soeren.one/2023/blogging-workflow-2023/&#34;&gt;2023&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Not much has changed since 2023. I use &lt;a href=&#34;https://soeren.one/tags/hugo/&#34;&gt;hugo&lt;/a&gt; for this &lt;a href=&#34;https://soeren.one/tags/blog/&#34;&gt;blog&lt;/a&gt;, hosted in a repository on &lt;a href=&#34;https://soeren.one/tags/uberspace&#34;&gt;uberspace&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To create a new article, I &amp;hellip;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;take my iPhone.&lt;/strong&gt; I would love to write more on the Mac but noticed that after long working days I barely want to spend more time in front of a  „computer“.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;go through Reminders &amp;amp; Notes.&lt;/strong&gt; The 2023 article mentioned that I‘ll try out obsidian for draft creation - which I did and dumped again. Apple Notes is available on all my devices, convenient and thus my choice for creating drafts for blob articles. Reminders came in recently. An article from &lt;a href=&#34;https://flip.de/bye-bye-pocket/&#34;&gt;flip.de&lt;/a&gt; recommended using an iOS Shortcut in combination with a reminders list as an alternative to Pocket (the meanwhile shut-down read-later app). When I find something interesting on web, I use the shortcut to create the „read-later-reminder“ and when I am in the mood for writing, I go through that list and create a draft in Notes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;create bullet points in German.&lt;/strong&gt; Within the note, I start by creating bullet points in German. Although the blog is in English, I find it easier to create the initial draft in German. The 2023 version mentioned that a draft can stay multiple days, weeks or even months in this state - but this is no longer the case, as long as I am not interrupted during the flow.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;write paragraphs.&lt;/strong&gt; Once the initial idea for the type is layer out, I copy them over to iA writer, create the front matter (title, tags, etc.) and start writing - English - paragraphs. I do one (!) proof read iteration.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;start the git magic.&lt;/strong&gt; iA saves the markdown in the local version of the git repository created by the Working Copy app. I open Working Copy, hit „commit &amp;amp; push“ and wait a few seconds. &lt;a href=&#34;https://soeren.one/2019/hugo-mit-git-auf-uberspace-benutzen/&#34;&gt;Here&lt;/a&gt;, I wrote about the post-hook that builds the blog after every commit.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Done&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For me, this works and I noted that more complex (proof-reading and validation) procedures lead to not writing at all. A downside of this process is that the first time I see how the post will look is when it‘s available on the website. Thus, there is often a second iteration of steps 4 and 5, where I fix typos, add missing links or headings. Then, it’s really done 😅&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: My%20Blogging%20Workflow%20as%20of%20mid%202025&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2025%2fblogging-workflow-mid-2025%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Cycling to the Venice</title>
      <link>https://soeren.one/2025/ven1/</link>
      <pubDate>Thu, 05 Jun 2025 05:00:00 +0000</pubDate>
      <guid>https://soeren.one/2025/ven1/</guid>
      <description>&lt;p&gt;I have quite a „sporty“ summer coming up.&lt;/p&gt;
&lt;p&gt;First, I will run another 10k in July. The plan is to be a bit faster than in January - where I finished after 59min, achieving my goal to be faster than one hour.&lt;/p&gt;
&lt;p&gt;Training progress so far: almost 0.&lt;/p&gt;
&lt;p&gt;It will be fun.&lt;/p&gt;
&lt;p&gt;Good thing is, that I am not very invested in this. If I will be slower I will be less satisfied but nevertheless be proud to have finished at all.&lt;/p&gt;
&lt;p&gt;My running training falls short, because at the same time I am preparing for a big cycling tour. Together with my brother in law, I plan to cycle from my home to Venice, Italy.&lt;/p&gt;
&lt;p&gt;Venice itself is not the goal - with the bikes we probably won‘t go to the city at all - we want to have a trip together across the alps.&lt;/p&gt;
&lt;p&gt;Naive as ever, we spoke about it, booked some hotels and forgot about it. When we met over the Easter holidays, we fine tuned the route, resulting in this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Day 0:&lt;/strong&gt; roughly 130km, for me, cycling to where my brother in law lives.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Day 1:&lt;/strong&gt; 95km and 1.000Hm&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Day 2:&lt;/strong&gt; 95km and 1.700Hm&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Day 3:&lt;/strong&gt; 65km and 1.300Hm&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Day 4:&lt;/strong&gt; 82km and 1.300Hm&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Day 5:&lt;/strong&gt; 130km and 1.000Hm&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Day 6:&lt;/strong&gt; 65km and 100Hm&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In total: roughly 530km (days 1 to 6) and 6.500Hm&lt;/p&gt;
&lt;p&gt;I am not particularly afraid of the 100km per day but the distance in total and the uphill part, especially on day 2.&lt;/p&gt;
&lt;p&gt;I think about how to best prepare for both events. My Garmin Watch doesn’t provide a training plan for this out of the box. I talked to a friend and he recommended using ChatGPT. Which I did.&lt;/p&gt;
&lt;p&gt;I am „ok“ satisfied with the result. The proposal basically was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 „long-run“ per week&lt;/li&gt;
&lt;li&gt;2 shorter „runs“&lt;/li&gt;
&lt;li&gt;2 „relaxing runs“&lt;/li&gt;
&lt;li&gt;1 or 2 resting days&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And shifting the focus from running to cycling the closer we come to July.&lt;/p&gt;
&lt;p&gt;As always, I find it hard to free-up regular slots in the calendar for 4 or 5 training events per week. What was working best in the past, was directly putting on sport cloths in the morning and directly after dropping the little one at childcare start the training session. This worked fine for sessions up to an hour, but a „long run“ for cycling should be 50-75km as per the recommended training plan - which is rather 4 to 5 hours. I hope that I will find time and motivation in the afternoons or on the weekend.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Cycling%20to%20the%20Venice&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2025%2fven1%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Centralization</title>
      <link>https://soeren.one/2024/centralization/</link>
      <pubDate>Tue, 10 Sep 2024 12:00:00 +0000</pubDate>
      <guid>https://soeren.one/2024/centralization/</guid>
      <description>&lt;p&gt;Roughly ten years ago I ditched GMail, and started the journey of hosting important software myself. The &lt;a href=&#34;https://en.wikipedia.org/wiki/Google_Reader&#34;&gt;shutdown of Google Reader&lt;/a&gt; made it clear to me how dependent I became on Google and their services.&lt;/p&gt;
&lt;p&gt;I tried different web hosting services - but always came back to &lt;a href=&#34;https://uberspace.de&#34;&gt;uberspace&lt;/a&gt;. They are a small German company, offer SSH access to the server, have an incredible support team and their &amp;ldquo;pay what you want&amp;rdquo; policy is really great.&lt;/p&gt;
&lt;p&gt;Over the years, I hosted &lt;a href=&#34;https://miniflux.app&#34;&gt;miniflux&lt;/a&gt; as an RSS reader, &lt;a href=&#34;https://tinyurl.com&#34;&gt;tinyurl&lt;/a&gt; as an URL shortener, &lt;a href=&#34;https://nextcloud.com&#34;&gt;NextCloud&lt;/a&gt; for contacts, calendars and reminders, &lt;a href=&#34;https://ghost.org&#34;&gt;Ghost&lt;/a&gt; as a blogging software, and many more.&lt;/p&gt;
&lt;p&gt;I realised that it requires commitment to keep the lights on on all those services. I needed to check if new updates are available, run the updates, renew certificates, do OS updates on the server, &amp;hellip; For someone experienced with this not a big task, for sure, but for me it became a burden.&lt;/p&gt;
&lt;p&gt;Slowly but steadily, I started using managed software again.&lt;/p&gt;
&lt;p&gt;Today, I use iCloud as the backend for my RSS feeds (although I am not super happy with performance), my calendars, contacts, and reminders. It just works and is something less I need to take care off. Thinking about it, I think email and this blog are the only services that I have not yet handed over to one of the big companies again.&lt;/p&gt;
&lt;p&gt;Of course I am aware that I am dependent on providers - again - and especially get more and more caught in the walled garden that Apple so nicely creates for us. For now, it works for me.&lt;/p&gt;
&lt;p&gt;I have changed my tech stack multiple times in the past. It could very well be that at some point my personal evaluation between comfort and dependency swings in the other direction and I&amp;rsquo;ll start hosting once more.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href=&#34;https://garrit.xyz/types/2024-05-24-going-from-self-hosted-to-managed-software?utm_source=rss&#34;&gt;Garrit has similar thoughts&lt;/a&gt;.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Centralization&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2024%2fcentralization%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>On To-Do Management</title>
      <link>https://soeren.one/2024/to-do/</link>
      <pubDate>Thu, 05 Sep 2024 06:00:00 +0000</pubDate>
      <guid>https://soeren.one/2024/to-do/</guid>
      <description>&lt;p&gt;About a week ago, I read the blog types from &lt;a href=&#34;https://andy-bell.co.uk/just-fucking-use-paper-man/?ref=birchtree.me&#34;&gt;Andy&lt;/a&gt; and &lt;a href=&#34;https://birchtree.me/blog/ive-heard-this-story-before/&#34;&gt;Birchtree&lt;/a&gt; on To-Do Apps.&lt;/p&gt;
&lt;p&gt;Andy wrote that he&amp;rsquo;s given up on fancy apps and just uses simple paper &amp;amp; pencil to organise his todos.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I’ve given up this week and gone back to paper and a pencil and I feel unbelievably organised and flexible, day-to-day.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In his reply, Birchtree points out that he read articles like this a lot before. Being just a couple of days into a new workflow barely feels odd (otherwise you wouldn&amp;rsquo;t have changed the workflow or blogged about it).&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“I thought I needed a task manager, but actually pen and paper are more than enough”; “An iPad does everything I need from a computer”; “I only use the built-in apps on my phone and I’m fine”; Insert whatever example of someone moving to something that’s less powerful or less polished&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I can agree with both and my personal to-do management is a mix of simple and fancy.&lt;/p&gt;
&lt;p&gt;I use Reminders (personal) and Todo (work) for the overall todo management. Whenever I think of a task, I note it in the app - being sure that I won&amp;rsquo;t forget it or write it on a piece of paper that lands in the trash before I completed the task. I also use the app to add recurring tasks.&lt;/p&gt;
&lt;p&gt;However, when it comes to planning the current day, I use a blank piece of paper, open the app and copy the tasks I want to do today.&lt;/p&gt;
&lt;p&gt;This gives me the flexibility to easily add and complete tasks during the day. With the only overhead that I need to &amp;ldquo;sync back&amp;rdquo; completions to the app in the evening or the next morning.&lt;/p&gt;
&lt;p&gt;I will continue to read Andy&amp;rsquo;s blog and see what his learnings will be. Maybe he finds a trick or two that I can add to my workflow as well.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: On%20To-Do%20Management&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2024%2fto-do%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Rituals</title>
      <link>https://soeren.one/2024/rituals/</link>
      <pubDate>Thu, 22 Aug 2024 17:00:00 +0000</pubDate>
      <guid>https://soeren.one/2024/rituals/</guid>
      <description>&lt;p&gt;This article is part of the &lt;a href=&#34;https://indieweb.org/indieweb-carnival&#34;&gt;IndiWeb Carnival&lt;/a&gt; for August 2024, with the topic &lt;em&gt;Rituals&lt;/em&gt;. Thanks, Steve, for &lt;a href=&#34;https://tangiblelife.net/indieweb-carnival-rituals&#34;&gt;hosting it&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;This is the first time I am participating in the Indiweb Carnival. Rituals seemed like an easy topic to discuss. I wanted to write something about Christmas and how we usually spend Christmas Eve, but it got me thinking a lot in the last few days. Good topic, Steve. 😄&lt;/p&gt;
&lt;p&gt;The question I have been racking my brain about is: do I do &lt;strong&gt;rituals&lt;/strong&gt; - do I rather keep &lt;strong&gt;traditions&lt;/strong&gt; - or do I just have &lt;strong&gt;routines&lt;/strong&gt;?&lt;/p&gt;
&lt;p&gt;What I found out quickly is that I am not the only one asking this question. A quick DuckDuckGo research revealed a couple of websites comparing the terms.&lt;/p&gt;
&lt;p&gt;Now, I know that a ritual is &lt;em&gt;a set of actions or ceremonies performed in a specific order and manner&lt;/em&gt; (&lt;a href=&#34;https://thisvsthat.io/ritual-vs-tradition&#34;&gt;Source&lt;/a&gt;). Typically, they are formalized practices (repeatedly) performed at specific events and often loaded with symbolic meaning - like religious ceremonies, social gatherings or the marking of important life events. In a broader definition, rituals can include personal daily routines. Tradition is the broader term. It describes the passing of beliefs or behaviors from generation to generation. Rituals can be part of a tradition.&lt;/p&gt;
&lt;p&gt;Before researching this, I had the feeling that a ritual always has a religious connotation - and thus I was wondering &lt;a href=&#34;https://tangiblelife.net/rituals&#34;&gt;why Steve wrote about coffee&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Now, I understand that, while often performed in religious contexts, a ritual can also be a daily routine that provides a sense of order and predictability. Knowing this, I can totally understand Steve. While I am not that deep in the coffee rabbit hole - I do not measure beans by the gram nor stop the time the water needs to pour through the coffee - making myself a cup of fresh coffee with the portafilter is something that gives me a break in a stressful working day.&lt;/p&gt;
&lt;p&gt;With this in mind, I consider the term ritual to mean something you do repeatedly to make yourself feel good. I don’t see a negative connotation (to answer at least one of Steve&amp;rsquo;s questions).&lt;/p&gt;
&lt;p&gt;This means that my daily rituals include coffee brewing, but when I now think of my rituals, I think of dedicated family time. My family lives all across the country, we barely meet spontaneously. A few years ago, we decided to spend one week around the Easter holidays together. What others try to fit in on Christmas Eve, we aim to get from a longer time in a less stressful time of the year. This really works well, and I am always looking forward to the next repetition. 238 days to go.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Rituals&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2024%2frituals%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>CO2 consumption</title>
      <link>https://soeren.one/2024/blog-co2-consumption/</link>
      <pubDate>Wed, 21 Aug 2024 12:00:00 +0000</pubDate>
      <guid>https://soeren.one/2024/blog-co2-consumption/</guid>
      <description>&lt;p&gt;I recently wrote about &lt;a href=&#34;https://soeren.one/2024/electricity-consumption-update1&#34;&gt;how much energy we consume&lt;/a&gt; at home. And while I was in the mood, I started looking for similar statistics for running this blog.&lt;/p&gt;
&lt;p&gt;I couldn&amp;rsquo;t find reliable information about the entire energy consumption, but I stumbled upon a &lt;strong&gt;CO2 calculator&lt;/strong&gt;. Not exactly what I was looking for, but interesting nonetheless (especially since I saw some cool kids typeing this on their websites, too).&lt;/p&gt;
&lt;p&gt;According to websitecarbon.com, this website is cleaner than 99% and uses &lt;strong&gt;only 0.01g of CO2&lt;/strong&gt; per page visit. You can check the result &lt;a href=&#34;https://www.websitecarbon.com/website/gluecko-se/&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It feels good to be on the greener side. ♻️&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: CO2%20consumption&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2024%2fblog-co2-consumption%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Electricity Consumption - Update</title>
      <link>https://soeren.one/2024/electricity-consumption-update1/</link>
      <pubDate>Tue, 20 Aug 2024 17:00:00 +0000</pubDate>
      <guid>https://soeren.one/2024/electricity-consumption-update1/</guid>
      <description>&lt;p&gt;We moved to a &amp;ldquo;low-energy&amp;rdquo; house last year, and I was wondering if we would really need less energy than before. &lt;a href=&#34;https://soeren.one/2023/electricity-consumption/&#34;&gt;I wrote about this before&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Over the last few months, I went to the basement regularly and checked the meter. I am still aware that it&amp;rsquo;s apples vs. oranges, but I think it&amp;rsquo;s interesting to write about nevertheless.&lt;/p&gt;
&lt;p&gt;Back then, my very simple linear progression assumed that we would end up with ~1,500 kWh at the end of the year. Meanwhile, winter has passed, and we see that the electric heating and the dryer took their share. At the beginning of August, we had already consumed more than 1,200 kWh. If I extrapolate this until the end of the year, we will end up with &lt;strong&gt;~2,200&lt;/strong&gt;, which is a little more than our average last year.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://onedrive.live.com/embed?resid=273EB2087BC33FC5%216290&amp;amp;authkey=%21APcPQfS3zOfgZl0&amp;amp;width=660&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Electricity%20Consumption%20-%20Update&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2024%2felectricity-consumption-update1%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>50th Blood Donation</title>
      <link>https://soeren.one/2024/50th-blood-donation/</link>
      <pubDate>Mon, 12 Aug 2024 08:00:00 +0000</pubDate>
      <guid>https://soeren.one/2024/50th-blood-donation/</guid>
      <description>&lt;p&gt;Last week I was donating blood. At the check-in I was greeted with additional piece of paper to fill out. I may have looked a bit puzzled, because I was told that this is good news. I will get &lt;em&gt;rewarded&lt;/em&gt;&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;, because this is my &lt;strong&gt;50th Blood Donation&lt;/strong&gt; with the Red Cross.&lt;/p&gt;
&lt;p&gt;50 Blood Donations &amp;hellip;&lt;/p&gt;
&lt;p&gt;🩸🩸🩸🩸🩸🩸🩸🩸🩸🩸
🩸🩸🩸🩸🩸🩸🩸🩸🩸🩸
🩸🩸🩸🩸🩸🩸🩸🩸🩸🩸
🩸🩸🩸🩸🩸🩸🩸🩸🩸🩸
🩸🩸🩸🩸🩸🩸🩸🩸🩸🩸&lt;/p&gt;
&lt;p&gt;Since both my father and my grandfather achieved more than 100 donations, there was a bit of pressure 🙂&lt;/p&gt;
&lt;p&gt;Thus, over the past 18 years I was donating blood more or less regularly. Frequency highly depending on the availability of possibilities to donate. In the city I lived when I was 18, there was a university clinic and you could come by donating blood any day of the week. I donated a lot back then. When I moved to Bamberg to study, the Red Cross only came by once per month with a mobile donation station. If I already had plans for this day, I needed to wait for another month for the next possibility. My donation frequency dropped.&lt;/p&gt;
&lt;p&gt;In the city I live today, mobile donation units come by on a more regular basis. I need to check their schedule and plan ahead, but at least I have more than one chance per month.&lt;/p&gt;
&lt;p&gt;As a male adult, I am allowed to donate up to six times per year. This was my fourth donation this year and I think that I&amp;rsquo;ll make at least one more. Keeping this frequency (~5/y), I will need another 10 years to come up with 100. Fingers crossed 🤞&lt;/p&gt;
&lt;p&gt;If it has been some time since you donated blood the last time - and your health allows it - please check out if there is a possibility near by. We may all need it at some point and it&amp;rsquo;s a very easy way to give something back to society.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;With the Red Cross, &lt;em&gt;reward&lt;/em&gt; seldom has a financial benefit. Most likely, there will be a piece of paper stating that I donated 50 times.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: 50th%20Blood%20Donation&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2024%2f50th-blood-donation%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Fat Boy Update</title>
      <link>https://soeren.one/2024/fat-boy-update/</link>
      <pubDate>Wed, 07 Aug 2024 20:00:00 +0100</pubDate>
      <guid>https://soeren.one/2024/fat-boy-update/</guid>
      <description>&lt;p&gt;Beginning of the year, I wrote my first type about the &lt;a href=&#34;https://soeren.one/2024/fat-boy-story/&#34;&gt;&amp;ldquo;Fat Boy at 40 challenge&amp;rdquo;&lt;/a&gt;. If this is the first time you&amp;rsquo;re hearing about this, start reading there - or head directly over to &lt;a href=&#34;https://kevquirk.com/blog/fat-boy-at-40&#34;&gt;Kev&amp;rsquo;s original one&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I am six months back at work after parental leave and I think this is a good opportunity to give an update.&lt;/p&gt;
&lt;h2 id=&#34;status-quo&#34;&gt;Status Quo&lt;/h2&gt;
&lt;h3 id=&#34;weight-loss&#34;&gt;Weight Loss&lt;/h3&gt;
&lt;p&gt;During the last twelve months, &lt;strong&gt;I lost 10kg&lt;/strong&gt;. It was quicker at the beginning and flattened in the past months. I still count this a big win. I was not expecting it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://onedrive.live.com/embed?resid=273EB2087BC33FC5%216268&amp;amp;authkey=%21AGazoyK8k9xuCNI&amp;amp;width=660&#34; alt=&#34;Weight Loss&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;intermediate-fasting&#34;&gt;Intermediate Fasting&lt;/h3&gt;
&lt;p&gt;Beginning of the year, I changed my fasting schedule to &lt;em&gt;16:8&lt;/em&gt;. This didn&amp;rsquo;t last long. &lt;em&gt;14:10&lt;/em&gt; (still?) feels more natural to me. Removing one meal per day completely - hm - not as easy as I thought.&lt;/p&gt;
&lt;p&gt;I changed the tracking app. Instead of &lt;a href=&#34;https://fastic.com/&#34;&gt;Fastic&lt;/a&gt;, I use &lt;a href=&#34;https://apps.apple.com/us/app/intermittent-fasting-tracker/id6448909309?ign-mpt=uo%3D4&#34;&gt;Fasty&lt;/a&gt;. Fastic is still great, but I didn&amp;rsquo;t use most of its features and thus didn&amp;rsquo;t see a benefit in renewing my subscription.&lt;/p&gt;
&lt;h3 id=&#34;walking&#34;&gt;Walking&lt;/h3&gt;
&lt;p&gt;In the second half of 2023, I was on parental leave and went for long walks with the stroller. It was easy to average above 10.000 steps per day. Being back at work made this more difficult. I also spend more time in the car.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t want to look for excuses, but want to mention that I &lt;a href=&#34;https://soeren.one/2023/first-automatic-watch/&#34;&gt;ditched the smart watch in December&lt;/a&gt; and only rely on my phone to count my steps. As I don&amp;rsquo;t carry the phone everywhere I go (e.g. when I grab another coffee from the kitchen), I was expecting less steps in the data - even without walking less.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://onedrive.live.com/embed?resid=273EB2087BC33FC5%216269&amp;amp;authkey=%21AKKuQoCU9JFiTBI&amp;amp;width=660&#34; alt=&#34;Daily Steps&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;food-tracking&#34;&gt;Food Tracking&lt;/h3&gt;
&lt;p&gt;I still don&amp;rsquo;t track what I eat. I didn&amp;rsquo;t find an app that makes this easy for me. We cook more, and try to do this in a healthier way, but it&amp;rsquo;s still &amp;ldquo;carby&amp;rdquo;. Good news is, I overeat less often.&lt;/p&gt;
&lt;h2 id=&#34;plans-for-the-next-six-months&#34;&gt;Plans for the next six months&lt;/h2&gt;
&lt;p&gt;Although I recently &lt;a href=&#34;https://www.tagesschau.de/wissen/gesundheit/intervallfasten-100.html&#34;&gt;read an article&lt;/a&gt; that was a bit sceptic about intermediate fasting, I am still convinced that this is working very good for me. Nevertheless, I plan for some changes in the next six months.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;More Sports:&lt;/strong&gt; The article mentioned that one part of the weight loss caused by fasting is the loss muscle mass. Not good. Fasting, thus, shall be accompanied with sports. Currently, I go for &lt;a href=&#34;https://soeren.one/tags/bike/&#34;&gt;bike rides&lt;/a&gt;, but nothing regular. Beginning of the year my plan was to get up earlier to do sports. This didn&amp;rsquo;t work out. This time, I will try &lt;a href=&#34;https://thomasrigby.com/types/start-small/&#34;&gt;Thomas&amp;rsquo; approach&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Longer Fasting Periods:&lt;/strong&gt; I was thinking about doing a whole week of fasting. Feedback from friends who did this was, that it&amp;rsquo;s not fun. Thus, I will park this idea for next year. Nevertheless, I want to try longer fasting periods. My goal is to have at least two: &lt;em&gt;5:2 fasting schedules&lt;/em&gt; (five days normal eating, two days fasting) until the end of the year.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Fat%20Boy%20Update&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2024%2ffat-boy-update%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Visting EU Capitals</title>
      <link>https://soeren.one/2024/eu-capitals/</link>
      <pubDate>Wed, 07 Aug 2024 14:00:00 +0100</pubDate>
      <guid>https://soeren.one/2024/eu-capitals/</guid>
      <description>&lt;p&gt;I know it&amp;rsquo;s not perfect, but I am a fan of the European Union. Bringing people from different cultures closer together and working on solving the everyday and the bigger challenges together is a big achievement for a continent that has been at war with each other for centuries.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;United in diversity. (&lt;a href=&#34;https://european-union.europa.eu/principles-countries-history/symbols/eu-motto_en&#34;&gt;EU&lt;/a&gt;)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Experiencing this diversity is great, but it&amp;rsquo;s impossible to visit the whole union. To get at least a &lt;em&gt;taste&lt;/em&gt; of this diversity, it has been on our bucket list for a very long time to &lt;strong&gt;visit all capitals within the European Union&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;We never actively pursued this, but writing about it, may increase pressure a bit. 🙃&lt;/p&gt;
&lt;p&gt;From now on, I will use this page to track where we stand. Some of the cities we&amp;rsquo;ve been to, of course, but for the sake of this list, I&amp;rsquo;ll restart. Kind of. We were in Vienna at the beginning of the year. I&amp;rsquo;ll count that, so I don&amp;rsquo;t have to start with an empty list.&lt;/p&gt;
&lt;p&gt;Fingers crossed, I&amp;rsquo;ll also find time to write short articles about those visits and link them here.&lt;/p&gt;


&lt;div class=&#34;alert-box note&#34;&gt;
  Update 1: I marked the cities we have been visiting before.
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;We visited 1 capital as of August 2024&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Vienna, Austria | January 2024&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;The remaining capitals are&lt;/strong&gt; (in alphabetical order):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Amsterdam, Netherlands&lt;/li&gt;
&lt;li&gt;Athens, Greece&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Berlin, Germany&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Bratislava, Slovakia&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Brussels, Belgium&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Bucharest, Romania&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Budapest, Hungary&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Copenhagen, Denmark&lt;/li&gt;
&lt;li&gt;Dublin, Ireland&lt;/li&gt;
&lt;li&gt;Helsinki, Finland&lt;/li&gt;
&lt;li&gt;Lisbon, Portugal&lt;/li&gt;
&lt;li&gt;Ljubljana, Slovenia&lt;/li&gt;
&lt;li&gt;Luxembourg, Luxembourg&lt;/li&gt;
&lt;li&gt;Madrid, Spain&lt;/li&gt;
&lt;li&gt;Nicosia, Cyprus&lt;/li&gt;
&lt;li&gt;Paris, France&lt;/li&gt;
&lt;li&gt;Prague, Czechia&lt;/li&gt;
&lt;li&gt;Riga, Latvia&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rome, Italy&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Sofia, Bulgaria&lt;/li&gt;
&lt;li&gt;Stockholm, Sweden&lt;/li&gt;
&lt;li&gt;Tallinn, Estonia&lt;/li&gt;
&lt;li&gt;Valletta, Malta&lt;/li&gt;
&lt;li&gt;Vilnius, Lithuania&lt;/li&gt;
&lt;li&gt;Warsaw, Poland&lt;/li&gt;
&lt;li&gt;Zagreb, Croatia&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;The ones marked in bold, we already visited before.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Visting%20EU%20Capitals&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2024%2feu-capitals%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Three Years with M1 MacBook Air</title>
      <link>https://soeren.one/2024/m1-macbook-air-3years/</link>
      <pubDate>Sun, 04 Aug 2024 19:00:00 +0100</pubDate>
      <guid>https://soeren.one/2024/m1-macbook-air-3years/</guid>
      <description>&lt;p&gt;Like Kev, I own a M1 MacBook Air since three years. And like Kev, I am still impressed.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This thing is absofuckinglutely phenomenal. (&lt;a href=&#34;https://kevquirk.com/blog/three-years-with-my-m1-macbook-air&#34;&gt;Kev&lt;/a&gt;)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It&amp;rsquo;s not the most expensive laptop I owned, but definitely among the top 3. With great invest, comes great expectations.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://media.makeameme.org/created/with-great-power-5976c7.jpg&#34; alt=&#34;Spidey Wisdom&#34;&gt;&lt;/p&gt;
&lt;p&gt;Changing the main operating system after 20 years felt risky. Before the M1, I &lt;a href=&#34;https://soeren.one/2024/my-first-mac/&#34;&gt;only used a MacBook once as a work-machine&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But what can I say. Switching keyboard shortcuts between the private and work laptop is not ideal (I use Windows for work again), but I am still impressed with the speed and battery life of the M1. It can handle everything I request from it, boots in the blink of an eye and the battery lasts longer than in my most optimistic expectations.&lt;/p&gt;
&lt;p&gt;Like Kev, after three years with the M1, I don’t feel like upgrading any time soon. It may be like the &lt;a href=&#34;https://soeren.one/2024/all-the-phones/&#34;&gt;experience I made with mobile phones&lt;/a&gt; - the Apple devices are not the cheapest, but they last much longer in my service than other manufactures.&lt;/p&gt;
&lt;p&gt;In general, I think I have never been this happy with an &amp;ldquo;outdated&amp;rdquo; tech stack before. The M1 is three years old, my iPhone is past its third birthday and my iPad is from 2017. The iPad is the only device where I recognize the age. It feels slow and I thought about upgrading it a couple of times. Not sure, however, if I will. I never found the niche for the iPad. It is too big for an everyday-carry and iPadOS has too much limitations to replace a proper laptop. If it was 100€, I wouldn&amp;rsquo;t think long about a replacement, but for the actual price tag, hm, I will most likely keep using it as long as possible.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Three%20Years%20with%20M1%20MacBook%20Air&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2024%2fm1-macbook-air-3years%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>eBike Struggles</title>
      <link>https://soeren.one/2024/ebike/</link>
      <pubDate>Thu, 01 Aug 2024 00:00:00 +0100</pubDate>
      <guid>https://soeren.one/2024/ebike/</guid>
      <description>&lt;p&gt;About a month ago, I bought a &lt;a href=&#34;https://soeren.one/2024/new-bike/&#34;&gt;new bicycle&lt;/a&gt;. One with an &amp;ldquo;e&amp;rdquo; - supported by a small electric engine.&lt;/p&gt;
&lt;p&gt;I went on a few tours and enjoyed myself, but there was always this little voice inside my head asking if it&amp;rsquo;s still biking if supported by an engine? Is it still sport if I can just turn on the engine when cycling uphill? After every tour I was unsure with my decision - asking myself if I&amp;rsquo;d rather had picked a &amp;ldquo;bio bike&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Last week, my brother in law came by and we went for a longer tour. 90km. I cannot remember that I ever cycled this far on a single day in my entire life. But I wasn&amp;rsquo;t scared of the distance - security giving by the electric support. I started in bio-bike-mode but it felt good to have the option to get some help, if needed.&lt;/p&gt;
&lt;p&gt;After 50km motivation decreased. With my previous bike, I&amp;rsquo;d probably had stopped and looked for the next train station. This time, I just turned on the engine and pushed the pedals for two more hours. Great feeling :-)&lt;/p&gt;
&lt;p&gt;And while I still struggle from time to time, I am convinced that as long as you grab your bike and go for a tour it doesn&amp;rsquo;t matter if it&amp;rsquo;s with or without electric support. In my case, I know, that in the past weeks I went for tours that I would have never even started if I didn&amp;rsquo;t had the engine. Tours with long or steep uphill distances for example. When the bad feeling comes back, I just remind myself that others drive cars in circles and call that motor &lt;em&gt;sport&lt;/em&gt;.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: eBike%20Struggles&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2024%2febike%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Giving Up Social Media</title>
      <link>https://soeren.one/2024/give-up-social-media/</link>
      <pubDate>Thu, 18 Jul 2024 20:00:00 +0100</pubDate>
      <guid>https://soeren.one/2024/give-up-social-media/</guid>
      <description>&lt;p&gt;In one of his recents types, &lt;a href=&#34;https://kevquirk.com/blog/could-you-give-up-social-media&#34;&gt;Kev&lt;/a&gt; asks if we could give up on social media&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I have a love hate relationship with social media. In some respects it&amp;rsquo;s great, but in others it&amp;rsquo;s a nightmare. I&amp;rsquo;m wondering if I could give up social media entirely&amp;hellip;
(Kev)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Short answer is: Last week, I created a draft for an upcoming blog type that I am about to delete my LinkedIn profile and with that the last social media account that I still have.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;I used Facebook the last time about ten years ago and finally deleted the account last year.&lt;/p&gt;
&lt;p&gt;Instagram, I had. Deleted the account when they added too much advertising for my taste into the app. Probably around 2018/19. I created a new account during Corona - but quickly realized that it’s too much bling-bling for me. Last year, I also deleted this account again.&lt;/p&gt;
&lt;p&gt;I used Twitter a lot. It was my favorite network. But since it became X, the balance on my timeline shifted massively towards the negative, aggressive topics. The „oh, this is nice and interesting&amp;quot; tweets became rare. Divorce was harder than with Meta. First, I moved the app icon to the second home screen on my phone and started using it less. Then I deleted the app and only allowed myself to use it via the browser. it took at least another six months until I deleted the account.&lt;/p&gt;
&lt;p&gt;I think that’s about it. I am too old for all the fancy newer networks and thus didn&amp;rsquo;t too much to delete.&lt;/p&gt;
&lt;p&gt;Being honest, I still have the Mastodon Account but I barely use it. In the beginning, I felt that I didn’t get the same cool stuff that I got from Twitter. These days, I am just used to not being among the firsts to know about a specific topic. Instead, I read more than 100 blogs via RSS and am more than happy with it.&lt;/p&gt;
&lt;p&gt;So yes - I can totally give up on Social Media 🙂&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Giving%20Up%20Social%20Media&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2024%2fgive-up-social-media%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Becoming a First Aid Instructor</title>
      <link>https://soeren.one/2024/first-aid-instructor/</link>
      <pubDate>Thu, 11 Jul 2024 16:00:00 +0100</pubDate>
      <guid>https://soeren.one/2024/first-aid-instructor/</guid>
      <description>&lt;p&gt;One of my goals for this year is to become a &lt;strong&gt;First Aid Instructor&lt;/strong&gt;. Back at university, I liked teaching classes and I hope that repeating first aid lessons regularly helps me to get more routine in my work as voluntary paramedic.&lt;/p&gt;
&lt;p&gt;The journey to become an instructor is quite long. I already attended a two-day seminar, and a first aid class. Tomorrow, I will join another class and maybe even teach a short section myself. Let‘s see how confident I feel. I didn’t look into the topic much in recent weeks.&lt;/p&gt;
&lt;p&gt;After that, I need to join a third class where I will teach roughly one hour of the class. This will be rated. And finally, I will go on a five-day seminar in September to learn more about adult education.&lt;/p&gt;
&lt;p&gt;The Red Cross definetly takes this serious 😅&lt;/p&gt;
&lt;p&gt;When was your last First Aid Class?&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Becoming%20a%20First%20Aid%20Instructor&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2024%2ffirst-aid-instructor%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Wedding in the Mountains</title>
      <link>https://soeren.one/2024/mountain-wedding/</link>
      <pubDate>Tue, 02 Jul 2024 16:00:00 +0100</pubDate>
      <guid>https://soeren.one/2024/mountain-wedding/</guid>
      <description>&lt;p&gt;On the weekend, we were invited to a wedding. The wedding was a little out of standard. Instead of a full day of sitting and eating, the couple planned for a whole weekend - which made the whole schedule more flexible. Overall it felt less stressful and the couple had time to talk to everyone. I liked it a lot.&lt;/p&gt;
&lt;p&gt;Additionally, meeting in a cabin in the mountains and waking up with this view really calmed me down.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://onedrive.live.com/embed?resid=273EB2087BC33FC5%215205&amp;amp;authkey=%21AH_taO0XEerFkOA&amp;amp;width=660&#34; alt=&#34;Mountain View&#34;&gt;&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Wedding%20in%20the%20Mountains&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2024%2fmountain-wedding%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>New Theme</title>
      <link>https://soeren.one/2024/new-theme/</link>
      <pubDate>Wed, 26 Jun 2024 19:00:00 +0100</pubDate>
      <guid>https://soeren.one/2024/new-theme/</guid>
      <description>&lt;p&gt;I had my first blog in 2007, almost 20 years ago. Since then, I always „owned&amp;quot; a blog but didn’t necessarily update it regularly.&lt;/p&gt;
&lt;p&gt;Over the years, URLs changed (I remember four), focus changed (travel, photo, personal), technology changed (Wordpress, Ghost, Jekyll, Hugo), …&lt;/p&gt;
&lt;p&gt;This blog is online since 2019. In 2020, when I had lots of free weekends, I created the first theme myself. Before that, I was always using themes developed by others.&lt;/p&gt;
&lt;p&gt;„My&amp;quot; theme came with all monospace fonts and a minimal design. However, I imported the Bootstrap CSS (because I knew it from another project), to have something to start with. This was way too much for my small blog. Total overkill. But no dark mode.&lt;/p&gt;
&lt;p&gt;I wanted a change (at least since &lt;a href=&#34;https://soeren.one/2024/march-2024/&#34;&gt;March&lt;/a&gt;). So I googled, visited many of the blogs I read regularly to get some inspiration, and stumbled upon Kev‘s &lt;a href=&#34;https://simplecss.org&#34;&gt;Simple.css&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I liked it. Simple design. Important stuff included, but not overloaded.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;For example, the minified CSS for the Bootstrap framework is 144KB in total. By comparison, Simple.css is around 10KB. (&lt;a href=&#34;https://simplecss.org/&#34;&gt;Simple.css&lt;/a&gt;)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The last rainy weekend was the opportunity I needed to create a new Hugo theme, also going through old types, correcting broken links and fixing typos.&lt;/p&gt;
&lt;p&gt;I will push the new theme to production in the next days and hope that your feed readers won’t pull the whole history. But if so, I am sorry for the spam 😅&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: New%20Theme&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2024%2fnew-theme%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>New Bike Day</title>
      <link>https://soeren.one/2024/new-bike/</link>
      <pubDate>Sun, 23 Jun 2024 19:00:00 +0000</pubDate>
      <guid>https://soeren.one/2024/new-bike/</guid>
      <description>&lt;p&gt;After a much longer than expected odyssey, I got my new &lt;a href=&#34;https://soeren.one/tags/bike&#34;&gt;bike&lt;/a&gt; this week. Pure coincidence - Jan-Lukas &lt;a href=&#34;https://jlelse.blog/types/new-bike-cube-hyde-race&#34;&gt;just wrote&lt;/a&gt; about his new bike, so I thought this is something I should do, too.&lt;/p&gt;
&lt;p&gt;Like Jan-Lukas, I bought a Cube Bike, and it has been a journey. Since April, my employer allows the usage of a &amp;ldquo;JobBike&amp;rdquo;. This allows employees to &amp;ldquo;lease&amp;rdquo; a bike through the employer. It comes with tax benefits, making the bike roughly 30% cheaper (that at least is what the providers claim) than buying it directly.&lt;/p&gt;
&lt;p&gt;I wanted to have an eBike since we moved to the Stuttgart area. I love biking and biked a lot in my youth. But, living at the lowest point of the valley meant that every bike tour started with a hill. More often than I like to admit this meant that I didn&amp;rsquo;t start biking at all.&lt;/p&gt;
&lt;p&gt;Having support by a motor, I hoped, will overcome this and allow me larger radius of bike tours in this beautiful region.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Let&amp;rsquo;s get a new bike&amp;rdquo; is what naïve me thought.&lt;/p&gt;
&lt;p&gt;Most recently, I was riding a &amp;ldquo;Fitness Bike&amp;rdquo;. It has a sporty position, narrow tires, but a &amp;ldquo;normal&amp;rdquo; bar. No fancy suspension or anything else increasing its weight. Having a motor on board shouldn&amp;rsquo;t change this significantly. For me, this meant that all bikes heavier than 15kg were out of scope, which left me with the new eGravel category.&lt;/p&gt;
&lt;p&gt;I looked at the &lt;a href=&#34;https://www.rosebikes.de/fahrr%C3%A4der/gravel/e-gravel/backroad-plus&#34;&gt;Rose Backroad+&lt;/a&gt;. I wanted to buy a Rose Bike already in the past, but they had more than 20 weeks delivery time. The summer would be over by then &amp;hellip;&lt;/p&gt;
&lt;p&gt;Lucky me, Cube released a new bike. The &lt;a href=&#34;https://www.cube.eu/de-de/e-bikes/gravel/nuroad-hybrid&#34;&gt;Nuroad Hybrid&lt;/a&gt; that I liked it immediately.&lt;/p&gt;
&lt;p&gt;I contacted the store, asking if I can try it out. No response. I contacted another store and got an automated email that the bike would be waiting for me the next working day. Nice. Two days later, I drove there, 30min by car - just to learn that the bike was not there (yet) and that I cannot trust their automated emails. They told me to come back, only after they call me.&lt;/p&gt;
&lt;p&gt;Anoter two days later, I received a call and went on the journey again. 30min car drive. This time, the bike was there, yes, but a few screws were broken, making it unsafe to go on a test drive. I drove back the second time.&lt;/p&gt;
&lt;p&gt;On the third try, I was lucky. Bike was there and ready to be tested. After a quick ride, I decided to go with it. I discussed the details with the dealer, went back home and waited for email from the leasing company.&lt;/p&gt;
&lt;p&gt;About two weeks later, I received a call form the dealer, which I couldn&amp;rsquo;t take because I was in a work meeting - and an email from the leasing company telling me that the bike was ready to be picked up. Again, naïve me, assuming that this is what they wanted to tell me on the phone, I drove to the store - just to learn that again I should not trust their automated emails. The bike is not yet ready.&lt;/p&gt;
&lt;p&gt;Meanwhile, I was not so happy with my decision, the shop and especially their processes.&lt;/p&gt;
&lt;p&gt;Another four weeks later, the store calls me again. The bike is still not ready. A part is missing that is needed to power the light from the bike&amp;rsquo;s battery. They ordered it, but don&amp;rsquo;t know when it will be delivered.&lt;/p&gt;
&lt;p&gt;I asked them - knowing that it&amp;rsquo;s summer and that I probably won&amp;rsquo;t need light on the bike in the near future - if I could pick up the blank bike and come back to the shop once the part is delivered to get it installed. They agreed.&lt;/p&gt;
&lt;p&gt;So this week, I finally picked up the bike and rode the 30km back home. Great feeling.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://onedrive.live.com/embed?resid=273EB2087BC33FC5%215192&amp;amp;authkey=%21ACjio_aMzgJmMJo&amp;amp;width=660&#34; alt=&#34;Cube Nuroad Hybrid&#34;&gt;&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: New%20Bike%20Day&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2024%2fnew-bike%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Do I need tags?</title>
      <link>https://soeren.one/2024/do-i-need-tags/</link>
      <pubDate>Thu, 20 Jun 2024 18:00:00 +0100</pubDate>
      <guid>https://soeren.one/2024/do-i-need-tags/</guid>
      <description>&lt;p&gt;This blog is based on &lt;a href=&#34;https://soeren.one/tags/hugo&#34;&gt;Hugo&lt;/a&gt; and comes with built-in tags. It even &lt;a href=&#34;https://soeren.one/tags&#34;&gt;provides a page&lt;/a&gt; with a list of all tags used on this blog. Mine is not very polished, because I barely used it.&lt;/p&gt;
&lt;p&gt;One of the reasons is me having a hard time coming up - not to speak of sticking with - a taxonomy. If I am being honest, I just type some random tags in the front matter when I start writing a new type. Pure gut feeling.&lt;/p&gt;
&lt;p&gt;Question is: &lt;em&gt;should I invest time streamlining this?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Hm. I think the answer depends on the potential benefit of a well structured taxonomy. On this blog, it’s mainly used to populate the „if you liked this, you may want to read …“ section below each type. I use it to find an older type - if I remember the tag - because scrolling through the tag page with less entries is faster. Apart from that? Good question.&lt;/p&gt;
&lt;p&gt;Current plan is, since I am anyway &lt;a href=&#34;https://soeren.one/2024/new-theme/&#34;&gt;working on a new theme&lt;/a&gt; for this blog (on the list &lt;a href=&#34;https://soeren.one/2024/march-2024&#34;&gt;since March&lt;/a&gt;), I will give the tags overview page a facelift and use the opportunity - assuming motivation lasts - to structure the tags, at least once.&lt;/p&gt;
&lt;p&gt;In a few months, I will check if I was able to follow the structure or if chaos is back. And if the latter happens - does someone has a better idea how to solve this? 🤔&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Do%20I%20need%20tags%3f&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2024%2fdo-i-need-tags%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>My Default Apps as of mid 2024</title>
      <link>https://soeren.one/2024/default-apps-2024/</link>
      <pubDate>Wed, 19 Jun 2024 19:00:00 +0100</pubDate>
      <guid>https://soeren.one/2024/default-apps-2024/</guid>
      <description>&lt;p&gt;Last year, we all &lt;a href=&#34;https://soeren.one/2023/default-apps-2023/&#34;&gt;shared our default apps&lt;/a&gt;. &lt;a href=&#34;https://defaults.rknight.me/&#34;&gt;Robb compiled a list of all responses&lt;/a&gt;. Thank you. This helped a lot.&lt;/p&gt;
&lt;p&gt;Today, roughly seven months later, I wanted to give an update. What apps did I exchange and why?&lt;/p&gt;
&lt;p&gt;📨 &lt;strong&gt;Mail Client: Mail.app&lt;/strong&gt;
This hasn’t changed. I am happy with Apples build in mail app, although it could get a facelift and a new feature or two. However, not the ones promoted by Apple on this years keynote.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;📮 &lt;strong&gt;Mail Server: uberspace.de&lt;/strong&gt;
No update on this one. Scrolling through the other responses, I thought about trying &lt;a href=&#34;https://www.fastmail.com/&#34;&gt;Fastmail&lt;/a&gt; or &lt;a href=&#34;https://www.migadu.com/&#34;&gt;Migadu&lt;/a&gt; but was too lazy to do so until today.&lt;/p&gt;
&lt;p&gt;📝 &lt;strong&gt;Notes: Obsidian&lt;/strong&gt;
&lt;a href=&#34;https://obsidian.md/&#34;&gt;Obsidian&lt;/a&gt; has replaced Apple Notes. I like the markdown syntax and theming. It allows me to focus more on writing. Need to improve sticking to my journaling.&lt;/p&gt;
&lt;p&gt;✅ &lt;strong&gt;To-Do: Reminders.app&lt;/strong&gt;
No update. I don’t like paying for a todo-app. This should come out of the box. And reminders is ok-ish.&lt;/p&gt;
&lt;p&gt;📷 &lt;strong&gt;iPhone Photo Shooting: Camera.app&lt;/strong&gt;
No update. Looked at the camera app from Leica once, saw the price and was healed immediately.&lt;/p&gt;
&lt;p&gt;🟦 &lt;strong&gt;Photo Management: Synology Photos&lt;/strong&gt;
No change, although I was thinking about upgrading the NAS under the desk to a more powerful version.&lt;/p&gt;
&lt;p&gt;📆 &lt;strong&gt;Calendar: Calendar.App &amp;amp; ?&lt;/strong&gt;
I used Calendars 5 as my main calendar app but it will become end of support in a few days. I didn’t find a replacement yet. What Apple showed at the WWDC may be enough for me, but not sure. Coloring events (one calendar, multiple colors) is a must and I don’t saw that in Apple’s presentation.&lt;/p&gt;
&lt;p&gt;📁 &lt;strong&gt;Cloud File Storage: Synology Drive&lt;/strong&gt;
No update, but maybe new machine.&lt;/p&gt;
&lt;p&gt;📖 &lt;strong&gt;RSS: Reeder + iCloud&lt;/strong&gt;
&lt;a href=&#34;https://apps.apple.com/de/app/reeder-5/id1529445840&#34;&gt;Reeder&lt;/a&gt; stayed. Still the best RSS reading app from my perspective, but &lt;a href=&#34;https://miniflux.app/&#34;&gt;miniflux&lt;/a&gt; has been replaced with iCloud. It has more hiccups, for sure, but I don’t need to maintain it.&lt;/p&gt;
&lt;p&gt;🙍🏻‍♂️ &lt;strong&gt;Contacts: Contacts.app&lt;/strong&gt;
No update.&lt;/p&gt;
&lt;p&gt;🌐 &lt;strong&gt;Browser: Arc&lt;/strong&gt;
Last year, Safari was my default browser. This event introduced me to &lt;a href=&#34;https://arc.net/&#34;&gt;Arc&lt;/a&gt;. And while I needed a couple of trials - I am now convinced that Arc is my new standard, once two things are shipped: an iPad app and the Noir extension.&lt;/p&gt;
&lt;p&gt;[Update - 2024-06-20]:Arc has a dedicated iPad version now ✅&lt;/p&gt;
&lt;p&gt;💬 &lt;strong&gt;Chat: Signal, WhatsApp&lt;/strong&gt;
No change. I have Telegram Threema, and Matrix - but barely use them.&lt;/p&gt;
&lt;p&gt;🔖 &lt;strong&gt;Bookmarks: currently everywhere. Need help 🫠&lt;/strong&gt;
Unfortunately no update. May need to investigate more.&lt;/p&gt;
&lt;p&gt;📑 &lt;strong&gt;Read It Later: Omnivore&lt;/strong&gt;
&lt;a href=&#34;https://omnivore.app/&#34;&gt;Omnivore&lt;/a&gt; replaced &lt;a href=&#34;https://getpocket.com/de/home&#34;&gt;Pocket&lt;/a&gt;. It comes without ads. Nothing else to add.&lt;/p&gt;
&lt;p&gt;🛒 &lt;strong&gt;Shopping Lists: Reminders.app&lt;/strong&gt;
No change. Reminders works perfectly for us. No need to load another app.&lt;/p&gt;
&lt;p&gt;🍴 &lt;strong&gt;Meal Planning: no app&lt;/strong&gt;
Still, no dedicated app. I tried Mela for recipes. It has a planning function. We may try it one day.&lt;/p&gt;
&lt;p&gt;💰 &lt;strong&gt;Budgeting and Personal Finance: python + Excel&lt;/strong&gt;
Currently, trying to come up with a new standard. Probably a Python or R script populating an Excel or Dashboard.&lt;/p&gt;
&lt;p&gt;📰 &lt;strong&gt;News: Sueddeutsche Zeitung&lt;/strong&gt;
No change but smaller subscription.&lt;/p&gt;
&lt;p&gt;🎵 &lt;strong&gt;Music: Spotify&lt;/strong&gt;
To save costs, I am back on the Spotify Family Plan. I miss Apple Music.&lt;/p&gt;
&lt;p&gt;🎤 &lt;strong&gt;Podcasts: Castro&lt;/strong&gt;
No change. Love &lt;a href=&#34;https://apps.apple.com/de/app/castro-podcast-player/id1080840241&#34;&gt;the app&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;🔐 &lt;strong&gt;Password Management: Enpass&lt;/strong&gt;
No change - but I like that Apple is building a dedicated app for this. I will try it out once released.&lt;/p&gt;
&lt;p&gt;Anything changed on your defaults?&lt;/p&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;I don’t need AI writing, nor auto-sorting.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: My%20Default%20Apps%20as%20of%20mid%202024&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2024%2fdefault-apps-2024%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>First Bike Ride 2023</title>
      <link>https://soeren.one/2024/first-bike-ride/</link>
      <pubDate>Fri, 05 Apr 2024 16:00:00 +0100</pubDate>
      <guid>https://soeren.one/2024/first-bike-ride/</guid>
      <description>&lt;p&gt;It’s beginning of April and - according to the news - there are warm winds from Africa. More than 20 degrees Celsius is unusually warm for this season.&lt;/p&gt;
&lt;p&gt;It is, however, perfect biking weather. And thus THE opportunity for my first ride this year.&lt;/p&gt;
&lt;p&gt;On the day we moved to the new apartment, I recognized a sign recommending a sightseeing
bike tour around the city. Something I wanted to do ever since. Hence, tour planning was completed quickly.&lt;/p&gt;
&lt;p&gt;The tour is ~25km long, and goes through all parts of the city including the vineyards. It took me about 90min to complete it - with a not yet checked bike. Perfect after-work length, because I reckoned that I skipped leg day a little too often. The last kilometers were tough. 😩😅&lt;/p&gt;
&lt;p&gt;I hope I will find time to do this more regularly in the upcoming months. I also plan to buy a new gravel bike soon and am curious if that will significantly reduce the time I need for this round.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: First%20Bike%20Ride%202023&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2024%2ffirst-bike-ride%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>March Review</title>
      <link>https://soeren.one/2024/march-2024/</link>
      <pubDate>Fri, 05 Apr 2024 10:00:00 +0100</pubDate>
      <guid>https://soeren.one/2024/march-2024/</guid>
      <description>&lt;p&gt;My &lt;a href=&#34;https://soeren.one/tags/monthly-review/&#34;&gt;monthly reviews&lt;/a&gt; had a little break. Allowing more flexibility, I hope to overcome this.&lt;/p&gt;
&lt;p&gt;This is the March update.&lt;/p&gt;
&lt;p&gt;⏱️ I am working for one and a half months since parental leave and miss spending time with the baby a lot. Thinking about working part time.&lt;/p&gt;
&lt;p&gt;👶 The little one started going to childcare and brought home her first drawing. Cannot tell how much I am in love.&lt;/p&gt;
&lt;p&gt;⛑️ I decided to get trained as a first aid instructor. The training consists of a weekend-module, three hospitations, and another full week training. That will require commitment.&lt;/p&gt;
&lt;p&gt;⚽️ Volunteering for the Red Cross will come with hard work this summer, as the European Football Championship is held in Germany. Five matches will be kicked in Stuttgart, increasing the need for first-aid personnel even more.&lt;/p&gt;
&lt;p&gt;👩‍🌾 There were days with 20 degrees Celcius in March. The new flat has a little &lt;a href=&#34;https://soeren.one/tags/garden&#34;&gt;„garden“&lt;/a&gt;, meaning grass needed to be cut. We also enjoyed one lunch in the sun. The tulips are blooming. It’s beautiful.&lt;/p&gt;
&lt;p&gt;💻 The &lt;a href=&#34;https://soeren.one/2023/default-apps-2023/&#34;&gt;battle of the defaults&lt;/a&gt; introduced me to the &lt;a href=&#34;https://soeren.one/tags/arc/&#34;&gt;Arc Browser&lt;/a&gt;. I finally had time to test it, but am mainly back at Safari.&lt;/p&gt;
&lt;p&gt;🍎 Concerning my plans to &lt;a href=&#34;https://soeren.one/2024/fat-boy-story/&#34;&gt;eat healthier&lt;/a&gt;, I changed my fastening schedule to 16:8. According to my app, I fastened more than 2.500h in the last six months.&lt;/p&gt;
&lt;p&gt;👨‍🎨 I struggle with the current design of this site and think about using the Easter break for some makeover.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: March%20Review&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2024%2fmarch-2024%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>DST Confusion</title>
      <link>https://soeren.one/2024/dst-confusion/</link>
      <pubDate>Thu, 21 Mar 2024 19:00:00 +0000</pubDate>
      <guid>https://soeren.one/2024/dst-confusion/</guid>
      <description>&lt;p&gt;It’s this time of the year again. Working in a global environment, at some point, you’ll be confronted with the daylight saving time confusion.&lt;/p&gt;
&lt;p&gt;One example: We have a daily meeting, invited by a colleague from the US and scheduled for 2pm my time - usually. During two weeks in March and October my calendar is messed up, because the US already saves daylight, while Europe doesn’t and vice-versa. The meeting is suddenly one hour earlier - conflicting with other appointments I have scheduled for this time.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://lostfocus.de/2024/03/19/232687/&#34;&gt;Dominik&lt;/a&gt; has similar issue.&lt;/p&gt;
&lt;p&gt;This is definitely not the end of the world, but annoying. It made me think about daylight saving time in general, again.&lt;/p&gt;
&lt;p&gt;I used to have a strong opinion for constant DST during the whole year, because I liked having more daylight in the evening than the early morning. Then I read articles about standard time being healthier. Waking up with the rising sun triggers something in the body that helps us getting started. Changing my opinion to being in favour of standard time. There were times, when I thought using UTC globally would be the best solution. But I guess it will be even harder to know what “time of day” it is in another country. Is 06:00 am the time when the sun rises, high noon or something else?&lt;/p&gt;
&lt;p&gt;With age comes serenity. I almost don’t care about DST anymore. The only thing I wish for is getting rid of the switch at some point, because the adjustment is not getting easier.&lt;/p&gt;
&lt;p&gt;What are your thoughts on this?&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: DST%20Confusion&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2024%2fdst-confusion%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>All the phones I owned</title>
      <link>https://soeren.one/2024/all-the-phones/</link>
      <pubDate>Thu, 07 Mar 2024 19:00:00 +0000</pubDate>
      <guid>https://soeren.one/2024/all-the-phones/</guid>
      <description>&lt;p&gt;I paused blogging for a while, because re-starting work and having a sick baby at home took more of my energy than I thought. Hopefully, I can find more time soon again, because I miss it. 🙂&lt;/p&gt;
&lt;p&gt;This one is in the backlog for quite some time, inspired by &lt;a href=&#34;https://kevquirk.com/all-the-motorbikes-ive-owned&#34;&gt;Kev’s blog type about all the motorbikes he owned&lt;/a&gt;. When I read it, I thought &lt;em&gt;this is a cool idea! I should do something similar.&lt;/em&gt; But, I never owned a motorbike and technically not even a car. Thinking about things I did &lt;em&gt;collect&lt;/em&gt; over the years, mobiles phones sounded interesting. I thought I remember all my phones, but it took investigation in my email inbox to get all the names and dates.&lt;/p&gt;
&lt;h1 id=&#34;1-nokia-3310&#34;&gt;1) Nokia 3310&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;bought: December 2021, lastet: a couple of weeks&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This was the toughest phone I ever had. The internet is full of jokes on this. It was robust, had great battery life, and I could type text messages without looking at the screen below my desk at school. And of course … Snake! Unfortunately, our joint journey was short. I owned this phone a couple of weeks, until it was stolen in school. Bad. I think we could have had a great time together.&lt;/p&gt;
&lt;h1 id=&#34;2-siemens-sl42&#34;&gt;2) Siemens SL42&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;bought: ~2022, lastet: one year&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;After the 3310 was gone, I needed a new phone. Having internet at home was not yet common. ICQ becoming my main way of communication years into the future. Being reachable via text message (we never did phone calls), was crucial. I wanted something that looked more elegant than the plastic design of the 3310 and went with the Siemens SL42. It was a cheaper version of a business phone, Siemens released earlier, and had great games preinstalled. We had a short joint time. Back then I lived in Dresden and later that year we had the “Jahrhundertflut” (the flood of a century). On my way home from school, the phone got wet and didn’t took it well. It was functioning, but the 1 key was no longer working. For people knowing how to type on these keyboards, you may understand that it was usable (the “.” was missing) - but who wants a broken phone?&lt;/p&gt;
&lt;h1 id=&#34;3-nokia-3650&#34;&gt;3) Nokia 3650&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;bought: ~2023, lastet: five years&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;A good year after I bought the Siemens, I switched back to Nokia and bought the 3650. After I had bad luck with the first two phones, this one sticked around a while and accompanied me on my first trips abroad as well as the work and travel experience to Australia and New Zealand. Nokia built robust phones back then. Although made of plastic, falling down didn’t cause major demolition. The design of the 3650 was polarising (it&amp;rsquo;s part of collection &amp;ldquo;ugliest&amp;rdquo; in the mobile phone museum). The dial like on old landline phones needed more space and was a little cumbersome to type on, but I liked owning something extraordinary. This was a phone that was unlikely to be confused accidentally.&lt;/p&gt;
&lt;h1 id=&#34;4-nokia-e65&#34;&gt;4) Nokia E65&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;bought: April 2008, lastet: 1.5 years&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;After five years of extensive usage, the 3650 reached its end of life. To be honest, my demands changed, too. I wanted something smaller, with more features. The possibility to manage your calendar on the phone was the hot shit. And it was the time, that newer phones had a camera allowing you to actually identify what you took a photo off. I went for the Nokia E65, because a friend of mine had and recommended it. Plus, how cool is it to extend the keyboard using a &lt;em&gt;swipe up&lt;/em&gt; gesture?&lt;/p&gt;
&lt;h1 id=&#34;5-iphone-3gs&#34;&gt;5) iPhone 3GS&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;bought: September 2009, lastet: 3.5 years&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I think the Nokia E65 and I could have become good friends for a long time, but in 2009 Apple decided to improve the iPhone significantly. S meant speed. Beginning of 2009, I bought an iPod Touch, liked it, but quickly understood that this device - without a permanent internet connection felt like binding its hands behind it’s back. I needed to have the iPhone and after long arguments with myself I bought it for a huge amount of money.&lt;/p&gt;
&lt;h1 id=&#34;6-google-nexus-4&#34;&gt;6) Google Nexus 4&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;bought: January 2013, lastet: ~2 years&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The 3GS was a loyal companion. I loved it and the form factor was perfect for me. However, after years of intense usage the battery got week and the phone slow. In January 2013, the iPhone 5 was out, it was time for a new phone. I wanted to try something new and since Android had improved a lot, I bought a Nexus 4. Manufactured by LG but sold by and through Google. The phone was super big compared to my beloved 3GS, but average size for today’s standards. The camera was a tremendous improvement (was that the only thing that mattered to me?). But when I try to remember how I felt about the phone, I think we never bonded. Maybe because of our short time together. Roughly two years later, when I handed in my masters’ thesis, I dropped it in front of the university building, the display broke. Not usable anymore.&lt;/p&gt;
&lt;h1 id=&#34;7-motorola-moto-g-2014&#34;&gt;7) Motorola Moto G (2014)&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;bought: March 2015, lastet: ~1.75 years&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Although I was just ok with the Nexus, I liked Android back then. That’s why I replaced it with another Android phone. My wife was using a Motorola phone at that time and was satisfied with it. So I bought one. I liked it more than the Nexus, one reasons being the form factor. In retrospective, I do not remember why I only had it for a short time.&lt;/p&gt;
&lt;h1 id=&#34;8-oneplus-3t&#34;&gt;8) OnePlus 3T&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;bought: December 2016, lastet: ~1 year&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The 3T was a power house. It had 6GB of RAM and it felt like THE fastest smartphone I ever owned. It was running on Vanilla Android without any bloatware and could run dozen of apps at the same time. Awesome! This was the time when I was really into Pokemon Go and while it was giving my previous phone a hard time, it was no problem for the 3T. I could even write messages while having Pokemon Go running in the background.&lt;/p&gt;
&lt;p&gt;Yet, it seems I have to make the same error multiple times, before I finally get it. The phone was just too big for my hands. I was commuting with the train a lot that time and always had to pause walking while checking on which platform I need to transfer, because I needed two hands to hold the phone and couldn’t carry the suitcase anymore.&lt;/p&gt;
&lt;h1 id=&#34;9-iphone-7&#34;&gt;9) iPhone 7&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;bought: December 2017, lastet: ~3.5 years&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;When the iPhone X was released, all my colleagues owned iPhones, while I was unsatisfied with the too big 3T. The X was too expensive for me, so I bought a used iPhone 7 with 500GB of storage. I was in love, the moment I had it in my hands. Everything was perfect - for three and a half years. Slowly, but steadily I recognised that the pre-used battery got weaker and weaker. Besides, all the cool kids had phones with more than one camera now. It was time for a new one again - however, the 7 is still used until today in the family.&lt;/p&gt;
&lt;h1 id=&#34;10-iphone-12-mini&#34;&gt;10) iPhone 12 mini&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;bought: June 2021, lastet: still in use&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I am not so happy with the edgy design of 12, but wanted to support the idea of building smaller smartphones. It looks like it needs to last for a very long time since Apple stopped producing the “minis” already. But, I am happy. If I don’t break it, the plan is to upgrade only when at least the 17 is out.&lt;/p&gt;
&lt;h1 id=&#34;fun-fact&#34;&gt;Fun Fact&lt;/h1&gt;
&lt;p&gt;It might not be the case for everyone, but at least for me it looks the iPhones are more &lt;em&gt;sustainable&lt;/em&gt;. While I had the three Android phones for roughly 1.6 years each, my average iPhones usage was 3.5 years.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: All%20the%20phones%20I%20owned&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2024%2fall-the-phones%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>💻 My First Mac</title>
      <link>https://soeren.one/2024/my-first-mac/</link>
      <pubDate>Fri, 26 Jan 2024 10:00:00 +0100</pubDate>
      <guid>https://soeren.one/2024/my-first-mac/</guid>
      <description>&lt;p&gt;The &lt;a href=&#34;https://www.macrumors.com/2024/01/23/apple-macintosh-turns-40/&#34;&gt;Mac celebrates its 40th birthday&lt;/a&gt; and with that comes another bandwaggon I&amp;rsquo;d like to jump opon. Everyone is writing about their first Mac.&lt;/p&gt;
&lt;p&gt;I joined the party quite late. My first Mac was a &lt;a href=&#34;https://support.apple.com/kb/SP795?viewlocale=en_US&amp;amp;locale=de_DE&#34;&gt;2019 MacBook Pro 13&amp;quot;&lt;/a&gt; that I got from work and used intensively during Corona lockdowns. It still had four Thunderbolt ports, the only thing I am missing on the M1 MacBook Air.&lt;/p&gt;
&lt;p&gt;I was a Windows Users since I had my fist computer about 20 years ago, with some short excurses into the linux world, but always wanted to try out one of those &amp;ldquo;cool kids&amp;rdquo; notebooks. The company I worked for in 2020 offered a MacBook as a company notebook and I thought this is the perfect chance to try it out. You all know how this ends. I was impressed. Everything was so fast, the search did find what I was looking for, the keyboard shortcuts are so much more finger-friendly. The only down-side was that the company was using Microsoft 365 intensively and the Mac versions of Outlook and Excel - being honest - lack some functionality.&lt;/p&gt;
&lt;p&gt;Nevertheless, even before I had to return it, because I changed jobs, I bought the M1 Air privately and didn&amp;rsquo;t miss Windows ever since. Using GeForce Now, it is also a great gaming device 🕹️ I do not see me changing systems any time soon.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: %f0%9f%92%bb%20My%20First%20Mac&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2024%2fmy-first-mac%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>🍔 Fat Boy at 40</title>
      <link>https://soeren.one/2024/fat-boy-story/</link>
      <pubDate>Fri, 12 Jan 2024 16:00:00 +0100</pubDate>
      <guid>https://soeren.one/2024/fat-boy-story/</guid>
      <description>&lt;p&gt;In August last year, &lt;a href=&#34;https://kevquirk.com/fat-boy-at-40&#34;&gt;Kev announced that he doesn&amp;rsquo;t want to be a &amp;ldquo;fat boy at 40&amp;rdquo;&lt;/a&gt; and I decided to accept his invitation and be &lt;a href=&#34;https://kevquirk.com/lets-be-accountable-together&#34;&gt;accountable together&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A few days ago, he wrote his &lt;a href=&#34;https://kevquirk.com/fat-boy-at-40-the-christmas-aftermath&#34;&gt;Christmas update&lt;/a&gt; and I would like to use this opportunity to finally write something myself on this topic.&lt;/p&gt;
&lt;h2 id=&#34;situation&#34;&gt;Situation&lt;/h2&gt;
&lt;p&gt;I am 36 years old and have some time left to come into shape until my 40th birthday, but I am having the same goal as Kev - to be fitter &lt;em&gt;this&lt;/em&gt; summer.&lt;/p&gt;
&lt;p&gt;I was never the sportiest guy and I always carried a few pounds too much, but managed to be ok with it. Last summer, I went to the doctor for a regular check up and was diagnosed with first symptoms of a &lt;a href=&#34;https://en.wikipedia.org/wiki/Fatty_liver_disease&#34;&gt;(non-alcoholic) fatty liver disease&lt;/a&gt; (NAFLD). This is common in the Western world. We sit too much, move to little and eat too many carbs. Depending on the statics you&amp;rsquo;re looking at, roughly 30-40% male Westerners are effected. The dangerous part is that NAFLD often comes without any symptoms, thus is not treated, but can cause type 2 diabetes. Not desirable. Change was needed.&lt;/p&gt;
&lt;h2 id=&#34;changes-in-2023&#34;&gt;Changes in 2023&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Intermediate Fasting&lt;/strong&gt;: Someone on the &amp;ldquo;Accountable Together&amp;rdquo; mailing list suggested intermediate fasting. I heard about the idea a couple of years ago, but didn&amp;rsquo;t had it on the radar. The idea is that you separate the day into a &amp;ldquo;fasting&amp;rdquo; and an &amp;ldquo;eating&amp;rdquo; period. During the fasting period, you&amp;rsquo;re allowed to drink water, black coffee or not sweetened tea. The longer this period is, the less you eat, the easier it is to reduce weight. &lt;em&gt;16:8&lt;/em&gt; is common, meaning you&amp;rsquo;re fasting for 16 hours per day and are allowed to eat during the remaining 8 hours. In other words, you eat dinner until 20:00 and the next thing you&amp;rsquo;ll eat is lunch on the next day (12:00) - skipping breakfast.&lt;/p&gt;
&lt;p&gt;Leaving one meal out sounded hard. Thus, I started with the &lt;em&gt;14:10&lt;/em&gt; variant, where I can eat until 19:00 and have a late breakfast at 09:00 the next morning. I downloaded &lt;em&gt;&lt;a href=&#34;https://fastic.com&#34;&gt;Fastic&lt;/a&gt;&lt;/em&gt; to track my progress and subscribed to their premium service for one year when it was offered at a special price. You can see from the screenshot below, that I average on 13h and 50-something minutes. The app offers guidance on fasting in general and tries to create habits, but I mainly use it to have the progress visualised and to create a bad conscience when I eat after 7pm. It works surprisingly good for me.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://onedrive.live.com/embed?resid=273EB2087BC33FC5%215181&amp;amp;authkey=%21AJpLwbkORhxHNg4&amp;amp;width=500&amp;amp;height=572&#34; alt=&#34;Fasting hours per day&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Walking&lt;/strong&gt;: I walk more. Lucky me, the diagnoses came when I started parental leave giving me more freedom to shape the days. No meetings at certain time slots, no super critical deadlines, just the babies needs. And one of those needs is sleeping, which she likes to do in the stroller. A good excuse to go for a longer walk on a daily basis. Recently, roughly two hours per day and thus, way more than I walked before.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://onedrive.live.com/embed?resid=273EB2087BC33FC5%215182&amp;amp;authkey=%21ANfYoD2RiF2s4Qw&amp;amp;width=500&amp;amp;height=504&#34; alt=&#34;Steps per day&#34;&gt;&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s it. I didn&amp;rsquo;t have the energy to change more. We wanted to eat healthier, but I am not tracking it and my gut feeling tells me that it only worked partly.&lt;/p&gt;
&lt;p&gt;Nevertheless, I reached something. Since August, &lt;strong&gt;I lost 6kg&lt;/strong&gt; which I didn&amp;rsquo;t expect and which makes me very positive for 2024.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://onedrive.live.com/embed?resid=273EB2087BC33FC5%215183&amp;amp;authkey=%21AF8I-JkL6IkMvUI&amp;amp;width=500&amp;amp;height=527&#34; alt=&#34;Weight&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;plans-for-2024&#34;&gt;Plans for 2024&lt;/h2&gt;
&lt;p&gt;I want to continue fasting. I want to increase it to the 16:8 variant and even try several days without eating (classic fasting). I see this as an interesting challenge, and good for my health (because the &lt;a href=&#34;https://en.wikipedia.org/wiki/Ketosis&#34;&gt;ketosis will clean up&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;I subscribed to Apple Fitness+ (again). Apple included nice new features like individual training plans, removing the hassle to select a video manually. The idea is that I will set the alarm half an hour earlier and start the day with a little sport program. Let&amp;rsquo;s see how that goes &amp;hellip;&lt;/p&gt;
&lt;p&gt;Finally, eating is something where I want to be more mindful this year. A first step would probably be to track what I eat currently. &lt;strong&gt;Does anyone have a recommendation for this?&lt;/strong&gt; I can tell that it needs to be super-simple. If it requires me to weight individual ingredients of my meals I wont do it (for long). Any recommendation is appreciated 🙂&lt;/p&gt;
&lt;p&gt;If you read this and want to join the party, read &lt;a href=&#34;https://kevquirk.com/tag:FatBoy&#34;&gt;Kev&amp;rsquo;s articles&lt;/a&gt;, join the mailing list and write your story. We&amp;rsquo;re looking forward to hear it and support you wherever we can 🙂&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: %f0%9f%8d%94%20Fat%20Boy%20at%2040&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2024%2ffat-boy-story%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Office vs. &#34;Home-Office&#34;</title>
      <link>https://soeren.one/2024/office-vs-home-office/</link>
      <pubDate>Tue, 09 Jan 2024 19:00:00 +0000</pubDate>
      <guid>https://soeren.one/2024/office-vs-home-office/</guid>
      <description>&lt;p&gt;In a few days, my parental leave comes to an end and I will go back to work. This will confront me with the question how much time I want to spend in office or work remotely. Time for reflection.&lt;/p&gt;
&lt;h1 id=&#34;the-situation&#34;&gt;The situation&lt;/h1&gt;
&lt;p&gt;Before Corona, on paper, we were allowed to work one day per week remotely. In reality, this flexibility did not exist. Working from home was considered an additional day off.&lt;/p&gt;
&lt;p&gt;During Corona the perception changed and the responsible parties came up with a new agreement. The 40/60 rule allows us to spend the majority of our working time remotely (60%) and expects us to come to office on two days per week - on average. The new reality is that there are people working in office almost 100%, while others are barely present. As long as everyone is happy - I think this is a great compromise.&lt;/p&gt;
&lt;h1 id=&#34;working-remotely-pros&#34;&gt;Working Remotely Pros&lt;/h1&gt;
&lt;p&gt;I became a big fan of working remotely when I was in consulting. Every morning I commuted 90min to office, put a headset on and was in customer meetings for the following 8 to 10 hours. Seeing colleagues? Maybe for a 30min lunch break. Maybe. Most times someone was still in a meeting and couldn’t join. Still, our manager wanted to us come to the office. He needed to see his sheep. Corona came, and - big surprise - we got the job done from home, too.&lt;/p&gt;
&lt;p&gt;Also in my current job working remotely comes with a lot of advantages. My commute distance is roughly 250km, working from home safes me three hours of time - one way.&lt;/p&gt;
&lt;p&gt;In addition, my team is located in three hemispheres. We&amp;rsquo;re barely in the same room and thus need virtual meetings anyway. What is the benefit of driving around just to put your headsets on?&lt;/p&gt;
&lt;p&gt;Plus, I can concentrate better when alone in a room instead of an open-plan office. But, being honest, that was my pre-parental experience.&lt;/p&gt;
&lt;p&gt;Finally, I like the setup I have at home better. The &lt;a href=&#34;https://soeren.one/uses&#34;&gt;chair is more comfortable, the screen larger, the keyboard more precise and the coffee tastes better&lt;/a&gt;.&lt;/p&gt;
&lt;h1 id=&#34;office-pros&#34;&gt;Office Pros&lt;/h1&gt;
&lt;p&gt;On the other hand, being in the office with colleagues is undoubtedly beneficial. There is the social interaction (something I really missed beginning of 2020), the spontaneous meetings in the cafeteria or the elevator and of course the overhearing of conversations that might influence your own work. It’s easier to jump into an ongoing conversation instead of thinking who might be a good person to contact for this particular problem.&lt;/p&gt;
&lt;p&gt;I also like having the possibility of after-work gatherings. Talking with colleagues out of the office, pushed me into &lt;a href=&#34;https://soeren.one/2023/first-automatic-watch/&#34;&gt;buying my first automatic watch&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Further plus, you always have someone to have lunch with. For me, this is really important. Sitting alone in front of a meal - most likely doing something on the phone while eating, does not sound like an enjoyable lunch break.&lt;/p&gt;
&lt;p&gt;And not to forget, if you work in office someone else pays desk, chair, mouse, keyboard, headset, electricity, internet, etc.. The additional room to work from in your apartment would not be  needed easily saving ~500€/month in the region I live.&lt;/p&gt;
&lt;h1 id=&#34;final-thoughts&#34;&gt;Final thoughts&lt;/h1&gt;
&lt;p&gt;One of the few advantages of Corona was that we could try working remotely. For me and many of my friends it wasn’t a realistic option before. And it seems that there are different types of people, some can work perfectly on remote locations, some need the office to separate home and work more clearly. I hope we can find ways of working that are flexible enough to fit everyone’s needs so that we can concentrate on what’s important and are not distracted by the circumstances.&lt;/p&gt;
&lt;p&gt;My current approach is that I spend most of the time working remotely and try to meet all domestic colleagues once per months in office for a couple of days. Getting the best out of both.&lt;/p&gt;
&lt;p&gt;P.S. In my &lt;a href=&#34;https://soeren.one/uses&#34;&gt;omnivore&lt;/a&gt; I saw, that &lt;a href=&#34;https://kevq.uk/home-vs-office-working/&#34;&gt;Kev&lt;/a&gt; wrote about this, too.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Office%20vs.%20%22Home-Office%22&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2024%2foffice-vs-home-office%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>🥂 Happy New Year</title>
      <link>https://soeren.one/2024/happy-new-year/</link>
      <pubDate>Mon, 01 Jan 2024 00:00:00 +0100</pubDate>
      <guid>https://soeren.one/2024/happy-new-year/</guid>
      <description>&lt;h3 id=&#34;dear-reader&#34;&gt;Dear Reader,&lt;/h3&gt;
&lt;p&gt;a new year has started. I couldn&amp;rsquo;t find the time to write a 2023 review yet - a lot has happened - but I still wanted to wish you, and your loved ones, a Happy New Year. May it bring many joyful experiences. I am really looking forward to continue writing here and read your awesome blogs. I really love reading them all. Thank you.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://media.giphy.com/media/BPJmthQ3YRwD6QqcVD/giphy.gif&#34; alt=&#34;Thank you!&#34;&gt;&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: %f0%9f%a5%82%20Happy%20New%20Year&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2024%2fhappy-new-year%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>🗓️ December 2023</title>
      <link>https://soeren.one/2023/december-2023/</link>
      <pubDate>Sat, 30 Dec 2023 17:00:00 +0100</pubDate>
      <guid>https://soeren.one/2023/december-2023/</guid>
      <description>&lt;p&gt;🙍 &lt;strong&gt;Personal:&lt;/strong&gt; This year marked the first Christmas with baby. In contrary to previous years, we spend the whole time at home and invited family and friends to our place. It was exhausting, but - with the usual exceptions - very joyful. Buying an extendable dining table beginning of the year was a good choice.&lt;/p&gt;
&lt;p&gt;🖥️ &lt;strong&gt;Work:&lt;/strong&gt; A few more weeks of parental leave. With the January report this section should become meaningful 🙂&lt;/p&gt;
&lt;p&gt;🧑‍💻 &lt;strong&gt;Blog:&lt;/strong&gt; I could keep the momentum and publish nine articles (incl. this one) in December. They tend to be short. It&amp;rsquo;s fine for me. I want to focus on publishing something, rather than having a perfectly assembled article. I hope that going back to work next month won&amp;rsquo;t influence this tender growing habit.&lt;/p&gt;
&lt;p&gt;📗 &lt;strong&gt;Journaling:&lt;/strong&gt; With some exceptions during my &lt;a href=&#34;https://soeren.one/2023/winter-wonderland-2023/&#34;&gt;Corona infection&lt;/a&gt;, I jotted down my thoughts on an almost daily basis. I read the &amp;ldquo;&lt;a href=&#34;https://jarunmb.com/2023/12/26/how-i-journal/&#34;&gt;How I Journal&amp;rdquo; article by mb&lt;/a&gt; and may write something similar in the future, too.&lt;/p&gt;
&lt;p&gt;📚 &lt;strong&gt;Reading:&lt;/strong&gt; I tried reading &amp;ldquo;&lt;a href=&#34;https://www.goodreads.com/book/show/39995046-ikigai&#34;&gt;Ikigai&lt;/a&gt;&amp;rdquo;, for the third time at least. Not sure if I will ever finish it. The topic is interesting, but the book is not pulling me into reading flow. I will give it another chance.&lt;/p&gt;
&lt;p&gt;📺 &lt;strong&gt;Watching:&lt;/strong&gt; We were not watching any series this month, and barely TV at all. We did not even have the time to watch &amp;ldquo;Home Alone&amp;rdquo; (but found out something &lt;a href=&#34;https://soeren.one/2023/home-alone-wealth/&#34;&gt;interesting about it&lt;/a&gt;). I reduced our Netflix subscription to a cheaper one - may cancel it soon.&lt;/p&gt;
&lt;p&gt;🛒 &lt;strong&gt;Shopping:&lt;/strong&gt; No major shopping as we try to keep Christmas presents at a minimum.&lt;/p&gt;
&lt;p&gt;🧳 &lt;strong&gt;Travel:&lt;/strong&gt; This year, we went to the mountains before Christmas and spend the Holy Night back home. I wrote about the &lt;a href=&#34;https://soeren.one/2023/holiday-travels-part-2/&#34;&gt;train trip&lt;/a&gt;, and the &lt;a href=&#34;https://soeren.one/2023/winter-wonderland-2023/&#34;&gt;time in tue mountains&lt;/a&gt;.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: %f0%9f%97%93%ef%b8%8f%20December%202023&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2023%2fdecember-2023%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>I&#39;ll read it</title>
      <link>https://soeren.one/2023/i-will-read-it/</link>
      <pubDate>Fri, 29 Dec 2023 19:00:00 +0000</pubDate>
      <guid>https://soeren.one/2023/i-will-read-it/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://manuelmoreale.com/&#34;&gt;Manuel Moreale&lt;/a&gt; wrote a helpful article for everyone thinking about starting a blog. He identified two issues soon-to-be-bloggers have:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;not knowing what to write about, and&lt;/li&gt;
&lt;li&gt;worrying that nobody will read it&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For the first issue, I suggest to read either &lt;a href=&#34;https://manuelmoreale.com/unsolicited-blogging-advice&#34;&gt;this article by Manuel&lt;/a&gt;, &lt;a href=&#34;https://meadow.bearblog.dev/who-am-i-writing-for/&#34;&gt;this one by Meadow&lt;/a&gt;, or &lt;a href=&#34;https://alienlebarge.ch/bookmarks/2023/11/what-to-blog-about-when/&#34;&gt;this one by alienlebarge&lt;/a&gt;. All three offer inspirations on what to write about and to not overthink it.&lt;/p&gt;
&lt;p&gt;Concerning the second issue, Manuel offers to be &lt;a href=&#34;https://manuelmoreale.com/i-ll-read-it&#34;&gt;your first reader&lt;/a&gt;. I like the idea and want to join the party. If you’re starting a blog or published something already, let me know. I will read it. Just reach out, I am only one email away.&lt;/p&gt;
&lt;p&gt;Currently, I read more than 100 blogs regularly. Some of them type daily, others only once a month or year. They also cover a bouquet of topics. All of them are interesting and I am convinced that yours will be, too.&lt;/p&gt;
&lt;p&gt;There are only two conditions:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;your blog needs to be written in either German or English, and&lt;/li&gt;
&lt;li&gt;your blog needs to have an RSS feed so that I will be informed about new types in my preferred reading app.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Long story short: if you want another regular reader of your blog - send it to me.&lt;/p&gt;
&lt;p&gt;Looking forwards to read even more great blogs soon!&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: I%27ll%20read%20it&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2023%2fi-will-read-it%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>I&#39;ll read it</title>
      <link>https://soeren.one/2023/i-will-read-it.de/</link>
      <pubDate>Fri, 29 Dec 2023 17:00:00 +0100</pubDate>
      <guid>https://soeren.one/2023/i-will-read-it.de/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://manuelmoreale.com&#34;&gt;Manuel Moreale&lt;/a&gt; hat einen hilfreichen Artikel für alle geschrieben, die darüber nachdenken, einen Blog zu starten. Er nennt zwei Probleme, die angehende Blogger haben:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;sie wissen nicht, worüber sie schreiben sollen, und&lt;/li&gt;
&lt;li&gt;die Befürchtung, dass es niemand lesen wird&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Für das erste Problem empfehle ich &lt;a href=&#34;https://manuelmoreale.com/unsolicited-blogging-advice&#34;&gt;diesen Artikel von Manuel&lt;/a&gt;, &lt;a href=&#34;https://meadow.bearblog.dev/who-am-i-writing-for/&#34;&gt;diesen von Meadow&lt;/a&gt; oder &lt;a href=&#34;https://alienlebarge.ch/bookmarks/2023/11/what-to-blog-about-when/&#34;&gt;diesen von alienlebarge&lt;/a&gt; zu lesen. Sie bieten Themenvorschläge an, aber auch Gedanken dazu es nicht mit dem Perfektionismus zu übertreiben.&lt;/p&gt;
&lt;p&gt;Was das zweite Thema betrifft, so bietet Manuel an, &lt;a href=&#34;https://manuelmoreale.com/i-ll-read-it&#34;&gt;der erster Leser&lt;/a&gt; zu sein. Mir gefällt die Idee und möchte mitmachen. Wenn du einen Blog starten willst oder bereits Artikel geschrieben hast, lass es mich wissen. Ich werde es lesen. Ich bin nur eine E-Mail entfernt.&lt;/p&gt;
&lt;p&gt;Derzeit lese ich mehr als 100 Blogs regelmäßig. Einige von ihnen schreiben täglich, andere nur einmal im Monat oder im Jahr. Sie decken auch einen bunten Strauß von Themen ab. Alle sind interessant, und ich bin überzeugt, dass auch deiner es sein wird.&lt;/p&gt;
&lt;p&gt;Es gibt nur zwei Bedingungen:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;dein Blog muss entweder auf Deutsch oder Englisch geschrieben sein, und&lt;/li&gt;
&lt;li&gt;dein Blog muss einen RSS-Feed haben, damit ich über neue Beiträge informiert werde.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Lange Rede, kurzer Sinn: Wenn du einen weiteren regelmäßigen Leser für deinen Blog suchst - schick ihn mir.&lt;/p&gt;
&lt;p&gt;Ich freue mich darauf, bald noch mehr tolle Blogs zu lesen!&lt;/p&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: I%27ll%20read%20it&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2023%2fi-will-read-it.de%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Home Alone &amp; Rich</title>
      <link>https://soeren.one/2023/home-alone-wealth/</link>
      <pubDate>Fri, 22 Dec 2023 16:30:00 +0100</pubDate>
      <guid>https://soeren.one/2023/home-alone-wealth/</guid>
      <description>&lt;p&gt;It’s that time of the year, where I enjoy watching „&lt;a href=&#34;https://en.m.wikipedia.org/wiki/Home_Alone&#34;&gt;Home Alone&lt;/a&gt;“. It’s one of those Christmas Movies warming my heart.&lt;/p&gt;
&lt;p&gt;Every time I watch it, I wonder how crazy rich the McAllisters are if they can afford traveling from Chicago to Paris over Christmas with 15 people, four of them in first class.&lt;/p&gt;
&lt;p&gt;Lucky me I don’t have to wonder anymore: the &lt;a href=&#34;https://www.nytimes.com/2023/12/20/movies/home-alone-mccallisters-wealth.html&#34;&gt;NYT asked three economists to estimate the wealth of Kevin&amp;rsquo;s family&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I recommend reading the full article, because it has some neat information in it, for example that Kevin’s parents didn’t pay for the flight tickets. His uncle did.&lt;/p&gt;
&lt;p&gt;But if you want the quick answer: the McAllisters are the 1%. To afford the house, the travels and everything they would need a yearly income of &amp;gt;600k USD based on todays standards (~300k USD in the 90s when the movie was shot).&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Source: &lt;a href=&#34;https://www.nytimes.com/2023/12/20/movies/home-alone-mccallisters-wealth.html&#34;&gt;https://www.nytimes.com/2023/12/20/movies/home-alone-mccallisters-wealth.html&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Home%20Alone%20%26%20Rich&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2023%2fhome-alone-wealth%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>I went to winter wonderland, and all I got was ...</title>
      <link>https://soeren.one/2023/winter-wonderland-2023/</link>
      <pubDate>Sun, 17 Dec 2023 11:00:00 +0100</pubDate>
      <guid>https://soeren.one/2023/winter-wonderland-2023/</guid>
      <description>&lt;h4 id=&#34;-heavy-snow-fall-a-week-spent-in-the-apartment-a-corona-infection-but-still-nice-family-time&#34;&gt;&amp;hellip; heavy snow fall, a week spent in the apartment, a Corona infection, but still nice family time.&lt;/h4&gt;
&lt;p&gt;I was really looking forward to this type. We went to the alps for a week (read here about the &lt;a href=&#34;https://soeren.one/2023/holiday-travels-part-2/&#34;&gt;adventures train journey&lt;/a&gt;) with the intention to spend some quality time surrounded by snow.&lt;/p&gt;
&lt;p&gt;I was so full of anticipation that I prepared a few paragraphs in advance that I wanted to use in the type. How we hiked through the snowy forest, how we went sledging, how we enjoyed the breathtaking views, and overall how beautiful everything was. But &amp;hellip;&lt;/p&gt;
&lt;p&gt;On the day we arrived, I got cold symptoms but didn’t think too much about it, because I did a Corona test before we left. The result was negative. The first few days passed by quickly, because there was heavy snow fall, causing the danger of avalanches to be „high“ (rank 4 out of 5) - and slopes to be closed for security. Looking out of the window you couldn&amp;rsquo;t see further than 10 meters. It was not what I expected but as I was having the cold symptoms it was a good excuse to stay in the apartment, drink a hot beverage and just relax.&lt;/p&gt;
&lt;p&gt;Then one night, the baby got a fever. I tested again and this time, the result was positive. I brought the plague to my family ☹️ Luckily, the fever went down after one day and her mood increased - but this definitely was not how I imagined our first &amp;ldquo;skiing trip&amp;rdquo; to be. We thought about going back early, but since we came by train, this was not an option. My conscience wouldn&amp;rsquo;t allow to sit on a full train - knowing that you could spread viruses. We stayed &amp;hellip;&lt;/p&gt;
&lt;p&gt;&amp;hellip; and were rewarded, at least a bit. On the last day, we were feeling much better, the sun came out and we could enjoy winter wonderland. Nevertheless, I hope that next time we will have more sun and less viruses around 🌞&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://onedrive.live.com/embed?resid=273EB2087BC33FC5%215177&amp;amp;authkey=%21AOnnxr_w3R89IE8&amp;amp;width=500&amp;amp;height=281&#34; alt=&#34;Winterwonderland&#34;&gt;&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: I%20went%20to%20winter%20wonderland%2c%20and%20all%20I%20got%20was%20...&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2023%2fwinter-wonderland-2023%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Holiday Travels - Part 3</title>
      <link>https://soeren.one/2023/holiday-travels-part-3/</link>
      <pubDate>Sun, 17 Dec 2023 10:30:00 +0100</pubDate>
      <guid>https://soeren.one/2023/holiday-travels-part-3/</guid>
      <description>&lt;p&gt;Good news needs to be shared, too. This is a short one.&lt;/p&gt;
&lt;p&gt;The second part of our Christmas Travels went like a charm. We boarded the first train at 08:47, made all connecting trains without any rush and arrived at 16:45 with just 15 minutes delay in Stuttgart. Thank you SBB &amp;amp; DB. 🚃🚋🚂&lt;/p&gt;
&lt;p&gt;After the &lt;a href=&#34;https://soeren.one/2023/holiday-travels-part-2/&#34;&gt;chaotic first trip&lt;/a&gt;, this was a blessing.&lt;/p&gt;
&lt;p&gt;Two more train-days planned. Fingers crossed there will also be short typeings about them 🤞&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Holiday%20Travels%20-%20Part%203&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2023%2fholiday-travels-part-3%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Holiday Travels - Part 2</title>
      <link>https://soeren.one/2023/holiday-travels-part-2/</link>
      <pubDate>Sun, 10 Dec 2023 17:30:00 +0100</pubDate>
      <guid>https://soeren.one/2023/holiday-travels-part-2/</guid>
      <description>&lt;p&gt;Yesterday marked the first day of our Christmas Travels. And unfortunately, the strike - which I mentioned in the &lt;a href=&#34;https://soeren.one/2023/holiday-travels-booked/&#34;&gt;first type&lt;/a&gt; - hit us. Not directly, but it’s after-effects. 👷‍♂️🪧&lt;/p&gt;
&lt;h4 id=&#34;this-is-how-our-travels-went&#34;&gt;This is how our travels went&lt;/h4&gt;
&lt;p&gt;Luckily, my wife was awake at night and saw that our train was cancelled. She immediately booked seats in an alternative connection. The new connection started half an hour earlier - thus our morning routine had to be accelerated.&lt;/p&gt;
&lt;p&gt;Funny thing though, the Deutsche Bahn only send a push notification for the cancellation about 30min before departure.&lt;/p&gt;
&lt;p&gt;We entered the alternative train and for the first two hours everything went fine. Then the train ended, because of „Ice and Snow“ two stops before we wanted to exit. ❄️☃️&lt;/p&gt;
&lt;p&gt;Luckily we could change trains to a local train operated by the Swiss Railway Company. They didn’t care about Ice and Snow. Ar least, the train took the exact same route that was impassable due to the German Railway Company.&lt;/p&gt;
&lt;p&gt;A fellow passenger put it like this: „You cannot rely on the German Railway Company. But luckily we‘re in a Swiss Train now. From now on, everything will work just fine.“ He was right. We had to change trains more often than planned but in the end we arrived as booked.&lt;/p&gt;
&lt;p&gt;Overall, this was a mixed experience. We arrived on time, but started half an hour earlier. And communication by the German team could have been better (why not send the push notification when it’s clear that the train is cancelled but only 30min before departure?)&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Holiday%20Travels%20-%20Part%202&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2023%2fholiday-travels-part-2%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Electricity Consumption</title>
      <link>https://soeren.one/2023/electricity-consumption/</link>
      <pubDate>Tue, 05 Dec 2023 09:00:00 +0100</pubDate>
      <guid>https://soeren.one/2023/electricity-consumption/</guid>
      <description>&lt;p&gt;This fall, we moved into a new apartment. The building is labeled low-energy - „&lt;a href=&#34;https://de.wikipedia.org/wiki/Effizienzhaus&#34;&gt;KfW55&lt;/a&gt;“ in German. Being a statistics nerd myself, I am curious how this effects our monthly energy consumption compared to the 70 year old building in which we lived before.&lt;/p&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;p&gt;&lt;strong&gt;First things first:&lt;/strong&gt; I am aware that I cannot compare the raw consumption rates 1:1. In the old building, heating and warm water were powered by oil and gas. In the new one, things are mainly powered by electricity. I expect the consumption to be higher - but, let&amp;rsquo;s see.&lt;/p&gt;
&lt;p&gt;In the old flat, we used to have an average electricity consumption of &lt;strong&gt;~2.000kWh&lt;/strong&gt;. The statistics we received from our provider, bucket this just above the average of a single-person household.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://onedrive.live.com/embed?resid=273EB2087BC33FC5%215179&amp;amp;authkey=%21AHMHj2ZIF-wJHyk&amp;amp;width=660&#34; alt=&#34;Average Electricity Consumption by household size&#34;&gt;&lt;/p&gt;
&lt;p&gt;In the new flat, the electricity meter currently shows &lt;strong&gt;360kWh&lt;/strong&gt;. Following a linear progression, we would end up at &lt;strong&gt;~1.500kWh&lt;/strong&gt; per year - even less than in the old flat and equal to the average consumption of a single person. However, heating period has started and within the first month we lived part-time in the old apartment.&lt;/p&gt;
&lt;p&gt;Fingers crossed that we can keep consumption on a low level. Feels good to be on the green side.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Electricity%20Consumption&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2023%2felectricity-consumption%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>My blogging workflow as of late 2023</title>
      <link>https://soeren.one/2023/blogging-workflow-2023/</link>
      <pubDate>Wed, 29 Nov 2023 20:00:00 +0100</pubDate>
      <guid>https://soeren.one/2023/blogging-workflow-2023/</guid>
      <description>&lt;p&gt;In 2019 I wrote an article about the &lt;a href=&#34;https://soeren.one/2019/hugo-mit-git-auf-uberspace-benutzen/&#34;&gt;technical background&lt;/a&gt; of this blog, and in 2020 there was a &lt;a href=&#34;https://soeren.one/2020/hugo-blogging-ipad/&#34;&gt;type about how I blogged using iPad&lt;/a&gt;. Neither of these articles mentioned the complete workflow, starting by how I capture ideas and how they slowly form into larger articles.&lt;/p&gt;
&lt;p&gt;The idea of this type is to give this comprehensive overview. Not for you to replicate it, because it is so cool &amp;amp; smooth, but for me to see how things change over time. I feel ok with the current setup. If you have suggestions on how to improve it, please email me (using the button on the bottom of this page).&lt;/p&gt;
&lt;h3 id=&#34;collecting-ideas&#34;&gt;Collecting ideas&lt;/h3&gt;
&lt;p&gt;First step is idea collection. Without an idea, there won’t be a blog type. In the past, I used &lt;a href=&#34;https://getpocket.com/de/&#34;&gt;Pocket&lt;/a&gt; as a read-later app and pasted interesting articles or podcasts in there. It took some until I realised that links will remain there. I never found the time and commitment to go through the list again. Something simpler was needed. That’s when I switched to „&lt;a href=&#34;https://www.icloud.com/notes&#34;&gt;Apple Notes&lt;/a&gt;“. The app is available on all my devices, it is fast, easy to use, and has the ability to paste almost anything in it. From the workflow perspective this means that I create a new note for every interesting topic I want to write about, paste links, pictures, and my thoughts into it and then leave it. I don’t care about formatting or well written text at this moment. The only purpose is to collect the ideas I have, when I have them, in an as easy as possible way.&lt;/p&gt;
&lt;h3 id=&#34;formulating-ideas&#34;&gt;Formulating ideas&lt;/h3&gt;
&lt;p&gt;Next step is the draft creation. Within my Notes app, I start formulating the raw notes into a text draft. Usually, I re-do this step a couple of times, slightly changing the text with every iteration. Formatting is still typeponed.&lt;/p&gt;
&lt;h3 id=&#34;transfer-to-markdown&#34;&gt;Transfer to markdown&lt;/h3&gt;
&lt;p&gt;Once the text is in a good enough state, I copy it over to a markdown file, add the front matter (proper title, tags, etc.) and links. Using the markdown syntax, the text is formatted for the first time. This goes hand-in-hand with another round of rephrasing sentences or even paragraphs.&lt;/p&gt;
&lt;h3 id=&#34;publish&#34;&gt;Publish&lt;/h3&gt;
&lt;p&gt;The final step is publishing. This blog is maintained in a &lt;a href=&#34;https://soeren.one/tags/git&#34;&gt;git&lt;/a&gt; repository, so in order to publish content, the markdown file needs to be added to the repository. If I blog from the MacBook, I just paste the file in the respective directory, run &lt;code&gt;git add .&lt;/code&gt; and &lt;code&gt;git commit -m …&lt;/code&gt;. If I publish from a mobile device, I add the file to the repository using &lt;a href=&#34;https://apps.apple.com/de/app/working-copy-git-client/id896694807&#34;&gt;Working Copy&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The git repository is hosted on &lt;a href=&#34;https://soeren.one/tags/uberspace&#34;&gt;uberspace&lt;/a&gt;, which allows some magic (aka a git hook), when something is pushed to it. Each time I push changes to the remote server, a small script runs that builds the static site and makes it available at my domain. No need to build the site manually each time - a big time and frustration safer 🙂&lt;/p&gt;
&lt;h3 id=&#34;refinement&#34;&gt;Refinement&lt;/h3&gt;
&lt;p&gt;Once an article is published, I read it in the browser … and will definitely find some typos, broken links or formulations I don’t like. Ergo, switching apps, fixing it, and then re-publish the changes.&lt;/p&gt;
&lt;h3 id=&#34;ideas-for-the-future&#34;&gt;Ideas for the future&lt;/h3&gt;
&lt;p&gt;From the &lt;a href=&#34;https://soeren.one/2023/default-apps-2023/&#34;&gt;default-apps&lt;/a&gt; event, I learned that many people use &lt;a href=&#34;https://obsidian.md/&#34;&gt;obsidian&lt;/a&gt; for note taking. I will give it a try and see if it can replace my Notes and Markdown system break.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: My%20blogging%20workflow%20as%20of%20late%202023&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2023%2fblogging-workflow-2023%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>🎄 Holiday Travels Booked</title>
      <link>https://soeren.one/2023/holiday-travels-booked/</link>
      <pubDate>Wed, 29 Nov 2023 08:00:00 +0100</pubDate>
      <guid>https://soeren.one/2023/holiday-travels-booked/</guid>
      <description>&lt;p&gt;Only a few more weeks until the &lt;a href=&#34;https://soeren.one/tags/christmas&#34;&gt;Christmas Holidays&lt;/a&gt;. As our family lives in various parts of the country, it takes some effort to organize that we can all see each other. The holidays are &lt;a href=&#34;https://soeren.one/tags/travel&#34;&gt;travel&lt;/a&gt; times.&lt;/p&gt;
&lt;p&gt;This week, I booked the train tickets for our travels. It will be the first time, we‘re doing this with a baby and I am not sure if we can carry all the luggage, but - I like train rides, especially in winter. No worries about icy roads, just looking out of the window and enjoying the winter wonderland, or reading a book. The little one also does not have to sit fastened all the time, but can crawl and play.&lt;/p&gt;
&lt;p&gt;Unfortunately, the German Railway Company „&lt;a href=&#34;https://soeren.one/tags/deutsche-bahn&#34;&gt;Deutsche Bahn&lt;/a&gt;“ and the train drivers’ union couldn’t agree on a new tariff, meaning that strikes are on the horizon. As an optimist, I still hope that we don’t have to switch to the car on short notice. 🚂🚗&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: %f0%9f%8e%84%20Holiday%20Travels%20Booked&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2023%2fholiday-travels-booked%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>My First Automatic Watch</title>
      <link>https://soeren.one/2023/first-automatic-watch/</link>
      <pubDate>Wed, 22 Nov 2023 19:00:00 +0000</pubDate>
      <guid>https://soeren.one/2023/first-automatic-watch/</guid>
      <description>&lt;p&gt;It is the summer of 2023 and I am sitting over dinner with colleagues. We enjoy a beer or two and I come to recon the watch a colleague is wearing. It is a pretty eye-catching model - on the dial is a small globe showing a part of the world. I ask the colleague about the watch and learn that it shows the country he is coming from. Like &lt;a href=&#34;https://kevquirk.com/pen-pal-november-2023-jarrod-blundy&#34;&gt;Kev and Jarrod mention in their pen pal letters&lt;/a&gt;, I enjoy listening to people when they talk about something they are passionate about. Over the evening, I learn a lot about India and watches.&lt;/p&gt;
&lt;p&gt;On the way back home - a little dizzy - I think that watches are pretty cool. I wear a Smart Watch since 2019, but was never really happy with it. Yes, the Apple Watch has a great display and the rings are something that I miss. But, the battery was a pain. Best case, it lasted for about one and a half days. Last year, I switched from the Series 3 to a &lt;a href=&#34;https://www.garmin.com/de-DE/p/735520&#34;&gt;Garmin Fenix 7&lt;/a&gt;. I wanted to do more sports, had a &lt;a href=&#34;https://soeren.one/2022/e5&#34;&gt;bigger hiking trip planned&lt;/a&gt; - the focus on sports not smartness felt like a good choice. And I have to admit, the watch is great. The battery lasts almost two full weeks, the sport programs and included training plans are way better than with the Apple Watch - but it comes with the price of a not cool display and that you can recognise from afar that it&amp;rsquo;s a sport watch. Yet, when I am out of town for a couple of days, I need to carry an additional charger for it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://res.garmin.com/transform/image/upload/c_limit,dpr_2.0,f_auto,h_896,q_auto,w_700/c_limit,h_896,w_700/v1/Product_Images/en/products/010-02540-21/v/cf-xl?pgw=1%E2%80%9C&#34; alt=&#34;Garmin Fenix 7&#34;&gt;&lt;/p&gt;
&lt;p&gt;I was not perfectly convinced. It could be that this relates to my recent thoughts about how much technology and electronics I am using. After the &amp;ldquo;quiet days&amp;rdquo; of Corona, life sometimes feels stressful and having a watch constantly telling me that I walked more steps yesterday, doesn&amp;rsquo;t bring much resilience. I thought, I should ditch the sport watch and buy something dump. A watch, that is just a watch. That can tell the time, maybe the date, but nothing else. With a slim design. And an automatic movement so that I charges itself while wearing it.&lt;/p&gt;
&lt;p&gt;I decided to start researching.&lt;/p&gt;
&lt;p&gt;On the next morning, I remembered that the colleague recommended  &lt;a href=&#34;https://www.junghans.de&#34;&gt;Junghans&lt;/a&gt;. I googled and and instantly fell in love with the brand. It&amp;rsquo;s located in the Black Forest, triggering a sense of home. They build Bauhaus watches - a German design school in the early 20th century that inspired many of Apple&amp;rsquo;s products. You can watch a 7 minute documentary about it on YouTube: &lt;a href=&#34;https://youtu.be/Y69wOKg6yp4&#34;&gt;https://youtu.be/Y69wOKg6yp4&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&#34;https://www.junghans.de/kollektionen/uhren/junghans-max-bill/max-bill-automatic/27400702?c=26&#34;&gt;Max Bill&lt;/a&gt; is a tribute to this and an astonishing watch. It has a minimalistic and clear design. It directly spoke to me and I wanted to buy it. But - the price tag of about 1.2k Euro, felt expansive for the first watch.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://ch.dev.junghans.de/media/image/fc/34/bb/27_3500-04_front.png&#34; alt=&#34;Junghans Max Bill&#34;&gt;&lt;/p&gt;
&lt;p&gt;I started looking for alternatives and this can be considered as the first step into the rabbit hole. I googled for Bauhaus watches, found cool watches of &lt;a href=&#34;https://de.braun-clocks.com/de/collections/watches&#34;&gt;Braun&lt;/a&gt; (&lt;a href=&#34;https://www.cultofmac.com/188753/the-braun-products-that-inspired-apples-iconic-designs-gallery/&#34;&gt;if you look for their product studies it is interesting how many things you can see that look like later Apple products&lt;/a&gt;), stumbled upon &lt;a href=&#34;https://www.sternglas.de&#34;&gt;Sternglas&lt;/a&gt; and their &lt;a href=&#34;https://www.sternglas.de/products/naos-automatik-weiss&#34;&gt;Naos&lt;/a&gt;, and &lt;a href=&#34;https://www.youtube.com/@TeddyBaldassarre&#34;&gt;Teddy Baldassarre&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In the meantime, I was not sure if I wanted to buy a Bauhaus watch anymore. I was in love with their look, but having a small kid at home and spending time in the outdoors, they felt delicate. This was when Field Watches, like the &lt;a href=&#34;https://www.hamiltonwatch.com/de-de/collection/khaki-field.html&#34;&gt;Hamilton Khaki Field&lt;/a&gt; went up on my preference list. I like their military look, they are more robust when it comes to water resistance and scratches, but &amp;hellip; I was not sure if these are the watches I want to wear in the office.&lt;/p&gt;
&lt;p&gt;Switching focus again to look for an &amp;ldquo;everyday watch&amp;rdquo;, and came across the &lt;a href=&#34;https://www.tissotwatches.com/de-de/collection/alle-uhren/t-classic/gentleman.html&#34;&gt;Tissot Gentleman&lt;/a&gt;. I was about to buy it, when I checked their website again and found the &lt;a href=&#34;https://www.tissotwatches.com/de-de/t1398071604100.html&#34;&gt;&amp;ldquo;Chemin des Tourelles&amp;rdquo;&lt;/a&gt;. I love the blue dial in combination with the brown leather strap and the dimensions feel like they fit my slim wrists better. But again, almost 1.000€. Too much.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.tissotwatches.com/media/catalog/product/T/1/T139.807.16.041.00.png&#34; alt=&#34;TISSOT CHEMIN DES TOURELLES&#34;&gt;&lt;/p&gt;
&lt;p&gt;I did another detour and checked the Seiko portfolio again. The PRX is great, but expansive. The Cocktail Time were ranking up, but didn&amp;rsquo;t feel right as of now.&lt;/p&gt;
&lt;p&gt;Then we moved apartments and the whole topic became quiet. Entering Black Week, I was thinking about it again and thought that I could find one of the favourite watches cheaper.&lt;/p&gt;
&lt;p&gt;Unfortunately, I did not. But - I still bought a watch. I went with the &lt;a href=&#34;https://www.sternglas.de/products/hamburg-automatik-edition-neuwerk-vintage-mokka&#34;&gt;&amp;ldquo;Sternglas Hamburg Neuwerk Edition&amp;rdquo;&lt;/a&gt;. It is a small brand from Hamburg, and they made this limited edition to express their admiration for the Northern Sea. While I am not a sailer, I like Hamburg, the rough weather at the sea and the design of the watch.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.uhrzeit.org/bilder/produkte/uhren/Sternglas/S02HHN11VI11/raw2.jpg&#34; alt=&#34;Sternglas Hamburg Neuwerk Edition&#34;&gt;&lt;/p&gt;
&lt;p&gt;I made this decision, because something became clear to me. &lt;strong&gt;There is no perfect watch for me.&lt;/strong&gt; If I check them long enough, I will find something that is not right. Or, as my colleague put it recently, every watch in his collection contributes something to his individual time measurement universe. Meaning, the Hamburg will likely be the start of a small watch collection.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: My%20First%20Automatic%20Watch&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2023%2ffirst-automatic-watch%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Spring cleaning</title>
      <link>https://soeren.one/2023/spring-cleaning/</link>
      <pubDate>Mon, 13 Nov 2023 16:00:00 +0100</pubDate>
      <guid>https://soeren.one/2023/spring-cleaning/</guid>
      <description>&lt;p&gt;Although quite late in the year, I did some spring cleaning on this blog today. Using the „&lt;a href=&#34;../default-apps-2023&#34;&gt;default apps 2023&lt;/a&gt;“ as an opportunity, I finally took the time to implement some changes that were on the todo list for quite some time.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Comments are finally gone.&lt;/strong&gt;
I used as self hosted version of „&lt;a href=&#34;https://isso-comments.de/&#34;&gt;isso&lt;/a&gt;“ but found myself not updating the software in several years. Additionally, forcing users to leave personal data (name and email) on this site just to get in touch didn’t feel much GDPR‘ly. Like on many cool blogs these days, there is now a „reply via email“ button below each type.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;default language switched to English&lt;/strong&gt;. I was thinking about this for quite a while. Why should I write in a foreign language on default? For me, there are mainly two reasons. 1) Posts on this blog are often inspired by articles I read on the Internet. Many of them being in English. Giving credit to the authors and building upon them feels easier if the content does not have to be translated. And 2), although I am not looking to build a huge audience here, I still have the feeling that connecting with fellow bloggers is easier if there is no language barrier. The older types on this blog that are still in German may get an English version soon.&lt;/p&gt;
&lt;p&gt;Finally, some smaller changes: I refined the „privacy“ site and combined it with the license information in the new „&lt;a href=&#34;https://soeren.one/good-to-know&#34;&gt;good to know&lt;/a&gt;“ page. And I added an „&lt;a href=&#34;https://soeren.one/about&#34;&gt;about&lt;/a&gt;“ page. It does not have much content yet, but I am willing to fill it soon.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Spring%20cleaning&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2023%2fspring-cleaning%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>My default apps at the end of 2023</title>
      <link>https://soeren.one/2023/default-apps-2023/</link>
      <pubDate>Sun, 12 Nov 2023 20:00:00 +0100</pubDate>
      <guid>https://soeren.one/2023/default-apps-2023/</guid>
      <description>&lt;p&gt;I stumbled upon this by reading &lt;a href=&#34;https://kevquirk.com/my-default-apps-at-the-end-of-2023&#34;&gt;Kev’s great blog&lt;/a&gt; but it seems there are a &lt;a href=&#34;https://defaults.rknight.me/&#34;&gt;bunch of people currently sharing their default apps&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For me, always looking for a new app to improve my workflow, this is great. However, I had to notice that many people - like myself - stick with the default apps of their operating system. But, I will scroll through most of the other contributions to check if there is something to try out for me.&lt;/p&gt;
&lt;p&gt;I won’t let you wait any longer - here is my list:&lt;/p&gt;
&lt;p&gt;📨 Mail Client: Mail.app&lt;/p&gt;
&lt;p&gt;📮 Mail Server: uberspace.de&lt;/p&gt;
&lt;p&gt;📝 Notes: Notes.app, and just trying out Obsidian.md&lt;/p&gt;
&lt;p&gt;✅ To-Do: Reminders.app&lt;/p&gt;
&lt;p&gt;📷 iPhone Photo Shooting: Camera.app&lt;/p&gt;
&lt;p&gt;🟦 Photo Management: Synology Photos&lt;/p&gt;
&lt;p&gt;📆 Calendar: Calendar.App &amp;amp; Calendar 5&lt;/p&gt;
&lt;p&gt;📁 Cloud File Storage: Synology Drive&lt;/p&gt;
&lt;p&gt;📖 RSS: miniflux + Reeder&lt;/p&gt;
&lt;p&gt;🙍🏻‍♂️ Contacts: Contacts.app&lt;/p&gt;
&lt;p&gt;🌐 Browser: Safari&lt;/p&gt;
&lt;p&gt;💬 Chat: Signal, WhatsApp&lt;/p&gt;
&lt;p&gt;🔖 Bookmarks: currently everywhere. Need help 🫠&lt;/p&gt;
&lt;p&gt;📑 Read It Later: Pocket&lt;/p&gt;
&lt;p&gt;📜 Word Processing: Word&lt;/p&gt;
&lt;p&gt;📈 Spreadsheets: Excel&lt;/p&gt;
&lt;p&gt;📊 Presentations: PowerPoint&lt;/p&gt;
&lt;p&gt;🛒 Shopping Lists: Reminders.app&lt;/p&gt;
&lt;p&gt;🍴 Meal Planning: no app, discussions over dinner&lt;/p&gt;
&lt;p&gt;💰 Budgeting and Personal Finance: Excel&lt;/p&gt;
&lt;p&gt;📰 News: Sueddeutsche Zeitung&lt;/p&gt;
&lt;p&gt;🎵 Music: Apple Music&lt;/p&gt;
&lt;p&gt;🎤 Podcasts: Castro&lt;/p&gt;
&lt;p&gt;🔐 Password Management: Enpass&lt;/p&gt;
&lt;p&gt;You can get the full list of participants from here: &lt;a href=&#34;https://defaults.rknight.me/&#34;&gt;https://defaults.rknight.me/&lt;/a&gt; and also use the opportunity to add some new blogs to your RSS reader.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: My%20default%20apps%20at%20the%20end%20of%202023&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2023%2fdefault-apps-2023%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>This is democracy day!</title>
      <link>https://soeren.one/2021/democracy-day.de/</link>
      <pubDate>Wed, 20 Jan 2021 19:00:05 +0100</pubDate>
      <guid>https://soeren.one/2021/democracy-day.de/</guid>
      <description>&lt;p&gt;&lt;strong&gt;20. Januar 2020 - 17:47 CET:&lt;/strong&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=j3a6n_1owPY&#34;&gt;Habemus president&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Nach turbulenten Jahren fällt vielen vermutlich ein Stein vom Herzen, dass die Amtseinführung des neuen US Präsidenten ohne größere Pannen verlaufen ist und Joe Biden planmäßig um 11:47 Ortszeit vereidigt wurde.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: This%20is%20democracy%20day%21&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2021%2fdemocracy-day.de%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>This is democracy day!</title>
      <link>https://soeren.one/2021/democracy-day/</link>
      <pubDate>Wed, 20 Jan 2021 19:00:05 +0100</pubDate>
      <guid>https://soeren.one/2021/democracy-day/</guid>
      <description>&lt;p&gt;&lt;strong&gt;20th January 2020 - 17:47 CET:&lt;/strong&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=j3a6n_1owPY&#34;&gt;Habemus president&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;After a turbulent few years, many people are probably relieved that the inauguration of the new US President went off without any major mishaps and Joe Biden was sworn in on schedule at 11:47 local time.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: This%20is%20democracy%20day%21&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2021%2fdemocracy-day%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>100 Days To Offload</title>
      <link>https://soeren.one/2021/100daystooffload.de/</link>
      <pubDate>Fri, 08 Jan 2021 19:00:05 +0100</pubDate>
      <guid>https://soeren.one/2021/100daystooffload.de/</guid>
      <description>&lt;p&gt;Ich lese immer noch gern Blogs. Die Kurzlebigkeit der Social Media Dienste hat mich immer nur so semi begeistert. Und auf einem dieser Blogs bin ich dieser Tage auf die &lt;em&gt;&lt;a href=&#34;https://100daystooffload.com/&#34;&gt;100 Days To Offload&lt;/a&gt;&lt;/em&gt; von &lt;a href=&#34;https://fosstodon.org/@kev&#34;&gt;Kev Quirk&lt;/a&gt; gestoßen.&lt;/p&gt;
&lt;p&gt;Die Idee ist 100 Beiträge auf dem eigenen Blog während eines Jahres zu veröffentlichen. Die einzelnen Beiträge müssen nicht übermäßig lang oder tiefgründig sein, es geht eher darum überhaupt was zu schreiben und es zu einer Regelmäßigkeit zu machen.&lt;/p&gt;
&lt;p&gt;Ich werde also versuchen in diesem Jahr wieder mehr zu bloggen. Ich glaube 100 ist für mich ein bisschen hoch gegriffen, aber wenn es Ende des Jahres 50, 40, oder auch nur 20 Beiträge sind, ist es immer noch mehr als in den vergangenen Jahren. Und jetzt, da ich herausgefunden habe, wie ich gut &lt;a href=&#34;https://soeren.one/2020/hugo-blogging-ipad/&#34;&gt;vom Tablet aus bloggen&lt;/a&gt; kann, ist es vielleicht auch ein bisschen leichter. :smile:&lt;/p&gt;
&lt;p&gt;Damit ich den Überblick nicht verliere, werde ich alle Beiträge mit dem Tag &lt;a href=&#34;https://soeren.one/tags/100daystooffload&#34;&gt;100DaysToOffload&lt;/a&gt; versehen und auch, wenn ich heute erst hierüber schreibe, zähle ich dreisterweise die drei Beiträge dieses Jahr mit. Also &amp;hellip; nur noch 96 😅&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: 100%20Days%20To%20Offload&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2021%2f100daystooffload.de%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>100 Days To Offload</title>
      <link>https://soeren.one/2021/100daystooffload/</link>
      <pubDate>Fri, 08 Jan 2021 19:00:05 +0100</pubDate>
      <guid>https://soeren.one/2021/100daystooffload/</guid>
      <description>&lt;p&gt;I still enjoy reading blogs. The ephemeral nature of social media services has always left me only semi-enthusiastic. And it was on one of these blogs that I came across the &lt;em&gt;&lt;a href=&#34;https://100daystooffload.com/&#34;&gt;100 Days To Offload&lt;/a&gt;&lt;/em&gt; by &lt;a href=&#34;https://fosstodon.org/@kev&#34;&gt;Kev Quirk&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The idea is to publish 100 posts on your own blog over the course of a year. The individual posts don&amp;rsquo;t have to be overly long or in-depth, it&amp;rsquo;s more about writing something at all and making it a regular thing.&lt;/p&gt;
&lt;p&gt;So I&amp;rsquo;m going to try to blog more again this year. I think 100 is a bit high for me, but if it&amp;rsquo;s 50, 40, or even just 20 posts by the end of the year, it&amp;rsquo;s still more than in previous years. And now that I&amp;rsquo;ve figured out how to blog well &lt;a href=&#34;https://soeren.one/2020/hugo-blogging-ipad/&#34;&gt;from a tablet&lt;/a&gt;, it might be a little easier too. :smile:&lt;/p&gt;
&lt;p&gt;So that I don&amp;rsquo;t lose track, I&amp;rsquo;m going to tag all posts &lt;a href=&#34;https://soeren.one/tags/100daystooffload&#34;&gt;100DaysToOffload&lt;/a&gt; and even though I&amp;rsquo;m just writing about this today, I&amp;rsquo;m brazenly counting the three posts this year. So &amp;hellip; only 96 more 😅&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: 100%20Days%20To%20Offload&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2021%2f100daystooffload%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Meine Podcasts - 2020</title>
      <link>https://soeren.one/2021/podcasts-2020/</link>
      <pubDate>Sun, 03 Jan 2021 13:00:00 +0100</pubDate>
      <guid>https://soeren.one/2021/podcasts-2020/</guid>
      <description>&lt;p&gt;Auch wenn ich 2020 die meiste Zeit im Home Office verbracht habe und die Pendelzeit mit der Bahn weitestgehend weggefallen ist, habe ich trotzdem eine Menge &lt;a href=&#34;https://soeren.one/tags/podcast&#34;&gt;Podcasts&lt;/a&gt; gehört. Wenn ich mir die &lt;a href=&#34;https://soeren.one/2019/podcasts-2019&#34;&gt;Liste vom letzten Jahr&lt;/a&gt; vom letzten Jahr so ansehe, hat sich trotzdem einiges geändert - bzw. haben sich Präferenzen verschoben.&lt;/p&gt;
&lt;p&gt;Leider sehe ich in meiner Podcast App &lt;a href=&#34;https://castro.fm/&#34;&gt;Castro&lt;/a&gt; nur, dass ich seit Beginn der Nutzung Mitte 2019 insgesamt &lt;strong&gt;988 Epidoden&lt;/strong&gt; gehört habe. Ich versuche die Tage auch mal herauszufinden, ob ich da noch ein etwas detailierteres Bild bekommen kann. Insgesamt habe ich derzeit &lt;strong&gt;57 Podcasts&lt;/strong&gt; abonniert.&lt;/p&gt;
&lt;p&gt;Nun aber zu eigentlichen Liste. Wie auch im letzten Jahr, der Einfachheit halber, in alphabetischer Reihenfolge.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.bbc.co.uk/programmes/w13xttx2&#34;&gt;&lt;strong&gt;13 minutes to the moon&lt;/strong&gt;&lt;/a&gt;: Season 1: How the first moon landing was saved. The story of the people who made Apollo 11 happen. Season 2: Apollo 13: the extraordinary story, told by the people who flew it and saved it&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://das-a.ch/&#34;&gt;&lt;strong&gt;Ach?&lt;/strong&gt;&lt;/a&gt;: Geschichte mal anders. Ist bei mir neu im Programm, ich bin noch unsicher ob die Jungs einen dauerhaften Platz unter meinen Abonnements bekommen.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.zeit.de/serie/alles-gesagt&#34;&gt;&lt;strong&gt;Alles gesagt?&lt;/strong&gt;&lt;/a&gt;: Der unendliche Interviewpodcast. Wir befragen außergewöhnliche Menschen – so lange, bis sie selbst erklären, dass jetzt &amp;ldquo;alles gesagt&amp;rdquo; sei. Ein Gespräch kann also zwölf Minuten oder acht Stunden dauern.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.bitsundso.de/&#34;&gt;&lt;strong&gt;Bits und so&lt;/strong&gt;&lt;/a&gt;: Bits und so ist der wöchentliche Mac- und Gadget-Podcast mit Timo Hetzel und Crew.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://codestammtis.ch/&#34;&gt;&lt;strong&gt;Codestammtisch&lt;/strong&gt;&lt;/a&gt;: ZWEI SOFTWAREENTWICKLER — MAX UND NATHAN — UNTERHALTEN SICH EIN GETRÄNK LANG ÜBER THEMEN AUS DER SOFTWAREENTWICKLUNG. DA BEIDE KEINE AHNUNG VON BIER HABEN, ABER ES GERNE TRINKEN, TRINKEN DIE BEIDEN MEISTENS BIER.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.heise.de/ct/entdecken/?hauptrubrik=%40ctmagazin&amp;amp;unterrubrik=c%27t+uplink&#34;&gt;&lt;strong&gt;c&amp;rsquo;t uplink&lt;/strong&gt;&lt;/a&gt;: Der wöchentliche Podcast aus Nerdistan: Redakteure sprechen in kleiner Runde über ihre aktuellen c&amp;rsquo;t-Artikel.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://chaosradio.de/&#34;&gt;&lt;strong&gt;Chaosradio&lt;/strong&gt;&lt;/a&gt;: Im Chaosradio besprechen Menschen aus dem CCC und seinem Umfeld seit 1995 jeden Monat technische und gesellschaftliche Themen.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://cre.fm/&#34;&gt;&lt;strong&gt;CRE: Technik, Kultur, Gesellschaft&lt;/strong&gt;&lt;/a&gt;: CRE ist ein unregelmäßig erscheinender Interview-Podcast mit Tim Pritlove zu Themen aus den Bereichen Technik, Kultur und Gesellschaft.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.ndr.de/nachrichten/info/podcast4684.html&#34;&gt;&lt;strong&gt;Das Coronavirus-Update&lt;/strong&gt;&lt;/a&gt;: Kein Tag vergeht ohne neue Nachrichten zum Coronavirus Sars-CoV-2. Längst haben wir uns an Maßnahmen wie Mundschutz, Abstand und Hygieneregeln gewöhnt. Und noch immer ist kein Ende der Pandemie in Sicht. In unserem wöchentlichen Podcast wollen wir verlässlich über neue Erkenntnisse der Forschung informieren. Wie steht es um einen Impfstoff? Wie entwickelt sich die Test-Strategie? Besteht Hoffnung auf ein Medikament? Die NDR Wissenschaftsredakteurin Korinna Hennig spricht dazu im Wechsel mit Christian Drosten, Leiter der Virologie in der Berliner Charité, und mit Sandra Ciesek, Leiterin des Instituts für Medizinische Virologie am Universitätsklinikum Frankfurt.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.kuechenstud.io/medienradio/&#34;&gt;&lt;strong&gt;Das Interview&lt;/strong&gt;&lt;/a&gt;: Philip Banse spricht mit Gästen über unsere Gesellschaft&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.zeit.de/serie/das-politikteil&#34;&gt;&lt;strong&gt;Das Politikteil&lt;/strong&gt;&lt;/a&gt;: Warum kostet ein Kalb in Deutschland nur ein paar Euro? Kann Joe Biden die USA versöhnen? Und sind die Volksparteien noch zu retten? Am Ende der Woche sprechen wir über Politik – was sie antreibt, was sie anrichtet, was sie erreichen kann. Jeden Freitag zwei Moderatoren, ein Gast und ein Geräusch. Im Wechsel hören Sie hier Ileana Grabitz und Marc Brost sowie Tina Hildebrandt und Heinrich Wefing.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.dw.com/de/deutsch-lernen/das-sagt-man-so/s-32376&#34;&gt;&lt;strong&gt;Das sagt man so&lt;/strong&gt;&lt;/a&gt;: Was bedeutet es, wenn man einen Korb kriegt und wieso geht Liebe durch den Magen? „Das sagt man so!“ präsentiert häufig verwendete deutsche Redewendungen und Sprichwörter und erklärt den Kontext, in dem sie angewendet werden. Durch interaktive Übungen könnt ihr testen, ob ihr alles richtig verstanden habt&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.sueddeutsche.de/thema/Das_Thema&#34;&gt;&lt;strong&gt;Das Thema&lt;/strong&gt;&lt;/a&gt;: Mit dem Podcast &amp;ldquo;Das Thema&amp;rdquo; können Sie die Süddeutsche Zeitung ganz neu erleben. Alle zwei Wochen gibt es eine neue Folge. Mit Analysen und Hintergründen zu dem Spitzenjournalismus der SZ - direkt von unseren Autoren im Gespräch mit Vinzent-Vitus Leitgeb und Laura Terberl.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://dataskeptic.com/&#34;&gt;&lt;strong&gt;Data Skeptic&lt;/strong&gt;&lt;/a&gt;: Your trusted podcast, centered on data science, machine learning, and artificial intelligence.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.datacamp.com/community/podcast&#34;&gt;&lt;strong&gt;Data Framed&lt;/strong&gt;&lt;/a&gt;: Data Science is one of the fastest growing industries and has been called the « Sexiest job of the 21st Century ». But what exactly is Data Science? In the podcast by DataCamp, Hugo Bowne-Anderson approaches this question from the perspective of what problems Data Science tries to solve instead of what definition fits it best. From automated medical diagnosis and self-driving cars to recommendation systems and climate change, come on a journey with industry and academic experts to explore the inner workings of the industry that will color the 21st century.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.denkangebot.org/&#34;&gt;&lt;strong&gt;Denkangebot&lt;/strong&gt;&lt;/a&gt;: In diesem Podcast geht Katharina Nocun (kattascha) aktuellen politischen Debatten auf den Grund. Gemeinsam mit Experten nimmt sie Argumente und Fakten auseinander. Dieser Podcast ist ein Denkangebot für alle, die sich gerne tiefer in ein Thema einarbeiten.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.ardaudiothek.de/deutschland3000-ne-gute-stunde-mit-eva-schulz/66261430&#34;&gt;&lt;strong&gt;Deutschland 3000&lt;/strong&gt;&lt;/a&gt;: Wenn man jemand anderen kennenlernt, erfährt man immer auch was Neues über sich selbst. Deshalb trifft Eva Schulz hier jede Woche Menschen aus ganz verschiedenen Bereichen, irgendwo zwischen Pop und Politik, zum Interview - und macht sich so ihre Gedanken.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.deutschlandfunknova.de/podcasts/download/eine-stunde-history&#34;&gt;&lt;strong&gt;Eine Stunde History&lt;/strong&gt;&lt;/a&gt;: Karl der Große, die Nürnberger Prozesse, Boat People und Flüchtlinge: Was hat Gestern mit Heute zu tun?&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://fairquatscht.podigee.io/&#34;&gt;&lt;strong&gt;Fairquatscht&lt;/strong&gt;&lt;/a&gt;: Bei Fairquatscht dreht sich alles um Nachhaltigkeit. Der Podcast behandelt die unterschiedlichsten Themen, die man durch die grüne Brille betrachten kann. Ob Goldgewinnung, Kindererziehung oder urbane Landwirtschaft - Fairquatscht schaut genau hin, hinterfragt kritisch und hört interessiert zu. Jede Folge behandelt ein anderes, spannendes Thema. Dafür holt sich Moderatorin Marisa Becker (@mysustainableme) jedes Mal eine&lt;em&gt;n kompetenten Gesprächspartner&lt;/em&gt;in vor das Mikrofon.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://forschergeist.de/&#34;&gt;&lt;strong&gt;Forschergeist&lt;/strong&gt;&lt;/a&gt;: Forschergeist ist ein Podcast über Bildung und Forschung. Wir bieten Einblicke in die Arbeit von Wissenschaftlern und versuchen auszuloten, was Forschergeist ausmacht: Neugier, Ausdauer und Mut.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.geschichte.fm/&#34;&gt;&lt;strong&gt;Geschichten aus der Geschichte&lt;/strong&gt;&lt;/a&gt;: Seit über fünf Jahren erzählen sich die Historiker Daniel Meßner und Richard Hemmer Woche für Woche eine Geschichte aus der Geschichte. Das Besondere daran: der eine weiß nie, was der andere ihm erzählen wird. Dabei geht es um vergessene Ereignisse, außergewöhnliche Persönlichkeiten und überraschende Zusammenhänge der Geschichte aus allen Epochen.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.deutschlandfunk.de/hintergrund.723.de.html&#34;&gt;&lt;strong&gt;Hintergrund&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.deutschlandfunknova.de/hoersaal&#34;&gt;&lt;strong&gt;Hörsaal&lt;/strong&gt;&lt;/a&gt;: Mal hören, wohin uns die Wissenschaft bringt. Was Forscher über unser Leben herausfinden. Welche Antworten sie für unsere Zukunft haben.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://lagedernation.org/&#34;&gt;&lt;strong&gt;Lage der Nation&lt;/strong&gt;&lt;/a&gt;: Der Politik-Podcast aus Berlin mit Philip Banse und Ulf Buermeyer&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://lineardigressions.com/&#34;&gt;&lt;strong&gt;Linear Digressions&lt;/strong&gt;&lt;/a&gt;: &lt;em&gt;Wurde zwar eingestellt, die einzelnen Folgen sind aber trotzdem interessant.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.spiegel.de/thema/podcast_lobo/&#34;&gt;&lt;strong&gt;Lobo - Der Debatten Podcast&lt;/strong&gt;&lt;/a&gt;: &lt;em&gt;Eingestellt&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://logbuch-netzpolitik.de/&#34;&gt;&lt;strong&gt;Logbuch: Netzpolitik&lt;/strong&gt;&lt;/a&gt;: Logbuch:Netzpolitik ist ein wöchentlicher Podcast über das netzpolitische Geschehen mit Linus Neumann und Tim Pritlove.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://minkorrekt.de/&#34;&gt;&lt;strong&gt;Methodisch inkorrekt&lt;/strong&gt;&lt;/a&gt;: Die Rockstars der Wissenschaft&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.zeit.de/serie/ok-america&#34;&gt;&lt;strong&gt;OK, America?&lt;/strong&gt;&lt;/a&gt;: Das transatlantische Bündnis steckt in der Krise: America First, raus aus dem Pariser Klimaabkommen, Streit um die Nahostpolitik. Und Donald Trump steht womöglich vor seiner zweiten Amtszeit als Präsident. Klaus Brinkbäumer und Rieke Havertz lieben die USA, obwohl sie manchmal an ihnen verzweifeln. In diesem Podcast sprechen sie über aktuelle Debatten aus den USA und den Wahlkampf. Aber auch über Burger und Basketball, über das Silicon Valley und den Supreme Court, über Drogen und TV. Denn um US-Politik zu verstehen, muss man die Amerikaner verstehen – mit ihren Leidenschaften, Nöten und Eigenarten.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://raumzeit-podcast.de/&#34;&gt;&lt;strong&gt;Raumzeit&lt;/strong&gt;&lt;/a&gt;: Raumzeit ist ein kostenloses und werbefreies Podcast-Angebot der Metaebene.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.zeit.de/serie/servus-gruezi-hallo&#34;&gt;&lt;strong&gt;Servus. Grüezi. Hallo&lt;/strong&gt;&lt;/a&gt;: Vieles von dem, was in Deutschland politisch neu und brisant scheint, ist in Österreich und der Schweiz längst normal. Es wird Zeit, den beiden Ländern zuzuhören. Im Politikpodcast &amp;ldquo;Servus. Grüezi. Hallo.&amp;rdquo; reden wir wöchentlich über die Politik und Gesellschaften der drei Länder. Vielleicht kann man ja voneinander lernen&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.spiegel.de/thema/podcast_smarter_leben/&#34;&gt;&lt;strong&gt;Smarter leben&lt;/strong&gt;&lt;/a&gt;: Ideen für ein besseres Leben haben wir alle. Aber wie setzen wir sie im Alltag um? In &amp;ldquo;Smarter leben&amp;rdquo; treffen wir jede Woche Menschen, die uns verraten, wie es klappen kann.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://soziopod.de/&#34;&gt;&lt;strong&gt;Soziopod&lt;/strong&gt;&lt;/a&gt;: Herr Breitenbach und Doktor Köbel tauschen sich über philosophische, soziologische und pädagogische Themen aus. Ein Bildungspodcast zum Mitdenken.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://anchor.fm/spaetzle&#34;&gt;&lt;strong&gt;Spätzle Valley&lt;/strong&gt;&lt;/a&gt;: Spätzle Valley ist der Podcast über das Startup-Leben in Baden-Württemberg. Basti und Chris zeigen euch an welchen Zukunftsideen lokale Gründer tüfteln, wie sich ihr Weg gestaltet und wohin die Reise für sie gehen soll. Spätzle Valley ist der Podcast für alle Gründungsinteressierten, die nicht ins Silicon Valley auswandern möchten.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.stadtpalais-stuttgart.de/festivals/digitales-stadtpalais&#34;&gt;&lt;strong&gt;StadtPalais Podcast&lt;/strong&gt;&lt;/a&gt;: Die Kreativköpfe und erfahrenen Podcast-Macher&lt;em&gt;innen Kim Hoss und Steffen Geldner sprechen ab sofort einmal im Monat mit Museumsmacher&lt;/em&gt;innen, Szenemenschen, Kulturschaffenden und Expert&lt;em&gt;innen über Themen die Stuttgarter&lt;/em&gt;innen mit ihrer Stadt verbinden. Die Themen sind dabei so vielseitig wie die Stadt selbst und reichen von urbaner Stadtkultur, Ausstellungen, Installationen, Clubkultur, elektronischer Musik und Graffiti bis zu Nachhaltigkeit, Umwelt und städtebaulichen Utopien.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.spiegel.de/thema/podcast_stimmenfang/&#34;&gt;&lt;strong&gt;Stimmenfang&lt;/strong&gt;&lt;/a&gt;: Politische Analysen, Interviews mit Politikern und die Geschichten unserer Hörerinnen und Hörer. &amp;ldquo;Stimmenfang - Der Politik-Podcast&amp;rdquo; fragt: Wie funktioniert Politik in Deutschland? Und wo muss sie besser werden?&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.ndr.de/nachrichten/info/podcast2994.html&#34;&gt;&lt;strong&gt;Synapsen&lt;/strong&gt;&lt;/a&gt;: Wissenschaft ist mehr als eine Schlagzeile. Der Podcast Synapsen begibt sich auf Spurensuche und liefert Fakten, Hintergründe und Geschichten zu aktuellen Fragen der Forschung: Seit Corona kennt jeder den R-Wert, aber was genau machen Modellierer damit? Plötzlich wollen alle wieder zum Mond fliegen, warum eigentlich? Jede Woche treffen sich die &amp;ldquo;Synapsen&amp;rdquo;-Hosts Maja Bahtijarević und Lucie Kluth mit Journalist*Innen, die aktuelle Fragen der Wissenschaft recherchiert haben.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.bbc.co.uk/programmes/p08llv8n/episodes/downloads&#34;&gt;&lt;strong&gt;The Bomb&lt;/strong&gt;&lt;/a&gt;: My grandad worked on the bomb that dropped on Hiroshima. Could another man - Leo Szilard - have stopped it?&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.nytimes.com/column/the-daily&#34;&gt;&lt;strong&gt;The Daily&lt;/strong&gt;&lt;/a&gt;: This is how the news should sound. Twenty minutes a day, five days a week, hosted by Michael Barbaro and powered by New York Times journalism.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://ukw.fm/&#34;&gt;&lt;strong&gt;UKW&lt;/strong&gt;&lt;/a&gt;: Unsere kleine Welt&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.zeit.de/serie/unter-pfarrerstoechtern&#34;&gt;&lt;strong&gt;Unter Pfarrerstöchtern&lt;/strong&gt;&lt;/a&gt;: Wie einsam war Gott vor der Schöpfung? Warum aß Eva vom verbotenen Apfel? Und was hat die Sintflut mit dem Klimawandel zu tun? Die Schwestern Sabine Rückert, stellvertretende Chefredakteurin der ZEIT, und Johanna Haberer, Theologieprofessorin, sprechen über die Bibel. Sie erzählen all jene Geschichten, mit denen sie als Pfarrerstöchter aufgewachsen sind – und räumen dabei auf mit Kitsch und Klischees. Und sie fragen: Was sagen uns die uralten Mythen der Bibel heute? „Unter Pfarrerstöchtern“ will niemanden bekehren, sondern erzählen und zum Nachdenken anregen: Was steht eigentlich drin im Buch der Bücher, das seit Jahrtausenden die Weltgeschichte prägt?&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www1.wdr.de/mediathek/audio/zeitzeichen/index.html&#34;&gt;&lt;strong&gt;WDR ZeitZeichen&lt;/strong&gt;&lt;/a&gt;: Ob Staatsgründung oder Machtverfall, Lebensdaten großer Frauen und Männer, Wendepunkte der Menschheitsgeschichte, Friedensverträge und Katastrophen, Erfindungen und Entdeckungen - im ZeitZeichen wird Geschichte lebendig.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://podcasts.apple.com/de/podcast/werkstattgespr%C3%A4che/id1406551001&#34;&gt;&lt;strong&gt;Werkstattgespräche&lt;/strong&gt;&lt;/a&gt;: Narben und Glückseligkeit. Stolz und Materialschwäche Wir sprechen mit Machern über ihre Projekte.&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Meine%20Podcasts%20-%202020&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2021%2fpodcasts-2020%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Bloggen vom iPad</title>
      <link>https://soeren.one/2020/hugo-blogging-ipad.de/</link>
      <pubDate>Mon, 28 Dec 2020 12:00:00 +0100</pubDate>
      <guid>https://soeren.one/2020/hugo-blogging-ipad.de/</guid>
      <description>&lt;p&gt;Leider versanden Ideen für neue Blog-Beiträge bei mir häufiger, weil mir der &lt;em&gt;Aufwand&lt;/em&gt; zu groß vorkommt abends den Laptop nochmal hochzufahren und die Gedanken zu ordnen. Ich bin daher immer auf der Suche nach Möglichkeiten die Hemmschwelle, so weit wie möglich abzusenken.&lt;/p&gt;
&lt;p&gt;Als guten Ansatz könte ich mir vorstellen, den Laptop aus der Gleichung zu streichen und von einem Gerät zu bloggen, das ich eh andauernd in der Hand habe: Smartphone oder Tablet zum Beispiel. Weil das Handy-Display aber vielleicht doch ein bisschen klein ist, schaue ich mir heute an, ob ich &lt;em&gt;gut&lt;/em&gt; vom iPad aus bloggen kann. Und &lt;strong&gt;ja&lt;/strong&gt;, dieser Artikel ist komplett auf dem iPad entstanden.&lt;/p&gt;
&lt;p&gt;Als Unterbau für mein Blog nutze ich &lt;a href=&#34;https://soeren.one/tags/hugo&#34;&gt;Hugo&lt;/a&gt;, das ich (&lt;a href=&#34;https://soeren.one/2019/hugo-mit-git-auf-uberspace-benutzen&#34;&gt;wie her beschrieben&lt;/a&gt;) auf einem &lt;a href=&#34;https://soeren.one/tags/uberspace&#34;&gt;uberspace&lt;/a&gt; betreibe. Das hat den Vorteil, das ich einen Teil der Magie auf den Server auslagern kann. Konkret habe ich im &lt;a href=&#34;https://soeren.one/tags/git&#34;&gt;Git&lt;/a&gt;-Repository auf dem Server einen &lt;code&gt;post-update&lt;/code&gt;-Hook eingerichtet. Dieser erstellt die statischen Files automatisch nach jedem Commit.&lt;/p&gt;
&lt;p&gt;Auf dem i-Device muss ich demnach Hugo nicht installiert haben sondern benötige lediglich einen Git-Client und einen Texteditor. Beides habe ich in &lt;a href=&#34;https://workingcopyapp.com/&#34;&gt;Working Copy&lt;/a&gt; gefunden.&lt;/p&gt;
&lt;p&gt;Die App kostet ein bisschen was, ist aus meiner Sicht aber jeden Cent wert. Vor allem, weil es hervorragend in &lt;a href=&#34;https://soeren.one/tags/ios&#34;&gt;iOS&lt;/a&gt; eingebunden ist. So ist das Repository bspw. über die Dateien-App aufrufbar - ich kann den Inhalt also mit vielen verschiedenen Apps bearbeiten.&lt;/p&gt;
&lt;p&gt;Mein Workflow gestaltet sich nun wie folgt:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Innerhalb von Working Copy dupliziere ich ein existierendes Markdown-File als Grundlage für den neuen Artikel und passe den YAML-Header an.&lt;/li&gt;
&lt;li&gt;Im integrierten Texteditor öffne ich die neue Datei und schreibe den Artikel. Für ein bisschen mehr Syntax-Highlighting, kann man die Datei auch in einem externen Editor (bspw. Textastic) öffnen.&lt;/li&gt;
&lt;li&gt;Wenn ich Screenshots oder andere Dateien einbinden möchte, speichere ich diese über die iOS-Dateien-App direkt im &lt;code&gt;static&lt;/code&gt;-Ordner des Repositories.&lt;/li&gt;
&lt;li&gt;Wenn ich fertig bin, nutze ich Working Copy um die Änderungen zu committen und anschließend ins Repository zu pushen. Der uberspace aktualisiert dann automatisch den Blog.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Einfacher gehts kaum.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Bloggen%20vom%20iPad&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2020%2fhugo-blogging-ipad.de%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Publish to Blog from iPad</title>
      <link>https://soeren.one/2020/hugo-blogging-ipad/</link>
      <pubDate>Mon, 28 Dec 2020 12:00:00 +0100</pubDate>
      <guid>https://soeren.one/2020/hugo-blogging-ipad/</guid>
      <description>&lt;p&gt;Unfortunately, ideas for new blog posts often fizzle out because I find it too much of an effort to boot up my laptop in the evening and organize my thoughts. I am therefore always on the lookout for ways to lower the inhibition threshold as much as possible.&lt;/p&gt;
&lt;p&gt;A good approach would be to remove the laptop from the equation and blog from a device that I have in my hand all the time anyway: Smartphone or tablet, for example. But because the cell phone display is perhaps a bit small, I&amp;rsquo;m going to see if I can blog &lt;em&gt;well&lt;/em&gt; from an iPad today. And &lt;strong&gt;yes&lt;/strong&gt;, this article was written entirely on the iPad.&lt;/p&gt;
&lt;p&gt;I use &lt;a href=&#34;https://soeren.one/tags/hugo&#34;&gt;Hugo&lt;/a&gt; as the foundation for my blog, which I run (&lt;a href=&#34;https://soeren.one/2019/hugo-mit-git-auf-uberspace-benutzen&#34;&gt;as described here&lt;/a&gt;) on a &lt;a href=&#34;https://soeren.one/tags/uberspace&#34;&gt;uberspace&lt;/a&gt;. This has the advantage that I can outsource some of the magic to the server. Specifically, I have set up a &lt;code&gt;post-update&lt;/code&gt; hook in the &lt;a href=&#34;https://soeren.one/tags/git&#34;&gt;Git&lt;/a&gt; repository on the server. This automatically creates the static files after each commit.&lt;/p&gt;
&lt;p&gt;So I don&amp;rsquo;t need to have Hugo installed on the i-Device, I just need a Git client and a text editor. I found both in &lt;a href=&#34;https://workingcopyapp.com/&#34;&gt;Working Copy&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The app costs a bit, but in my opinion it&amp;rsquo;s worth every penny. Especially because it is perfectly integrated into &lt;a href=&#34;https://soeren.one/tags/ios&#34;&gt;iOS&lt;/a&gt;. For example, the repository can be accessed via the Files app - so I can edit the content with many different apps.&lt;/p&gt;
&lt;p&gt;My workflow is now as follows:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;within Working Copy, I duplicate an existing Markdown file as the basis for the new article and adapt the YAML header.&lt;/li&gt;
&lt;li&gt;open the new file in the integrated text editor and write the article. For a little more syntax highlighting, you can also open the file in an external editor (e.g. Textastic).&lt;/li&gt;
&lt;li&gt;if I want to include screenshots or other files, I save them directly to the &lt;code&gt;static&lt;/code&gt; folder of the repository via the iOS Files app.&lt;/li&gt;
&lt;li&gt;when I&amp;rsquo;m done, I use Working Copy to commit the changes and then push them to the repository. The uberspace then automatically updates the blog.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It could hardly be easier.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Publish%20to%20Blog%20from%20iPad&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2020%2fhugo-blogging-ipad%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Corona-Daten des RKI mit Python an Telegram-Kanal senden</title>
      <link>https://soeren.one/2020/rki-daten-telegram-senden-python/</link>
      <pubDate>Sun, 27 Dec 2020 17:00:00 +0100</pubDate>
      <guid>https://soeren.one/2020/rki-daten-telegram-senden-python/</guid>
      <description>&lt;p&gt;Dritter und letzter Teil der Reihe in der ich beschreibe wie ich &lt;a href=&#34;https://soeren.one/2020/rki-daten-laden-python&#34;&gt;Daten vom RKI mit Python abziehe&lt;/a&gt;, &lt;a href=&#34;https://soeren.one/2020/rki-daten-visualisieren-python&#34;&gt;diese mit Plotly grafisch aufbereite&lt;/a&gt; und schließlich &lt;a href=&#34;https://soeren.one/2020/rki-daten-telegram-senden-python&#34;&gt;jeden Morgen in einen Telegram-Kanal sende&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In diesem Artikel schauen wir uns gemeinsam an, wie man einen Telegram-Bot erstellt, diesen einem Kanal hinzufügt und schließlich mit &lt;a href=&#34;https://soeren.one/tags/python&#34;&gt;Python&lt;/a&gt; Nachrichten verschicken lässt.&lt;/p&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;h3 id=&#34;telegram-bot-erstellen&#34;&gt;Telegram Bot erstellen&lt;/h3&gt;
&lt;p&gt;Im Gegensatz zu anderen Messengern ist es bei &lt;a href=&#34;https://soeren.one/tags/telegram&#34;&gt;Telegram&lt;/a&gt; überaus leicht, eigene Bots zu erstellen. Der &lt;em&gt;BotFather&lt;/em&gt; kümmert sich um die technischen Details, ihr müsst ihm lediglich mitteilen wie eurer Bot heißen soll. Beginnt also zunächst einen Chat mit dem Account &lt;a href=&#34;https://t.me/botfather&#34;&gt;&lt;code&gt;@BotFather&lt;/code&gt;&lt;/a&gt; - ihr findet ihn ganz einfach über die Suche.&lt;/p&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;p&gt;Mit dem Befehl &lt;code&gt;/newbot&lt;/code&gt; kündigt ihr dem &lt;em&gt;BotFather&lt;/em&gt; an, dass ihr einen neuen Bot erstellen wollt. Er fragt euch daraufhin, wie euer Bot heißen soll - einmal sprechend, einmal technisch. Der technische Name muss auf &lt;code&gt;bot&lt;/code&gt; enden. Wir könnten den Bot also beispielsweise &amp;ldquo;CoronaBotStuttgart&amp;rdquo; und &amp;ldquo;CoronaBotStuttgart_bot&amp;rdquo; nennen.&lt;/p&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;p&gt;Der &lt;em&gt;BotFather&lt;/em&gt; nennt euch daraufhin euren &lt;strong&gt;API access token&lt;/strong&gt;. Dieser ist quasi Benutzername und Passwort für euren Bot in einem. &lt;strong&gt;Diese Information solltet ihr also unter keinen Umständen aus den Händen geben&lt;/strong&gt;. Ihr braucht diesen Token gleich, um den Bot von Python aus zu steuern.&lt;/p&gt;
&lt;h3 id=&#34;telegram-bot-einem-kanal-hinzufügen&#34;&gt;Telegram Bot einem Kanal hinzufügen&lt;/h3&gt;
&lt;p&gt;Jetzt solltet ihr einen neuen Kanal erstellen und euren Bot als Admin hinzufügen. Dazu geht ihr wie folgt vor:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;In Telegram klickt auf &amp;ldquo;New Channel&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Gebt eurem Kanal einen Namen&lt;/li&gt;
&lt;li&gt;Entscheidet ob der Kanal öffentlich oder privat sein soll und unter welcher URL er erreichbar sein soll&lt;/li&gt;
&lt;li&gt;Fügt euren Bot dem Kanal hinzu (sucht nach dem &amp;ldquo;sprechenden Namen&amp;rdquo;)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Der Kanal ist nun erstellt.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Öffnet ihn und klickt oben auf den Namen und wählt &amp;ldquo;Aministrators&amp;rdquo; aus.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Befördert&lt;/em&gt; euren Bot zum Admin des Kanals. Er braucht lediglich das Recht Nachrichten senden zu können (&amp;ldquo;Post Messages&amp;rdquo;). Alle anderen Berechtigungen könnt ihr ihm (wenn ihr wollt) entziehen.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Anschließend könnt ihr eine &lt;em&gt;&amp;ldquo;Hello World&amp;rdquo;&lt;/em&gt;-Nachricht in den Kanal schreiben.&lt;/p&gt;
&lt;h3 id=&#34;chatid-herausfinden&#34;&gt;ChatID herausfinden&lt;/h3&gt;
&lt;p&gt;Jetzt müssen wir die ChatID eures Kanals herausfinden. Diese benötigen wir (zusammen mit dem access token), um später Nachrichten im Namen eures Bots versenden zu können.&lt;/p&gt;
&lt;p&gt;Die ChatID erhaltet ihr, wenn ihr folgende URL öffnet: &lt;code&gt;https://api.telegram.org/bot&amp;lt;access_token&amp;gt;/getUpdates&lt;/code&gt;. Natürlich müsst ihr &lt;code&gt;&amp;lt;access_token&amp;gt;&lt;/code&gt; mit eurem Token ersetzen. Wichtig ist, dass &lt;code&gt;/bot&lt;/code&gt; vor dem Token in der URL erhalten bleibt. Die Ausgabe sollte ungefähr so aussehen:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;{&amp;#34;ok&amp;#34;:true,&amp;#34;result&amp;#34;:[{&amp;#34;update_id&amp;#34;:773467236,
&amp;#34;message&amp;#34;:{&amp;#34;message_id&amp;#34;:550,&amp;#34;from&amp;#34;:{&amp;#34;id&amp;#34;:343487567,&amp;#34;is_bot&amp;#34;:false,&amp;#34;first_name&amp;#34;:&amp;#34;Bat&amp;#34;,&amp;#34;last_name&amp;#34;:&amp;#34;Man&amp;#34;,&amp;#34;username&amp;#34;:&amp;#34;wayne123&amp;#34;,&amp;#34;language_code&amp;#34;:&amp;#34;de-DE&amp;#34;}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Die ChatID verbirgt sich in der Nachricht unter &lt;code&gt;&amp;quot;id&amp;quot;&lt;/code&gt;. Im obigen Fall also &lt;code&gt;&amp;quot;id&amp;quot;:343487567&lt;/code&gt;. Speichert euch die ChatID ebenfalls sicher ab.&lt;/p&gt;
&lt;h3 id=&#34;nachrichten-an-telegram-kanal-senden&#34;&gt;Nachrichten an Telegram-Kanal senden&lt;/h3&gt;
&lt;p&gt;Nun schreiben wir uns eine Funktion, die mit Hilfe des Access Tokens und der ChatID einen bestimmten Inhalt sendet. Wir übergeben der Funktion drei Parameter:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;chatid&lt;/code&gt;: Wenn ihr mal was testen wollt schadet es nicht, wenn der Bot auch in einen anderen Chat posten kann.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;message_type&lt;/code&gt;: Hiermit legen wir fest, ob eine Textnachricht oder ein Bild/Foto versendet werden soll. Je nachdem unterscheidet sich der API-Aufruf.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;message_content&lt;/code&gt;: Übergibt den Inhalt der Nachricht (Bild oder Text) an die Funktion.&lt;/li&gt;
&lt;li&gt;Den Access Token, den ihr vom &lt;em&gt;BotFather&lt;/em&gt; erhalten habt, tragt ihr in der ersten Zeile ein.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;telegram_bot_send&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;chatid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;message_type&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;message_content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# define access token (received from BotFather)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;bot_token&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;lt;access_token&amp;gt;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# translate message_type in API URL&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;mtype&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;text&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;bot_mtype&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;/sendMessage&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;elif&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;mtype&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;photo&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;bot_mtype&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;/sendPhoto&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# concatenate API URL&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;bot_url&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;https://api.telegram.org/bot&amp;#39;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bot_token&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bot_mtype&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;?chat_id=&amp;#39;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;chatid&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# send message&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;15&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;mtype&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;text&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;16&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;requests&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bot_url&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;amp;parse_mode=Markdown&amp;amp;text=&amp;#39;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;17&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;elif&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;mtype&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;photo&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;18&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;requests&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;post&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bot_url&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;files&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;photo&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;rb&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;19&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;20&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Damit können wir nun Inhalte über unseren Bot in den entsprechenden Telegram-Kanal senden. Den &lt;a href=&#34;https://soeren.one/rki-daten-visualisieren-python&#34;&gt;zuvor erzeugten Plot&lt;/a&gt; sowie eine kleine Textnachricht können wir beispielsweise mit den folgenden Befehlen absenden. Der Text muss nicht statisch sein und kann bspw. auch dynamisch aus den Daten erzeugt werden.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# send messages to Telegram channel&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;telegram_bot_send&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;chatid&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;343487567&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;message_type&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;photo&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;message_content&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;link/to/exported/plot.png&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;telegram_bot_send&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;chatid&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;343487567&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;message_type&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;text&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;message_content&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;Die Indizenz in Stuttgart ist immer noch sehr hoch&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Damit sind wir am Ende dieser kleinen Serie angekommen. Ich hoffe ihr könnt daraus was für eure Projekte ableiten. &lt;a href=&#34;https://soeren.one/contact&#34;&gt;Schreibt mir gern&lt;/a&gt;, wenn es euch weitergeholfen hat oder Probleme auftreten.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Corona-Daten%20des%20RKI%20mit%20Python%20an%20Telegram-Kanal%20senden&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2020%2frki-daten-telegram-senden-python%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Corona-Daten des RKI mit Python visualisieren</title>
      <link>https://soeren.one/2020/rki-daten-visualisieren-python/</link>
      <pubDate>Sun, 27 Dec 2020 15:00:00 +0100</pubDate>
      <guid>https://soeren.one/2020/rki-daten-visualisieren-python/</guid>
      <description>&lt;p&gt;Im letzten Post hatte ich bereits angekündigt, dass ich aktuell daran arbeite &lt;a href=&#34;https://soeren.one/2020/rki-daten-laden-python&#34;&gt;Daten vom RKI mit Python abzuziehen&lt;/a&gt;, &lt;a href=&#34;https://soeren.one/2020/rki-daten-visualisieren-python&#34;&gt;diese mit Plotly grafisch aufzubereiten&lt;/a&gt; und schließlich &lt;a href=&#34;https://soeren.one/2020/rki-daten-telegram-senden-python&#34;&gt;jeden Morgen in einen Telegram-Kanal zu senden&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Heute werde ich euch zeigen, wie ich die heruntergeladenen Daten mit &lt;code&gt;plotly&lt;/code&gt; in &lt;a href=&#34;https://soeren.one/tags/python&#34;&gt;Python&lt;/a&gt; visualisiere.&lt;/p&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;p&gt;Auch dafür bereiten wir zunächst das Skript vor, indem wir die notwendigen Abhängigkeiten laden. Falls euch etwas fehlt, könnt ihr es in der Regel mittels &lt;code&gt;pip install &amp;lt;name&amp;gt;&lt;/code&gt; jederzeit installieren.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;os&lt;/code&gt; und &lt;code&gt;pandas&lt;/code&gt; benutzen wir erneut, um die zuvor exportierten Daten einzulesen und entsprechend aufzubereiten&lt;/li&gt;
&lt;li&gt;mit &lt;code&gt;plotly.graph_objects&lt;/code&gt; werden wir die Visualisierung erzeugen&lt;/li&gt;
&lt;li&gt;und &lt;code&gt;kaleido.scopes.plotly&lt;/code&gt; hilft uns die eigentlich interaktive Grafik von Plotly als statische Datei zu exportieren&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#imports&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;os&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;pandas&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;pd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;plotly.graph_objects&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;go&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;requests&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;kaleido.scopes.plotly&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PlotlyScope&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Mit der Hilfe von &lt;code&gt;os.path.abspath()&lt;/code&gt; defineren wir uns die Arbeitspfade. Gehen wir davon aus, dass sich in dem Verzeichnis, in dem unser Python-Skript liegt, auch die Unterordner &lt;code&gt;data/&lt;/code&gt; und &lt;code&gt;img/&lt;/code&gt; befinden. Aus ersterem wollen wir später die Datei &lt;code&gt;rki.csv&lt;/code&gt; laden. In letzteres den fertigen Plot speichern.&lt;/p&gt;
&lt;p&gt;Außerdem, sollten wir ein paar Farben festlegen.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# define working paths&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;app_dir&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;abspath&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dirname&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;vm&#34;&gt;__file__&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;data_dir&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;app_dir&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;/data/&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;img_dir&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;app_dir&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;/img/&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# define colors&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;spaetzle_gelb_light&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;rgb(255,254,249)&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;spaetzle_gelb_dark&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;rgb(145,113,5)&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;light_grey&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;rgb(204, 204, 204)&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Laden wir die CSV-Datei und schränken sie auf den/die für uns relevanten Landkreis/e ein.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# import as Pandas data frame and restrict to county &amp;#34;Stuttgart&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;rki&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pd&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;read_csv&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data_dir&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;rki.csv&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;sep&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;df_str&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rki&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;loc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rki&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;GEN&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Stuttgart&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;df_str&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;head&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Jeder &lt;code&gt;plotly&lt;/code&gt;-Plot beginnt mit &lt;code&gt;fig = go.Figure()&lt;/code&gt;. An &lt;code&gt;fig&lt;/code&gt; werden dann weitere Elemente angefügt.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Beginnen wir damit ein Liniendiagramm hinzuzufügen (&lt;code&gt;add_trace(go.Scatter())&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Dieses soll auf der x-Achse die Zeit zeigen (&lt;code&gt;x = df_str.last_update&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Und auf der y-Achse die 7-Tage-Inzidenz pro 100.000 Einwohner (&lt;code&gt;y = df_str.cases7_per_100k&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Die einzelnen Punkte sollen mit der (gerundeten) Inzidenz beschriftet werden (&lt;code&gt;text = df_str.cases7_per_100k.round()&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Angezeigt werden soll eine Linie, ein Marker und die Beschriftung (&lt;code&gt;mode=&amp;quot;lines+markers+text&amp;quot;&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Außerdem wollen schwäbische Farben, also Spätzegelb verwenden&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# create plot&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;fig&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;go&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Figure&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;fig&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_trace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;go&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Scatter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;df_str&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;last_update&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;df_str&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cases7_per_100k&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;text&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;df_str&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cases7_per_100k&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;round&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;mode&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;lines+markers+text&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;textposition&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;top center&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;textfont_color&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;spaetzle_gelb_dark&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;line&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;color&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;spaetzle_gelb_dark&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;p&gt;Schon ganz nett, aber layout-technisch geht da noch was.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Geben wir dem Plot einen Titel (&lt;code&gt;title = &#39;7-Tage Inzidenz pro 100k Einwohner: Stuttgart&#39;&lt;/code&gt;) in der richtigen Farbe (&lt;code&gt;title_font_color=spaetzle_gelb_dark&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Die x-Achse wollen wir dezent in grau zeigen (&lt;code&gt;xaxis = dict()&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Die y-Achse brauchen wir gar nicht (&lt;code&gt;yaxis = dict()&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Als Hintergrundfarbe wollen wir spätzle-gelb (&lt;code&gt;plot_bgcolor&lt;/code&gt;, &lt;code&gt;paper_bgcolor&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Und eine Legende brauchen wir auch nicht (&lt;code&gt;showlegend = False&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Um Missverständnissen vorzubeugen wollen wir außerdem, dass die y-Achse nicht abgeschnitten wird (vor allem, da wir sie ausgeblendet haben). Mit &lt;code&gt;update_yaxes(rangemode = &#39;tozero&#39;)&lt;/code&gt; sorgen wir dafür, dass die y-Achse immer bei null beginnt.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# make layout great again!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;fig&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;update_layout&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;title&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;7-Tage Inzidenz (100k EW): Stuttgart&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;title_font_color&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;spaetzle_gelb_dark&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;xaxis&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;showline&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;showgrid&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;False&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;showticklabels&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;linecolor&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;light_grey&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;color&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;light_grey&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;linewidth&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;ticks&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;outside&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;yaxis&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;15&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;showgrid&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;False&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;16&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;zeroline&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;False&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;17&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;showline&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;False&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;18&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;showticklabels&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;False&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;19&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;20&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;plot_bgcolor&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;spaetzle_gelb_light&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;21&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;paper_bgcolor&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;spaetzle_gelb_light&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;22&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;showlegend&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;False&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;23&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;24&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;fig&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;update_yaxes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rangemode&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;tozero&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;p&gt;Diese Grafik sollten wir jetzt noch abspeichern, damit wir sie im nächsten Schritt in einen &lt;a href=&#34;https://soeren.one/2020/rki-daten-telegram-senden-python&#34;&gt;Telegram-Kanal senden&lt;/a&gt; können.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# export plotly as png&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;scope&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PlotlyScope&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;img_dir&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;figure.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;wb&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;write&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;scope&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;transform&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;fig&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;format&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;png&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Corona-Daten%20des%20RKI%20mit%20Python%20visualisieren&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2020%2frki-daten-visualisieren-python%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Corona-Daten des RKI mit Python herunterladen</title>
      <link>https://soeren.one/2020/rki-daten-laden-python/</link>
      <pubDate>Sat, 26 Dec 2020 17:57:33 +0100</pubDate>
      <guid>https://soeren.one/2020/rki-daten-laden-python/</guid>
      <description>&lt;p&gt;Auch Ende 2020 hält uns &lt;a href=&#34;https://soeren.one/tags/corona&#34;&gt;Corona&lt;/a&gt; fest im Griff. Vor allem vor den Feiertagen habe ich mir die Frage gestellt, wie sinnvoll es ist, wenn Personen aus unterschiedlichen Landesteilen zusammenkommen. Ich wollte also auf einen Blick für meine Familie sehen können, wie sich die Lage in den jeweiligen Landkreisen entwickelt. Idealerweise automatisiert jeden Morgen auf meinem Handy - ohne die völlig benutzerunfreundlichen Veröffentlichungen des RKI durchstöbern zu müssen.&lt;/p&gt;
&lt;p&gt;Die Idee war geboren. Ein &lt;a href=&#34;https://soeren.one/tags/python&#34;&gt;Python&lt;/a&gt;-Skript sollte mir jede Nacht die Daten vom RKI abziehen, in einer Grafik aufbereiten und via &lt;a href=&#34;https://soeren.one/tags/telegram&#34;&gt;Telegram&lt;/a&gt; an meine Familie verteilen. Wenn die Muse anhält, werde ich in den nächsten Tagen also kurz beschreiben, wie ich &lt;a href=&#34;https://soeren.one/2020/rki-daten-laden-python&#34;&gt;Daten vom RKI mit Python abziehe&lt;/a&gt;, &lt;a href=&#34;https://soeren.one/2020/rki-daten-visualisieren-python&#34;&gt;diese mit Plotly grafisch aufbereite&lt;/a&gt; und schließlich &lt;a href=&#34;https://soeren.one/2020/rki-daten-telegram-senden-python&#34;&gt;in einen Telegram-Kanal jeden Morgen poste&lt;/a&gt;.&lt;/p&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;p&gt;Beginnen wir mit dem Abziehen der Daten aus dem &lt;a href=&#34;https://npgeo-corona-npgeo-de.hub.arcgis.com/&#34;&gt;NPGEO Corona Hub&lt;/a&gt;. Das RKI veröffentlicht die Daten - aus meiner Sicht sehr dürftig dokumentiert - über arcgis.com, das mittels API von Python aus angesprochen werden kann. Wir benötigen zunächst also die URL.&lt;/p&gt;
&lt;p&gt;Da ich mich für Daten auf Landkreisebene interessiere, öffnen wir &lt;a href=&#34;https://npgeo-corona-npgeo-de.hub.arcgis.com/search?collection=Dataset&#34;&gt;https://npgeo-corona-npgeo-de.hub.arcgis.com/search?collection=Dataset&lt;/a&gt; und wählen den &lt;a href=&#34;https://npgeo-corona-npgeo-de.hub.arcgis.com/datasets/917fc37a709542548cc3be077a786c17_0&#34;&gt;Landkreis-Datensatz&lt;/a&gt; aus. Über den &lt;a href=&#34;https://npgeo-corona-npgeo-de.hub.arcgis.com/datasets/917fc37a709542548cc3be077a786c17_0/geoservice&#34;&gt;API-Explorer-Tab&lt;/a&gt; können wir Filter setzen, die relevanten Felder auswählen und die sich ergebende URL kopieren.&lt;/p&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;p&gt;Dann bereiten wir unser Python-Skript vor, indem wir die notwendigen Bibliotheken laden.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;mit &lt;code&gt;json&lt;/code&gt; und &lt;code&gt;requests&lt;/code&gt; laden wir die Daten&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pandas&lt;/code&gt; vereinfacht die Aufräum-Arbeit in den heruntergeladenen Daten&lt;/li&gt;
&lt;li&gt;&lt;code&gt;os&lt;/code&gt; und &lt;code&gt;datetime&lt;/code&gt; helfen uns die Daten in Unterordnern und mit Datumsstempeln zu speichern&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# imports&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;json&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;os&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;pandas&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;pd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;requests&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;datetime&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;datetime&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;pandas.io.json&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;json_normalize&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Im nächsten Schritt definieren wir ein paar Variablen.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;api_url&lt;/code&gt; ist die API-Query-URL, die wir von arcgis.com kopiert haben.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;app_dir&lt;/code&gt; und &lt;code&gt;data_dir&lt;/code&gt; enthalten den Dateipfad zum Verzeichnis, in dem die Python-Datei liegt, sowie einem Unterordner &lt;code&gt;data&lt;/code&gt;. In letzterem werden wir die heruntergeladenen Daten speichern.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# define variables&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;api_url&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_Landkreisdaten/FeatureServer/0/query?where=1%3D1&amp;amp;outFields=*&amp;amp;outSR=4326&amp;amp;f=json&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;app_dir&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;abspath&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dirname&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;vm&#34;&gt;__file__&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;data_dir&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;app_dir&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;/data/&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Der eigentliche Download verfolgt über eine Kombination von &lt;code&gt;json.loads()&lt;/code&gt; mit &lt;code&gt;requests.get()&lt;/code&gt;. Mittels &lt;code&gt;json_normalize()&lt;/code&gt; wandeln wir das heruntergeladen JSON-File in einen Pandas-Datensatz um.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# download and normalize&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;d&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;json&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;loads&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;requests&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;api_url&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;df&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;json_normalize&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;d&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;record_path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;features&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;])&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Perfekt. Mittels &lt;code&gt;df.head()&lt;/code&gt; können wir einen Blick auf die Daten werfen. Mir persönlich gefällt das &lt;code&gt;attributes.&lt;/code&gt;-Präfix bei den Spaltennamen nicht. Lass es uns also entfernen. Dafür erzeugen wir ein leeres Array, schleifen über die Spaltennamen, ersetzen dabei jeweils &amp;ldquo;attributes.&amp;rdquo; mit &amp;quot;&amp;quot; und überschreiben schließlich die Spaltennamen mit dem Array. Es gibt dafür sicher einen besseren Weg.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# remove &amp;#34;attributes.&amp;#34; from field names&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;colnames&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;len&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;df&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;columns&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;colnames&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;df&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;columns&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;replace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;attributes.&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;df&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;columns&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;colnames&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Das RKI veröffentlicht über die API lediglich die neusten Daten. Sofern wir einen Zeitverlauf analysieren wollen, müssen wir die Daten also abspeichern. Der Einfachheit halber sichern wir den heruntergeladenen Datensatz als CSV mittels Pandas &lt;code&gt;to_csv()&lt;/code&gt;-Funktion. Damit wir die Dateien den einzelnen Tagen zuordnen können, extrahieren wir aus der Spalte &lt;code&gt;last_update&lt;/code&gt; das Datum und bauen das in den Namen der exportierten CSV-Datei ein.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# extract last update date (for filename)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;file_date&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;datetime&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;strptime&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;df&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;last_update&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;][&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%d&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;.%m.%Y, %H:%M Uhr&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;strftime&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;%Y%m&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%d&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;_%H%M&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# epxort CSV to data directory, using last update date for filename&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;df&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;to_csv&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;path_or_buf&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data_dir&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;rki_&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file_date&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.csv&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;sep&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;header&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;index&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;False&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;encoding&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;utf-8&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Und damit sind wir eigentlich auch schon fertig. Damit ich nicht für jede Anwendung die Daten neu einlesen und zusammenfügen muss, habe ich meinem Python-Skript noch einen letzten Absatz mitgegeben. Dieser erzeugt zunächst eine Liste aller unter &lt;code&gt;data/&lt;/code&gt; abgespeicherten Dateien (deren Dateiname mit &lt;code&gt;rki_&lt;/code&gt; beginnt), liest diese anschließend der Reihe nach ein, fügt sie zu einem Datensatz zusammen und speichert diesen als zusätzliches CSV-File ab.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# create list of all exported CSV files&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;filepaths&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;f&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;f&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;listdir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data_dir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;startswith&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;rki_&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;filepaths&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# append exported CSV files&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;rkitmp&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;f&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;filepaths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;dftmp&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pd&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;read_csv&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data_dir&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;sep&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;decimal&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;,&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;rkitmp&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dftmp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# concat to Pandas data frame&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;rki&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pd&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;concat&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rkitmp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;axis&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ignore_index&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;sort&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;rki&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rki&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;drop_duplicates&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;15&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# export combined data&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;16&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;rki&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;to_csv&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;17&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;path_or_buf&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data_dir&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;rki.csv&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;18&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;sep&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;19&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;header&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;20&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;index&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;False&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;21&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;encoding&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;utf-8&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;22&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Corona-Daten%20des%20RKI%20mit%20Python%20herunterladen&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2020%2frki-daten-laden-python%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Meine Podcasts - 2019</title>
      <link>https://soeren.one/2019/podcasts-2019/</link>
      <pubDate>Wed, 25 Dec 2019 00:00:00 +0000</pubDate>
      <guid>https://soeren.one/2019/podcasts-2019/</guid>
      <description>&lt;p&gt;Aufgrund meiner beruflichen und privaten Situation bin ich die letzten Jahre sehr viel unterwegs gewesen. Und weil immer nur Musik auf Dauer langweilig wird (egal wie viel neue Songs mir Spotify vorschlägt), habe ich vor ein paar Jahren angefangen &lt;a href=&#34;https://soeren.one/tags/podcast&#34;&gt;Podcasts&lt;/a&gt; zu hören.&lt;/p&gt;
&lt;p&gt;Immer wieder werde ich gefragt, ob ich was empfehlen kann. Außerdem, als kleiner Statistik-Nerd, interessiert mich selbst ja auch, wie sich meine Hörgewohnheiten so über die Jahre ändern. Ich möchte daher heute einen Einblick in meine Podcast-Liste geben und nach Möglichkeit, diesen Artikel mindestens einmal jährlich aktualisieren. Ein früher Neujahrsvorsatz ;-)&lt;/p&gt;
&lt;h2 id=&#34;die-etablierten&#34;&gt;Die Etablierten&lt;/h2&gt;
&lt;p&gt;Beginnen möchte ich mit den Etablierten. Diese Podcasts habe ich bereits seit längerem abonniert und höre die einzelnen Folgen mit großer Regelmäßigkeit. Der Einfachheit halber in alphabetischer Reihenfolge.&lt;/p&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;h2 id=&#34;die-newcomer&#34;&gt;Die Newcomer&lt;/h2&gt;
&lt;p&gt;Weiter geht es mit den Newcomern. Diese Podcasts sind erst kürzlich (wieder) in meiner Bibliothek gelandet. Die meisten wurden mit entweder persönlich empfohlen oder ich habe in anderen Podcasts oder Zeitungsartikeln davon gehört bzw. gelesen. Ich werde sie eine Weile hören und dann entscheiden, ob sie bleiben dürfen :-)&lt;/p&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Meine%20Podcasts%20-%202019&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2019%2fpodcasts-2019%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Etwas coolere ggplots erstellen</title>
      <link>https://soeren.one/2019/coolere-ggplots/</link>
      <pubDate>Tue, 08 Oct 2019 00:00:00 +0000</pubDate>
      <guid>https://soeren.one/2019/coolere-ggplots/</guid>
      <description>&lt;p&gt;Leider muss ich zugeben, dass meine bisherige Beteiligung am &lt;a href=&#34;https://soeren.one/tags/tidytuesday&#34;&gt;TidyTuesday&lt;/a&gt; weit hinter meinen Erwartungen zurück geblieben ist. Bisher habe ich lediglich einmal mitgemacht und das ist auch schon Monate her.&lt;/p&gt;
&lt;p&gt;Natürlich überfliege ich trotzdem jede Woche &lt;a href=&#34;https://twitter.com/search?q=%23TidyTuesday&#34;&gt;unzählige Tweets&lt;/a&gt; und erfreue mich an tollen Grafiken zu verschiedenen Themen. So wie beispielsweise an dieser &lt;a href=&#34;https://twitter.com/jakekaupp/status/1179821493393469440/photo/1&#34;&gt;super-coole Visualisierung&lt;/a&gt;, die wirklich Lust darauf gemacht hat, mal wieder was mit Karten zu machen.&lt;/p&gt;
&lt;p&gt;Und da ich mit ein bisschen Glück demnächst wieder Vollzeit-&lt;a href=&#34;https://soeren.one/tags/baden-wuerttemberg&#34;&gt;Baden-Württemberger&lt;/a&gt; werde, werden wir uns nicht Pizza-Restaurants in NYC sondern was aus dem lokaleren Datenbestand anschauen.&lt;/p&gt;
&lt;p&gt;In diesem Blog-Post möchte ich zeigen, wie sich Visualisierungen in meinem Workflow entwickeln, wie ich von &lt;code&gt;ggplot() + geom_point()&lt;/code&gt; zu etwas halbwegs ansehnlichem komme. Dass manche Schritte dabei ein Fall für &lt;a href=&#34;https://twitter.com/accidental__art&#34;&gt;@accidential aRt&lt;/a&gt; sind, versteht sich vermutlich von selbst 😅&lt;/p&gt;
&lt;h2 id=&#34;daten-sammeln&#34;&gt;Daten sammeln&lt;/h2&gt;
&lt;p&gt;Lange Rede - kurzer Sinn. Ich habe also auf die Webseite des &lt;a href=&#34;https://www.statistik-bw.de/&#34;&gt;Statistischen Landesamtes&lt;/a&gt; aufgerufen und mir einfach den erstbesten Datensatz runtergeladen, der Informationen auf Kreis-Ebene zur Verfügung stellt. Wir werden heute also etwas zur &lt;a href=&#34;https://www.statistik-bw.de/BevoelkGebiet/Bevoelk_I_Flaeche_j.csv&#34;&gt;Bevölkerungsdichte in Baden-Württemberg&lt;/a&gt; lernen.&lt;/p&gt;
&lt;p&gt;Damit wir die Daten auch hübsch visualisieren könne, habe ich mir darüber hinaus vom &lt;a href=&#34;https://www.lgl-bw.de/&#34;&gt;Landesamt für Geoinformation und Landentwicklung&lt;/a&gt; das entsprechende &lt;a href=&#34;https://www.lgl-bw.de/lgl-internet/opencms/de/07_Produkte_und_Dienstleistungen/Open_Data_Initiative/&#34;&gt;Shapefile&lt;/a&gt; heruntergeladen.&lt;/p&gt;
&lt;p&gt;Da die Daten sauber vorbereitet sind, können wir sie mit wenigen Zeilen einlesen und in das gewünschte Format bringen.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# notwendige Packete laden&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;library&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tidyverse&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;library&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Dateipfade definieren&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;file_bevoelkerung&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;link/to/Bevoelk_I_Flaeche_j.csv&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;file_shapes&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;link/to/AX_Gebiet_Kreis.shp&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Daten einlesen und aufbereiten&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;15&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;16&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;EINWOHNER.Kreise&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;17&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;read_delim&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;18&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file_bevoelkerung&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;19&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;locale&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;locale&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;encoding&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;readr&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;guess_encoding&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;file_bevoelkerung&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;select&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;encoding&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;unlist&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;20&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;delim&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;21&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;skip&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;20&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;22&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;col_names&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;23&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;s&#34;&gt;&amp;#34;ID.Regionaleinheit&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;24&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;s&#34;&gt;&amp;#34;AmtlicherGemeindeschluessel&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;25&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;s&#34;&gt;&amp;#34;PLZ&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;26&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;s&#34;&gt;&amp;#34;Regionalname&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;27&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;s&#34;&gt;&amp;#34;Stichtag&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;28&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;s&#34;&gt;&amp;#34;Bevoelkerung_insgesamt&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;29&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;s&#34;&gt;&amp;#34;Gemeindegebiet_ha&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;30&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;s&#34;&gt;&amp;#34;Bevoelkerungsdichte_EW_km2&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;31&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;32&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;33&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;filter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;34&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;Stichtag&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;31.12.2018&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;35&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;ID.Regionaleinheit&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;KR&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;36&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;37&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;left_join&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;38&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;read_sf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;file_shapes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;39&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;by&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;AmtlicherGemeindeschluessel&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Schlüssel&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;40&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&#34;basis-plot-erstellen&#34;&gt;Basis-Plot erstellen&lt;/h2&gt;
&lt;p&gt;Nachdem wir die Daten eingelesen und aufbereitet haben, sollten wir uns anschauen was &lt;code&gt;ggplot()&lt;/code&gt; vorschlägt. Ein klarer Vorteil ist, dass selbst dieser erste Versuch schon relativ ansehnlich ist. Aber da geht natürlich noch mehr &amp;hellip;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Basisplot erstellen&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;p&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;ggplot&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;EINWOHNER.Kreise&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;geom_sf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;aes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;fill&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Bevoelkerungsdichte_EW_km2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;p&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;img src=&#34;https://github.com/s01ren/ttbw/raw/master/plots/step01.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;all-hail-the-spätzle&#34;&gt;All hail the Spätzle!&lt;/h2&gt;
&lt;p&gt;Theoretisch könnten wir hier aufhören. Wir haben eine Karte auf der die Landkreise entsprechend ihrer Bevölkerungsdichte eingefärbt sind. Es wird auf einen Blick deutlich, dass in Stuttgart sehr viele Menschen auf wenig Raum wohnen, während es im Nord- und Südosten eher ruhig zugeht.&lt;/p&gt;
&lt;p&gt;Nun wollten wir ja aber einen etwas cooleren Plot erstellen. Dazu ändern wir als erstes die Farben. Und weil die Landesfarbe halt &lt;em&gt;spätzle-gelb&lt;/em&gt; ist, nehmen wir das als Basis. Von &lt;a href=&#34;https://coolors.co&#34;&gt;coolors.co&lt;/a&gt; lasse ich mir einen dazu passenden Rot-Ton erzeugen und definiere so die beiden Extremwerte meiner Farbskala.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Farben definieren&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;colour_spaetzlegelb&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;#FFFEF9&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;colour_rangemax&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;#AA4465&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Plot aktualisieren&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;p&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;p&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;scale_fill_gradient&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;low&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;colour_spaetzlegelb&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;high&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;colour_rangemax&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;p&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;img src=&#34;https://github.com/s01ren/ttbw/raw/master/plots/step02.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;make-the-theme-great-again&#34;&gt;Make the theme great again!&lt;/h2&gt;
&lt;p&gt;Das sieht schon besser (aber noch nicht gut) aus. Als nächstes passen wir das Theme an, entfernen die Legende, den grauen Hintergrund und die Achsen, deren Zahlenwerte aktuell eher verwirrend als hilfreich sind.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Plot aktualisieren&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;p&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;p&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;theme&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# Achsen entfernen -----------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;axis.line&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;element_blank&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(),&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;axis.title&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;element_blank&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;axis.ticks&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;element_blank&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;axis.text&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;element_blank&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# Hintergrund anpassen -------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;panel.background&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;element_rect&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;fill&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;colour_spaetzlegelb&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;15&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;plot.background&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;element_rect&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;fill&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;colour_spaetzlegelb&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;16&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;17&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# Legende entfernen ----------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;18&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;legend.position&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;none&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;19&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;20&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;p&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;img src=&#34;https://github.com/s01ren/ttbw/raw/master/plots/step04.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;reden-ist-silber-annotierung-ist-gold&#34;&gt;Reden ist Silber, Annotierung ist Gold!&lt;/h2&gt;
&lt;p&gt;So langsam wird es doch. Es fehlt aber noch ein bisschen Kontext. Also fügen wir neben der eigentlich Grafik einen Titel und eine kurze Zusammenfassung der Ergebnisse ein. Das hilft die Hauptaussage der Visualisierung noch einmal (in prosa) hervorzuheben.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Untertitel verfassen&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;plot_subtitle&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;str_c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;s&#34;&gt;&amp;#34;Die Karte zeigt die Bevölkerungsdichte nach Kreisen in Baden-Württemberg.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;s&#34;&gt;&amp;#34;Am dünnsten besiedelt ist der Main-Tauber-Kreis. Hier wohnen 101 Personen pro km².&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;s&#34;&gt;&amp;#34;Mehr als 30x mehr Personen pro Quadratkilomenter wohnen in der Landeshauptstadt.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;sep&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Quellen definieren&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;plot_caption&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;str_c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;15&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;s&#34;&gt;&amp;#34;Daten: Statistisches Landesamt Baden-Württemberg;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;16&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;s&#34;&gt;&amp;#34;Karten: Landesamt für Geoinformation und Landentwicklung&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;17&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;s&#34;&gt;&amp;#34;Grafik: https://gluecko.se&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;18&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;sep&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;19&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;20&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;21&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;22&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Notwendige Koordinaten speichern&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;23&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;24&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;coord_xmin&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;sf&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;st_bbox&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;EINWOHNER.Kreise&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;geometry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;xmin&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;25&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;coord_xmax&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;sf&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;st_bbox&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;EINWOHNER.Kreise&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;geometry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;xmax&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;26&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;coord_ymin&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;sf&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;st_bbox&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;EINWOHNER.Kreise&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;geometry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ymin&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;27&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;coord_ymax&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;sf&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;st_bbox&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;EINWOHNER.Kreise&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;geometry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ymax&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;28&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;29&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;30&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Plot aktualisieren&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;31&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;32&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;p&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;p&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;33&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;annotate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;text&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;label&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Bevölkerungsdichte nach Kreisen&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;.7&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_xmin&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1.01&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_ymax&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;size&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;hjust&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;34&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;annotate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;text&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;label&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;str_wrap&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;plot_subtitle&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;40&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;.7&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_xmin&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_ymax&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;size&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;hjust&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;35&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;annotate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;text&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;label&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;str_wrap&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;plot_caption&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;40&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;.7&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_xmin&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_ymax&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;size&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;hjust&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;vjust&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;2.5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;36&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;p&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;img src=&#34;https://github.com/s01ren/ttbw/raw/master/plots/step05.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;look-here&#34;&gt;Look here!&lt;/h2&gt;
&lt;p&gt;Na das sieht doch jetzt echt nach was aus! Wir sollten allerdings noch ein paar Kreise explizit hervorheben. Extremfälle bieten sich an - fügen wir also noch Hinweise auf die Kreise mit der höchsten bzw. niedrigsten Bevölkerungsdichte ein.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Centroid berechnen&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;get_centroid&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;function&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;){&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;coords&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;EINWOHNER.Kreise&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;filter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%in%&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;select&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;geometry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;st_as_sf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;st_centroid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;unlist&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;if&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;length&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;coords&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;){&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;warning&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;More than one centroid found!&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;15&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;16&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;17&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;returnData&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;18&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;tribble&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;19&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;o&#34;&gt;~&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;~&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;x&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;~&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;y&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;20&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coords[1]&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coords[2]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;21&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;22&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;23&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;return&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;returnData&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;24&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;25&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;26&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;27&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Notwendige Koordinaten speichern&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;28&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;29&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;coord_Stuttgart_xlabel&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1.05&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_xmin&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;30&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;coord_Stuttgart_ylabel&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1.0045&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_centroid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Stuttgart&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;31&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;coord_Mannheim_xlabel&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1.1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_xmin&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;32&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;coord_Mannheim_ylabel&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1.005&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_centroid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Mannheim&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;33&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;coord_Karlsruhe_xlabel&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1.1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_xmin&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;34&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;coord_Karlsruhe_ylabel&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1.005&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_centroid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Karlsruhe&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;35&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;coord_MainTauberKreis_xlabel&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0.95&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_xmax&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;36&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;coord_MainTauberKreis_ylabel&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1.005&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_centroid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Main-Tauber-Kreis&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;37&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;coord_Sigmaringen_xlabel&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0.98&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_xmax&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;38&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;coord_Sigmaringen_ylabel&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1.005&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_centroid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Sigmaringen&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;39&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;coord_NeckarOdenwaldKreis_xlabel&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0.82&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_xmax&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;40&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;coord_NeckarOdenwaldKreis_ylabel&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1.0115&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_centroid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Neckar-Odenwald-Kreis&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;41&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;42&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;43&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Plot aktualisieren&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;44&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# --------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;45&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;p&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;p&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;46&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;# Top 1: Stuttgart -------------  &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;47&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;annotate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;segment&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_Stuttgart_xlabel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_Stuttgart_ylabel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;xend&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_centroid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Stuttgart&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;  &lt;span class=&#34;n&#34;&gt;yend&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_centroid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Stuttgart&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;48&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;annotate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;label&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;label&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Stuttgart\n3.062 EW/km²&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_Stuttgart_xlabel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_Stuttgart_ylabel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;49&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;50&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;# Top 2: Mannheim --------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;51&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;annotate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;segment&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_Mannheim_xlabel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_Mannheim_ylabel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;xend&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_centroid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Mannheim&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;yend&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_centroid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Mannheim&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;52&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;annotate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;label&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;label&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Mannheim\n2.134 EW/km²&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_Mannheim_xlabel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_Mannheim_ylabel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;53&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;54&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;# Top 3: Karlsruhe -------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;55&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;annotate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;segment&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_Karlsruhe_xlabel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_Karlsruhe_ylabel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;xend&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_centroid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Karlsruhe&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;yend&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_centroid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Karlsruhe&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;56&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;annotate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;label&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;label&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Karlsruhe\n1.805 EW/km²&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_Karlsruhe_xlabel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_Karlsruhe_ylabel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;57&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;58&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;# Bottom 1: Main-Tauber-Kreis --&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;59&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;annotate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;segment&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_MainTauberKreis_xlabel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_MainTauberKreis_ylabel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;xend&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_centroid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Main-Tauber-Kreis&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;yend&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_centroid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Main-Tauber-Kreis&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;60&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;annotate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;label&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;label&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Main-Tauber-Kreis\n101 EW/km²&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_MainTauberKreis_xlabel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_MainTauberKreis_ylabel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;61&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;62&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;# Bottom 2: Sigmaringen --------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;63&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;annotate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;segment&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_Sigmaringen_xlabel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_Sigmaringen_ylabel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;xend&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_centroid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Sigmaringen&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;yend&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_centroid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Sigmaringen&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;64&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;annotate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;label&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;label&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Sigmaringen\n109 EW/km²&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_Sigmaringen_xlabel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_Sigmaringen_ylabel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;65&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;66&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;# bottom 3: Neckar-Odenwald-Kreis --&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;67&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;annotate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;segment&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_NeckarOdenwaldKreis_xlabel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_NeckarOdenwaldKreis_ylabel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;xend&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_centroid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Neckar-Odenwald-Kreis&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;yend&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_centroid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Neckar-Odenwald-Kreis&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;68&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;annotate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;label&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;label&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Neckar-Odenwald-Kreis\n127 EW/km²&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_NeckarOdenwaldKreis_xlabel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;coord_NeckarOdenwaldKreis_ylabel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;69&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;p&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;img src=&#34;https://github.com/s01ren/ttbw/raw/master/plots/Bevoelkerungsdichte.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;Eine große Version der Grafik und den vollständigen Code am Stück gibt es - wie immer - bei &lt;a href=&#34;https://github.com/s01ren/ttbw&#34;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Etwas%20coolere%20ggplots%20erstellen&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2019%2fcoolere-ggplots%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>OSM Daten als SVG exportieren</title>
      <link>https://soeren.one/2019/osm2xml-openstreetmap-svg/</link>
      <pubDate>Mon, 09 Sep 2019 00:00:00 +0000</pubDate>
      <guid>https://soeren.one/2019/osm2xml-openstreetmap-svg/</guid>
      <description>&lt;p&gt;Ich möchte euch heute ein cooles Projekt vorstellen. &lt;a href=&#34;https://twitter.com/mhaseneyer/status/1170462635214745600&#34;&gt;Der Hase&lt;/a&gt; nutzt die Zeit während seines Spezialprojektes sehr effektiv und hat am Wochenende ein &lt;a href=&#34;https://github.com/mhaseneyer/osmxml&#34;&gt;Python-Projekt auf GitHub&lt;/a&gt; geladen.&lt;/p&gt;
&lt;p&gt;Mit dem Skript könnt ihr Daten aus &lt;a href=&#34;https://www.openstreetmap.org&#34;&gt;OpenStreetMaps&lt;/a&gt; als XML oder SVG exportieren. Das ist super-nützlich, wenn ihr eine skalierbare Grafik vom &amp;ldquo;Grundriss&amp;rdquo; eurer Heimatstadt, eures &lt;a href=&#34;https://shop.baden-wuerttemberg.de/out/pictures/generated/product/1/665_665_75/bw_aufkleber_nett_hier_665x665.png&#34;&gt;Lieblingsbundeslandes&lt;/a&gt;, eurer Lieblingsinsel, &lt;a href=&#34;https://www.openstreetmap.org/relation/62646&#34;&gt;Bielefeld&lt;/a&gt; oder &lt;a href=&#34;https://www.openstreetmap.org/relation/555717&#34;&gt;Trinidad und Tobago&lt;/a&gt; braucht.&lt;/p&gt;
&lt;p&gt;Das bietet sich auch super für ein Ratespiel an. Wer weiß welche Stadt das ist?&lt;/p&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;h1 id=&#34;los-gehts&#34;&gt;Los geht&amp;rsquo;s!&lt;/h1&gt;
&lt;p&gt;Als erstes solltet ihr die einzige Voraussetzung auf eurem System installieren: &lt;a href=&#34;https://www.python.org/&#34;&gt;Python 3&lt;/a&gt;. Ich empfehle (vor allem unter Windows) das mittels &lt;a href=&#34;https://www.anaconda.com/&#34;&gt;Anaconda&lt;/a&gt; zu tun. Ladet euch die neuste Version herunter und folgt den Anweisungen des Installers: &lt;a href=&#34;https://www.anaconda.com/distribution/&#34;&gt;https://www.anaconda.com/distribution/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ob alles geklappt hat, könnt ihr in der Windows Eingabeaufforderung testen. Wenn ihr &lt;code&gt;python&lt;/code&gt; eingebt, solltet ihr einen Hinweis zur installierten Version erhalten.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;C:\Users\Batman&amp;gt;python
Python 3.7.0 (default, Jun 28 2018, 08:04:48) [MSC v.1912 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type &amp;#34;help&amp;#34;, &amp;#34;copyright&amp;#34;, &amp;#34;credits&amp;#34; or &amp;#34;license&amp;#34; for more information.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Als nächstes ladet ihr euch aus dem Repository das Skript herunter: &lt;a href=&#34;https://github.com/mhaseneyer/osmxml/blob/master/src/osm2svg.py&#34;&gt;https://github.com/mhaseneyer/osmxml/blob/master/src/osm2svg.py&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Und als letztes sucht ihr noch den passenden OSM-Link für das Objekt eurer Wahl heraus. Um das Rätsel von oben aufzulösen, nehmen wir mal an ihr interessiert euch für die Umrisse von Stuttgart: &lt;a href=&#34;https://www.openstreetmap.org/relation/2793104&#34;&gt;https://www.openstreetmap.org/relation/2793104&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Die sehen in OSM wie folgt aus.&lt;/p&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;h1 id=&#34;die-wundermaschine-anwerfen&#34;&gt;Die Wundermaschine anwerfen&lt;/h1&gt;
&lt;p&gt;Mit nur einem Befehl lassen wir Python jetzt das Objekt von OSM herunterladen und in eine SVG umwandeln. Dafür übergebt ihr dem Skript einfach den Link zu OSM und einen Namen für das SVG-File.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;C:\Users\Batman&amp;gt;python link/to/osm2svg.py https://www.openstreetmap.org/relation/2793104 stuttgart.svg
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;So einfach ist das. Richtig geiler Scheiß, Danke! 👍&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: OSM%20Daten%20als%20SVG%20exportieren&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2019%2fosm2xml-openstreetmap-svg%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Hugo mit Git auf dem uberspace nutzen</title>
      <link>https://soeren.one/2019/hugo-mit-git-auf-uberspace-benutzen/</link>
      <pubDate>Fri, 06 Sep 2019 00:00:00 +0000</pubDate>
      <guid>https://soeren.one/2019/hugo-mit-git-auf-uberspace-benutzen/</guid>
      <description>&lt;h1 id=&#34;vorgeschichte&#34;&gt;Vorgeschichte&lt;/h1&gt;
&lt;p&gt;Vor gar nicht allzu langer Zeit bin ich mit diesem Blog von &lt;a href=&#34;https://ghost.org/&#34;&gt;Ghost&lt;/a&gt; zu &lt;a href=&#34;https://jekyllrb.com/&#34;&gt;Jekyll&lt;/a&gt; gewechselt. Ghost hat mir eigentlich sehr gut getaugt, auch wenn ich nicht der größte Fan davon war, dass &lt;a href=&#34;https://ghost.org/blog/2-0/&#34;&gt;bloggen mit Markdown mit den neueren Versionen einen Klick weiter entfernt&lt;/a&gt; war. Außerdem war es für mich immer eine kleine Herausforderung bei neuen Versionen die Abhängigkeiten auf dem Betriebssystem auf dem neusten Stand zu halten und die Datenbank zu migrieren.&lt;/p&gt;
&lt;p&gt;Bloggen mit einem Static-Site-Generator schien mir da der nächste logische Schritt. Ich habe also kurz Jekyll ausprobiert und bin schließlich bei &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt; gelandet. Hugo gebe ich aktuell den Vorzug, weil es sich leichter auf einem Windows-PC nutzen lässt und wesentlich schneller ist.&lt;/p&gt;
&lt;p&gt;Der geneigte Leser wird wissen, das ich bezüglich Webhoster ein großer Fan der Jungs und Mädels von &lt;a href=&#34;https://uberspace.de&#34;&gt;uberspace&lt;/a&gt; bin. Im folgenden also eine kleine Anleitung, um zu meinem aktuellen Setup zu kommen.&lt;/p&gt;
&lt;p&gt;Dafür werden wir &amp;hellip;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Git und Hugo lokal installieren&lt;/li&gt;
&lt;li&gt;Einen neuen Hugo-Blog anlegen&lt;/li&gt;
&lt;li&gt;Einen ersten Blog-Artikel schreiben&lt;/li&gt;
&lt;li&gt;Den uberspace vorbereiten&lt;/li&gt;
&lt;li&gt;Den Blog vom uberspace erstellen lassen&lt;/li&gt;
&lt;li&gt;Uns über einen neuen Blog freuen :)&lt;/li&gt;
&lt;/ol&gt;
&lt;h1 id=&#34;git-und-hugo-lokal-installieren&#34;&gt;Git und Hugo lokal installieren&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Eine Anleitung zur Installation von git findet ihr hier: &lt;a href=&#34;https://book.git-scm.com&#34;&gt;https://book.git-scm.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Wie man Hugo installiert, steht auf der Hugo-Webseite: &lt;a href=&#34;https://gohugo.io/getting-started/installing/&#34;&gt;https://gohugo.io/getting-started/installing/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Solltet ihr, wie ich aktuell, an einem Windows-PC sitzen hilft euch vielleicht auch &lt;a href=&#34;https://www.youtube.com/embed/G7umPCU-8xc&#34;&gt;dieses Video&lt;/a&gt; weiter. Gleiche Videos gibt es auch für andere Betriebssysteme.&lt;/p&gt;
&lt;h1 id=&#34;hugo-blog-anlegen&#34;&gt;Hugo-Blog anlegen&lt;/h1&gt;
&lt;p&gt;Ist Hugo installiert, könnt ihr mit &lt;code&gt;hugo new site &amp;lt;sitename&amp;gt;&lt;/code&gt; einen neuen Blog anlegen. Wir erstellen das fiktive Blog &lt;code&gt;hugoblog.com&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;P.S. Ich nutze auch auf Windows meist die Git-Bash als Konsole. Die kennt auch Befehle wie ssh :)&lt;/em&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[Batman@lokal ~]$ hugo new site hugoblog.com
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Eine Hugo-Website kommt ohne Theme. Das müssen wir also als nächstes herunterladen. Ich mag das &lt;a href=&#34;https://github.com/htdvisser/hugo-base16-theme&#34;&gt;Base16-Theme&lt;/a&gt;. Falls euch das nicht zusagt, findet ihr &lt;a href=&#34;https://themes.gohugo.io/&#34;&gt;hier&lt;/a&gt; aber sicher ein oder zwei Alternativen.&lt;/p&gt;
&lt;p&gt;Das Theme müsst ihr in den Ordner &lt;code&gt;themes&lt;/code&gt; eurer eben erstellten Seite herunterladen.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[Batman@lokal ~]$ cd hugoblog.com/themes
[Batman@lokal themes]$ git clone https://github.com/htdvisser/hugo-base16-theme.git base16
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Und schließlich müssen wir Hugo noch mitteilen, dass ihr dieses Theme verwenden wollt. Dazu passen wir die Konfiguration an.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[Batman@lokal ~]$ cd ~/hugoblog.com
[Batman@lokal hugoblog.com]$ cat &amp;lt;&amp;lt;EOF&amp;gt;&amp;gt; config.toml
theme = &amp;#34;base16&amp;#34;
pygmentsuseclasses = true
EOF
&lt;/code&gt;&lt;/pre&gt;&lt;h1 id=&#34;erster-artikel&#34;&gt;Erster Artikel&lt;/h1&gt;
&lt;p&gt;Zeit für den ersten Artikel. Mittels &lt;code&gt;touch&lt;/code&gt; erstellen wir unter &lt;code&gt;content/posts/&lt;/code&gt; ein neues Markdown-File und befüllen es mit ein ein bisschen Inhalt.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[Batman@lokal hugoblog.com]$ touch content/posts/cooler-artikel.md
[Batman@lokal hugoblog.com]$ cat &amp;lt;&amp;lt;EOF&amp;gt;&amp;gt; content/posts/cooler-artikel.md
+++
title = &amp;#34;Hello World&amp;#34;
date = &amp;#34;2019-09-06&amp;#34;
layout = [&amp;#34;article&amp;#34;]
author = &amp;#34;Batman&amp;#34;
tags = [&amp;#34;uberspace&amp;#34;, &amp;#34;hugo&amp;#34;, &amp;#34;blog&amp;#34;]
+++

# Lorem Ipsum

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

EOF
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Mal drauf schauen, wie der Artikel aussieht? Das geht ganz leicht mit &lt;code&gt;hugo serve&lt;/code&gt;. Hugo erstellt dann einen lokalen Server und lässt euch eure Seite unter folgendem Link betrachten: &lt;a href=&#34;localhost:1313&#34;&gt;localhost:1313&lt;/a&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[Batman@lokal hugoblog.com]$ hugo serve
Building sites …
                   | EN
+------------------+----+
  Pages            | 37
  Paginator pages  |  2
  Non-page files   |  0
  Static files     |  6
  Processed images |  0
  Aliases          | 14
  Sitemaps         |  1
  Cleaned          |  0
[...]
Environment: &amp;#34;development&amp;#34;
Serving pages from memory
Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
Press Ctrl+C to stop
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Wenn alles gut aussieht, können wir auf dem uberspace weitermachen.&lt;/p&gt;
&lt;h1 id=&#34;uberspace-vorbereiten&#34;&gt;uberspace vorbereiten&lt;/h1&gt;
&lt;p&gt;In diesem Schritt können wir uns am Tutorial auf &lt;a href=&#34;https://lab.uberspace.de/&#34;&gt;https://lab.uberspace.de/&lt;/a&gt; orientieren. Danke an Christian, luto und Julian.&lt;/p&gt;
&lt;h2 id=&#34;domain-anlegen&#34;&gt;Domain anlegen&lt;/h2&gt;
&lt;p&gt;Falls ihr eine eigene Domain verwenden wollt, lest im &lt;a href=&#34;https://manual.uberspace.de/web-domains.html&#34;&gt;uberspace-Wiki&lt;/a&gt; noch einmal nach wie das geht. Hier gehen wir davon aus, dass ihr eine Domain aufgeschaltet habt und diese auf euren Document-Root (&lt;code&gt;html/&lt;/code&gt;) verweist.&lt;/p&gt;
&lt;h2 id=&#34;hugo-installieren&#34;&gt;Hugo installieren&lt;/h2&gt;
&lt;p&gt;Um Hugo auf dem uberspace zu installieren, laden wir als erstes die neuste Version von Github als tar herunter. Prüfe im &lt;a href=&#34;https://github.com/gohugoio/hugo/releases&#34;&gt;Hugo Repository auf GitHub&lt;/a&gt; noch einmal welches die neuste Version ist und passe die Befehle entsprechend an. Anschließend entpacken, nach &lt;code&gt;bin&lt;/code&gt; verschieben und aufräumen. Fertig.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[batman@helium ~]$ wget https://github.com/gohugoio/hugo/releases/download/v0.58.1/hugo_0.58.1_Linux-64bit.tar.gz
[batman@helium ~]$ tar -xvf hugo_0.58.1_Linux-64bit.tar.gz hugo
[batman@helium ~]$ mv hugo ~/bin
[batman@helium ~]$ rm hugo_0.58.1_Linux-64bit.tar.gz
[batman@helium ~]$ hugo version
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Sollte es mal eine neuere Version von Hugo geben, wiederholt einfach diesen Schritt, um wieder up to date zu sein :)&lt;/p&gt;
&lt;h2 id=&#34;git-repository-für-hugo-blog-anlegen&#34;&gt;Git-Repository für Hugo-Blog anlegen&lt;/h2&gt;
&lt;p&gt;Als nächstes legen wir uns im Home-Verzeichnis einen neuen Ordner an, in dem wir das Git-Repository für unseren neuen Hugo-Blog ablegen.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[batman@helium ~]$ mkdir hugo_websites
[batman@helium ~]$ mkdir hugo_websites/hugoblog.git
[batman@helium ~]$ cd hugo_websites/hugoblog.git
[batman@helium hugoblog.git]$ git init --bare 
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;git-hook-anlegen&#34;&gt;Git Hook anlegen&lt;/h2&gt;
&lt;p&gt;Wir möchten, das der uberspace mit jedem &lt;code&gt;push&lt;/code&gt; in unser eben erstelltes Repository den Blog neu erstellt und auf der Domain verfügbar macht. Sagen wir ihm das. Dafür passen wir den &lt;code&gt;post-update&lt;/code&gt;-hook wie folgt an.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[batman@helium hugoblog.git]$ touch hooks/post-update
[batman@helium hugoblog.git]$ cat &amp;lt;&amp;lt;EOF&amp;gt;&amp;gt; hooks/post-update
#!/bin/sh

# los geht&amp;#39;s
echo &amp;#34;Start hook magic&amp;#34;

# hier definieren wir den Pfad zu unserem Git-Repository
GIT_REPO=$HOME/hugo_websites/hugoblog.git

# hier definieren wir ein temporäres Verzeichnis zum clonen des Repositorys
TMP_GIT_CLONE=$(mktemp -d)

# hier definieren wir den Pfad zu unserer öffentlichen Domain
PUBLIC_WWW=/var/www/virtual/$USER/html

# jetzt clonen wir das Repository in den temporären Ordner
git clone $GIT_REPO $TMP_GIT_CLONE
cd $TMP_GIT_CLONE

# Hugo anschmeißen
~/bin/hugo --cleanDestinationDir --destination $PUBLIC_WWW

# aufräumen
rm -Rf $TMP_GIT_CLONE
EOF
&lt;/code&gt;&lt;/pre&gt;&lt;h1 id=&#34;push-auf-den-uberspace&#34;&gt;Push auf den uberspace&lt;/h1&gt;
&lt;p&gt;Damit ist alles vorbereitet. Wir sollten jetzt nur noch unser auf dem uberspace erzeugtes Git-Repository als remote zum lokalen Ordner hinzufügen, unseren Artikel committen und das ganze hochladen.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[batman@lokal ~]$ cd hugoblog.com
[batman@lokal hugoblog.com]$ git init
[batman@lokal hugoblog.com]$ git remote add origin ssh://batman@helium.uberspace.de/hugo_websites/hugoblog.git
[batman@lokal hugoblog.com]$ git add .
[batman@lokal hugoblog.com]$ git commit -m &amp;#34;Initial commit&amp;#34;
[batman@lokal hugoblog.com]$ git push origin master
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Und das war&amp;rsquo;s dann auch schon. Auf den ersten Blick ist das ein bisschen länger geworden, aber diese Schritte müsst ihr ja nur einmal vornehmen.&lt;/p&gt;
&lt;p&gt;Da ich viel von unterwegs blogge, genieße ich es, auf dem iPad zu schreiben und nur einmal &lt;code&gt;git push&lt;/code&gt; eingeben zu müssen, um die Änderungen zu veröffentlichen. Wie ich von unterwegs blogge, werde ich vermutlich demnächst mal aufschreiben.&lt;/p&gt;
&lt;p&gt;Und jetzt viel Spaß mit eurem neuen Blog.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://media2.giphy.com/media/v1.Y2lkPTZjMDliOTUyMWxyM2t5Z2pjZzR5anF1ejhuc2Zzd3Qxb3doZjJ4ZXdiaHk3Y2J6ciZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/LXiElF2dzvUmQ/giphy.gif&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Hugo%20mit%20Git%20auf%20dem%20uberspace%20nutzen&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2019%2fhugo-mit-git-auf-uberspace-benutzen%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Komplexe CSV-Dateien einlesen</title>
      <link>https://soeren.one/2019/komplexe-csv-einlesen/</link>
      <pubDate>Thu, 01 Aug 2019 00:00:00 +0000</pubDate>
      <guid>https://soeren.one/2019/komplexe-csv-einlesen/</guid>
      <description>&lt;p&gt;Natürlich gibt es einfachere Dinge, als Daten in R einzulesen. Und trotzdem ist es zumindest seit der Einführung des &lt;a href=&#34;https://www.tidyverse.org/&#34;&gt;&lt;code&gt;tidyverse&lt;/code&gt;&lt;/a&gt; und den damit propagierten &lt;em&gt;tidy data principles&lt;/em&gt; sehr viel einfacher geworden saubere Daten zu laden. Leider hat nicht jeder Sensor-Hersteller das &lt;a href=&#34;https://www.jstatsoft.org/index.php/jss/article/view/v059i10/v59i10.pdf&#34;&gt;Paper von Hadley Wickem&lt;/a&gt; gelesen.&lt;/p&gt;
&lt;p&gt;Dieser Tage ist eine sehr spannende Aufgabe auf meinem Schreibtisch gelandet. Es klang zunächst so einfach: Wir haben da eine Maschine. Die misst etwas und schreibt ihre Ergebnisse in eine Textdatei. Diese müsste eingelesen und weiterverarbeitet werden. Ich dachte, dass sich das relativ leicht mit &lt;code&gt;read_delim()&lt;/code&gt; lösen lassen können müsste. Dachte ich&amp;hellip;&lt;/p&gt;
&lt;h3 id=&#34;das-problem&#34;&gt;Das Problem&lt;/h3&gt;
&lt;p&gt;Die Sache hatte natürlich einen Haken. Den Vorteil, dass die Maschine ihre Messwerte in eine CSV-Datei (und kein proprietäres Format) schrieb, machte sie damit zunichte, dass sie in einer Datei mehrere Header einfügte. &lt;em&gt;&amp;ldquo;Wie meinen?&amp;rdquo;&lt;/em&gt;, denkt ihr vielleicht jetzt.&lt;/p&gt;
&lt;p&gt;Stellen wir uns dazu vor, dass mit der Maschine die Inhaltsstoffe verschiedener Burger gemessen werden sollen. Man zielt also auf einen Burger und bekommt als Ergebnis die Anteile an Bun, Patty, Salat, etc. die in diesem Burger verwurstelt wurden. Das Problem ist nun, dass die Maschine beispielsweise bei einem vegetarischen Burger den Eintrag für Patty nicht einfach leer lässt sondern gar nicht erst notiert. Je nach Anzahl der Zutaten im Burger hat die CSV also unterschiedlich viele Spalten.&lt;/p&gt;
&lt;p&gt;Immernoch unklar? Dann werft doch mal einen Blick auf das folgende Beispiel.&lt;/p&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;p&gt;Unschön, nicht? Und obwohl ich in den vergangen Jahren wirklich einige &lt;a href=&#34;https://soeren.one/tags/r&#34;&gt;R&lt;/a&gt;-Tricks gelernt habe, hat mich das einige Arbeit gekostet.&lt;/p&gt;
&lt;h3 id=&#34;die-lösung&#34;&gt;Die Lösung&lt;/h3&gt;
&lt;p&gt;Meine Lösung ist sicher nicht die beste, aber funktioniert und hilft vielleicht der ein oder anderen, die ein ähnliches Problem hat.&lt;/p&gt;
&lt;p&gt;Zunächst speichere ich mir den String, der den Start eines neuen Headers identifiziert (erster Spaltenname im Datensatz) und lese das gesamte File mittels &lt;code&gt;readLines()&lt;/code&gt; ein. Das setzt natürlich voraus, dass zumindest die erste Spalte immer gemessen wird.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# load packages -----------------------------------------------------------
require(&amp;#34;tidyverse&amp;#34;)

# define header identification --------------------------------------------
header_id &amp;lt;- &amp;#34;ID&amp;#34;

# read raw data -----------------------------------------------------------
RAW &amp;lt;- readLines(file.choose())
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;(Ich verwende &lt;code&gt;file.chose()&lt;/code&gt;, um die Benutzung für den Endanwender so komfortabel wie möglich zu halten)&lt;/p&gt;
&lt;p&gt;Dann baue ich einen Datensatz, der genausoviele Zeilen wie das originale CSV-File hat und ermittle (mit &lt;code&gt;header_id&lt;/code&gt;) welche davon Header-Zeilen sind. Mittels &lt;code&gt;split()&lt;/code&gt; fülle ich die restlichen Zeilen mit der dazugehörigen Header-Nummer auf.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# find lines to split at --------------------------------------------------
header_lines &amp;lt;- which(substr(RAW, 1, nchar(header_id)) == header_id)

# create a list of all datasets within the CSV file -----------------------
DATASETS &amp;lt;- tibble(
  Row = 1:length(RAW),
  Data = RAW,
  Split = ifelse(Row %in% header_lines, header_lines, NA)
) %&amp;gt;%
  fill(Split) %&amp;gt;% 
  split(f = .$Split)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Schließlich schleife ich einmal über die jeweiligen Headernummern und picke mir aus den Rohdaten alle Informationen zusammen.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# extract relevant data ---------------------------------------------------
BURGERS &amp;lt;- tibble(
  ID = character(),
  Bun = numeric(), 
  Patty = numeric(),
  Salat = numeric(),
  Tomate = numeric()
)

for(i in 1:length(DATASETS)){
  # print loop ............................................................
  print(i)
  
  # extract data ..........................................................
  tmp_str &amp;lt;- DATASETS[[i]] %&amp;gt;% select(Data) %&amp;gt;% unlist()
  tmp_data &amp;lt;- read_delim(paste(tmp_str, collapse=&amp;#34;\n&amp;#34;), delim = &amp;#34;;&amp;#34;, na = &amp;#34;&amp;lt;LOD&amp;#34;) %&amp;gt;% 
    select(
      ID
      matches(names(BURGERS))
      ) %&amp;gt;%
    filter(!is.na(ID))
  
  # append to results .....................................................
  BURGERS &amp;lt;- BURGERS %&amp;gt;% bind_rows(tmp_data) 
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Et voilà, wir haben einen Datensatz mit dem man arbeiten kann :)&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Komplexe%20CSV-Dateien%20einlesen&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2019%2fkomplexe-csv-einlesen%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>EXIF Daten unter Ubuntu auslesen</title>
      <link>https://soeren.one/2019/exif-auslesen-ubuntu/</link>
      <pubDate>Wed, 10 Jul 2019 00:00:00 +0000</pubDate>
      <guid>https://soeren.one/2019/exif-auslesen-ubuntu/</guid>
      <description>&lt;p&gt;Heute nur ganz kurz, weil ich es gerade gesucht, &lt;a href=&#34;https://mikebeach.org/2011/12/17/how-to-retrieve-exif-data-from-the-command-line-in-ubuntu-linux/&#34;&gt;gefunden&lt;/a&gt; und vermutlich morgen wieder vergessen habe: Mit Hilfe von &lt;code&gt;imagemagick&lt;/code&gt; könnt ihr unter &lt;a href=&#34;https://soeren.one/tags/ubuntu/&#34;&gt;Ubuntu&lt;/a&gt; die exif-Daten eurer &lt;a href=&#34;https://soeren.one/tags/fotographie&#34;&gt;Fotos&lt;/a&gt; auslesen.&lt;/p&gt;
&lt;h3 id=&#34;imagemagick-installieren&#34;&gt;&lt;code&gt;imagemagick&lt;/code&gt; installieren&lt;/h3&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;batman@helium:~$ sudo apt-get install imagemagick
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;mit-identify-die-meta-daten-auslesen&#34;&gt;mit &lt;code&gt;identify&lt;/code&gt; die Meta-Daten auslesen&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;batman@helium:~$ identify -verbose link/to/image.jpg
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;Image: image.jpg
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  Format: JPEG &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;Joint Photographic Experts Group JFIF format&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  Mime type: image/jpeg
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  Class: DirectClass
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  Geometry: 458x458+0+0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  Resolution: 72x72
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  Print size: 6.36111x6.36111
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  Units: PixelsPerInch
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  Colorspace: sRGB
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  Type: TrueColor
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  Base type: Undefined
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  Endianess: Undefined
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;15&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  Depth: 8-bit
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;16&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  Channel depth:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;17&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    red: 8-bit
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;18&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    green: 8-bit
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;19&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    blue: 8-bit
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;20&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  ...&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&#34;output-auf-die-exif-informationen-einschränken&#34;&gt;Output auf die exif-Informationen einschränken&lt;/h3&gt;
&lt;p&gt;Wenn ihr beispielsweise nur an den exif-Informationen interessiert seid, könnt ihr die Ausgabe mit &lt;code&gt;grep&lt;/code&gt; eingrenzen.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;batman@helium:~$ identify -verbose link/to/image.jpg | grep &amp;#34;exif:&amp;#34;

    exif:ApertureValue: 177537/78038
    exif:BrightnessValue: 128447/18170
    exif:ColorSpace: 1
    exif:ComponentsConfiguration: 1, 2, 3, 0
    exif:ExifImageLength: 458
    exif:ExifImageWidth: 458
    exif:ExifOffset: 170
    exif:ExifVersion: 48, 50, 50, 49
    exif:ExposureBiasValue: 0/1
    exif:ExposureMode: 0
    ...
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;geo-koordinaten-auslesen&#34;&gt;Geo-Koordinaten auslesen&lt;/h3&gt;
&lt;p&gt;Und wenn euch beispielsweise nur die Geo-Koordinaten im Foto interessieren, könnt ihr natürlich auch danach suchen.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;batman@helium:~$ identify -verbose link/to/image.jpg | grep &amp;#34;exif:GPS&amp;#34;

    exif:GPSAltitude: 125791/8327
    exif:GPSAltitudeRef: 0
    exif:GPSDateStamp: 2018:10:26
    exif:GPSDestBearing: 268263/3437
    exif:GPSDestBearingRef: T
    exif:GPSImgDirection: 611324/2369
    exif:GPSImgDirectionRef: T
    exif:GPSInfo: 1670
    exif:GPSLatitude: 35/1, 43/1, 5997/100
    exif:GPSLatitudeRef: N
    exif:GPSLongitude: 139/1, 44/1, 4874/100
    ...
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;with-great-power-&#34;&gt;With Great Power &amp;hellip;&lt;/h3&gt;
&lt;p&gt;Ich habe das heute gebraucht, weil mir ein Foto auf verschiedenen Betriebssystemen in unterschiedlichen Orientierungen angezeigt wurde (unter Windows richtig, unter Ubuntu auf dem Kopf) und ich herausfinden wollte was das Foto eigentlich dazu sagt (Spoiler: &lt;!-- raw HTML omitted --&gt;natürlich hatte Ubuntu Recht :smile:&lt;!-- raw HTML omitted --&gt;).&lt;/p&gt;
&lt;p&gt;Es hat mir wieder einmal vor Augen geführt, wie schnell man persönliche Informationen preis gibt. Ein Foto mit dem Handy daheim aufgenommen und auf Facebook geladen? Dann brauchst du eigentlich auch keine Adresse mehr hinterlegen - wo du wohnst ist dann eh klar.&lt;/p&gt;&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: EXIF%20Daten%20unter%20Ubuntu%20auslesen&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2019%2fexif-auslesen-ubuntu%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>Lebenslauf mit Markdown erstellen</title>
      <link>https://soeren.one/2019/markdown-lebenslauf-erstellen/</link>
      <pubDate>Mon, 08 Jul 2019 00:00:00 +0000</pubDate>
      <guid>https://soeren.one/2019/markdown-lebenslauf-erstellen/</guid>
      <description>&lt;p&gt;s
Zum Glück müssen die meisten von uns nicht jeden Tag den eigenen Lebenslauf zu Papier bringen. Wann genau war ich nochmal bei Firma X? Wie lang dauerte das Praktikum in München? Und wie war nochmal der genaue Titel der Bachelorarbeit? &amp;hellip;&lt;/p&gt;
&lt;p&gt;Das eh schon aufwendige Prozedere wird noch ein bisschen aufwendiger, wenn man zusätzlich die Formatierungseigenheiten von Word verstehen muss. Richtig schön wird es, wenn sich Dateiformate geändert und einst schön formatierte Dokumente mittlerweile gruselig aussehen.&lt;/p&gt;
&lt;p&gt;Ich hatte daher seit längerem den Wunsch, den nächsten Lebenslauf so nerdfreundlich wie möglich anzugehen. Idealerweise als leicht zu schreibendes Markdown-File, das trotzdem mit einer modernen Formatierung aufwarten kann.&lt;/p&gt;
&lt;p&gt;Gesucht - &lt;a href=&#34;https://blog.chmd.fr/editing-a-cv-in-markdown-with-pandoc.html&#34;&gt;Gefunden&lt;/a&gt;. Auf dem Blog von Christophe-Marie Duquesne bin ich fündig geworden. Das Design des dort &lt;a href=&#34;https://resume.chmd.fr/&#34;&gt;vorgestellten Lebenslaufs&lt;/a&gt; hat mich zwar nur semi-überzeugt, aber das zugrunde liegende CSS lässt sich ja leicht anpassen.&lt;/p&gt;
&lt;h2 id=&#34;lass-es-uns-ausprobieren&#34;&gt;Lass es uns ausprobieren!&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Als erstes installieren wir die notwendigen Programme:
Wir benötigen einen Editor. Ich mag aktuell &lt;a href=&#34;https://code.visualstudio.com/&#34;&gt;VS Code&lt;/a&gt; - du kannst aber jeden beliebigen verwenden (wenn es dich glücklich macht sogar &lt;a href=&#34;https://www.vim.org/&#34;&gt;vim&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Zur Umwandlung des Markdown-Files nach HTML benötigen wir pandoc. Eine Anleitung zur Installation findest du hier: &lt;a href=&#34;https://pandoc.org/installing.html&#34;&gt;https://pandoc.org/installing.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Und schließlich solltest du noch wkhtmltopdf installieren, das aus den erzeugten HTML-Dateien schöne PDFs macht: &lt;a href=&#34;https://wkhtmltopdf.org/downloads.html&#34;&gt;https://wkhtmltopdf.org/downloads.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;lebenslauf-in-markdown-übersetzen&#34;&gt;Lebenslauf in Markdown übersetzen&lt;/h3&gt;
&lt;p&gt;Dann übersetzen wir den Lebenslauf nach Markdown. Die Datei könnte wie folgt aussehen (cv.md). Falls euch die Markdown-Syntax entfallen ist, könnt ihr &lt;a href=&#34;https://markdown.de/&#34;&gt;hier&lt;/a&gt; nochmal spicken. Für mich neu war die &lt;a href=&#34;https://kramdown.gettalong.org/syntax.html#definition-lists&#34;&gt;&amp;quot;:&amp;quot;-Notation&lt;/a&gt;, um Definitionen zu erstellen. Das sorgt für ein schönes Zweispalten-Layout - ideal für den Lebenslauf.&lt;/p&gt;
&lt;h4 id=&#34;cvmd&#34;&gt;&lt;code&gt;cv.md&lt;/code&gt;&lt;/h4&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# Bruce Wayne

&amp;gt; +1 555 123456 • ceo@wayne-enterprises.com\
&amp;gt; Wayne Manor, Gotham, USA

## Berufserfahrung
1939 - heute
:	**Wayne Enterprises**, Vorstandsvorsitzender

1939 - heute
:   **Fledermaus-Fanclub**, Verbrechensbekämpfer
...
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;design-des-lebenslaufs-definieren&#34;&gt;Design des Lebenslaufs definieren&lt;/h3&gt;
&lt;p&gt;Als nächstes definieren wir, wie die einzelnen Bestandteile formatiert werden sollen (style.css). Als Ausgangspunkt empfehle ich euch, die &lt;a href=&#34;https://raw.githubusercontent.com/chmduquesne/resume/master/style.css&#34;&gt;Vorlage aus Christophe-Maries GitHub-Repo&lt;/a&gt; zu verwenden. Ich habe sie für meinen Lebenslauf aber deutlich angepasst.&lt;/p&gt;
&lt;h4 id=&#34;stylecss&#34;&gt;&lt;code&gt;style.css&lt;/code&gt;&lt;/h4&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;body {
    font-family: &amp;#34;Helvetica Neue&amp;#34;, Helvetica, Arial, sans-serif;
    color: #000000;
    width: 800px;
    margin: auto;
    background: #FFFFFF;
    padding: 10px 10px 10px 10px;
}
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;befehle-nur-einmal-schreiben-dank-kleinem-skript&#34;&gt;Befehle nur einmal schreiben, dank kleinem Skript&lt;/h3&gt;
&lt;p&gt;Um die Consolen-Befehle nur einmal tippen zu müssen, erstellen wir als letztes noch ein kleines Skript (&lt;code&gt;create_cv.sh&lt;/code&gt;). &lt;strong&gt;Bitte denkt daran&lt;/strong&gt;, die Dateinamen anzupassen falls ihr andere verwendet habt. Ich gehe davon aus, dass der Lebenslauf &lt;code&gt;cv.md&lt;/code&gt; und das Stylesheet &lt;code&gt;style.css&lt;/code&gt; heißt.&lt;/p&gt;
&lt;h4 id=&#34;create_cvsh&#34;&gt;&lt;code&gt;create_cv.sh&lt;/code&gt;&lt;/h4&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;#!/bin/bash

# Translate MD --&amp;gt; HTML
pandoc --standalone -c style.css --from markdown --to html -o cv.html cv.md --metadata pagetitle=&amp;#34;CV&amp;#34;

# Translate HTML --&amp;gt; PDF
wkhtmltopdf cv.html cv.pdf
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;lebenslauf-erstellen&#34;&gt;Lebenslauf erstellen&lt;/h3&gt;
&lt;p&gt;Lassen wir es laufen! Skript ausführbar machen und los geht&amp;rsquo;s!&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;batman@helium:~$ chmod + x create_cv.sh
batman@helium:~$ ./create_sv.sh
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Danach solltet ihr zwei neue Dateien &lt;code&gt;cv.html&lt;/code&gt; und &lt;code&gt;cv.pdf&lt;/code&gt; im Ordner finden.&lt;/p&gt;
&lt;p&gt;Fertig :-)&lt;/p&gt;
&lt;p&gt;Unser Lebenslauf von Batman sieht übrigens im ersten Entwurf wie folgt aus. Mit ein bisschen mehr Inhalt und Farbe lässt sich das schnell aufhübschen.&lt;/p&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;h3 id=&#34;code-auf-github&#34;&gt;Code auf Github&lt;/h3&gt;
&lt;p&gt;Wie immer findet ihr den gesamten Code auf GitHub: &lt;a href=&#34;https://github.com/s01ren/markdown_cv&#34;&gt;https://github.com/s01ren/markdown_cv&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: Lebenslauf%20mit%20Markdown%20erstellen&amp;body=Link to post: https%3a%2f%2fsoeren.one%2f2019%2fmarkdown-lebenslauf-erstellen%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>/about</title>
      <link>https://soeren.one/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://soeren.one/about/</guid>
      <description>&lt;h2 id=&#34;-hello-dear-reader&#34;&gt;👋 Hello dear reader,&lt;/h2&gt;
&lt;h4 id=&#34;i-am-søren-let-me-tell-you-a-little-bit-about-me&#34;&gt;I am Søren. Let me tell you a little bit about me.&lt;/h4&gt;
&lt;p&gt;🧑‍💻 In my day job, I am employed as Data Engineer in a med-tech company. The &amp;ldquo;data&amp;rdquo; arena has been my home turf ever since leaving university.&lt;/p&gt;
&lt;p&gt;🏡 These days, I live about 250km away from my work place. If you have questions about &lt;a href=&#34;https://soeren.one/2024/office-vs-home-office/&#34;&gt;working remotely&lt;/a&gt;, I am your guy.&lt;/p&gt;
&lt;p&gt;🌼 I am a millennial and vaguely remember a time before the internet was available everywhere and anytime. I socialized with the web during senior years in school, thanks to ICQ. I had my first blog in 2007.&lt;/p&gt;
&lt;p&gt;💌 If you would like to get in touch, please just reach out. It only takes &lt;a href=&#34;https://soeren.one/contact&#34;&gt;one email&lt;/a&gt;. And if you just want to read my latest blog posts, consider subscribing to my &lt;a href=&#34;https://soeren.one/index.xml&#34;&gt;RSS feed&lt;/a&gt;.&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: %2fabout&amp;body=Link to post: https%3a%2f%2fsoeren.one%2fabout%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>/contact</title>
      <link>https://soeren.one/contact/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://soeren.one/contact/</guid>
      <description>&lt;p&gt;I am not very active on social media. Actually, &lt;a href=&#34;https://soeren.one/2024/give-up-social-media/&#34;&gt;I deleted all my presences&lt;/a&gt; on the various platforms.&lt;/p&gt;
&lt;p&gt;Hence, the best way to reach me is via good old email. Please be polite and don&amp;rsquo;t spam me.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;mailto:hej@soeren.one&#34;&gt;hej@soeren.one&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: %2fcontact&amp;body=Link to post: https%3a%2f%2fsoeren.one%2fcontact%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>/defaults</title>
      <link>https://soeren.one/defaults/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://soeren.one/defaults/</guid>
      <description>&lt;p&gt;This is another one of my &lt;a href=&#34;https://soeren.one/slashes&#34;&gt;Slash Pages&lt;/a&gt; - created to list the apps I default to on a daily basis.&lt;/p&gt;
&lt;p&gt;The whole idea for this was inspired by the &lt;a href=&#34;https://listen.hemisphericviews.com/097&#34;&gt;Hemispheric Podcast&lt;/a&gt; in late 2023.&lt;/p&gt;
&lt;p&gt;I plan to update the default apps on a regular (~ yearly) basis.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://soeren.one/2023/default-apps-2023&#34;&gt;My default Apps in late 2023&lt;/a&gt; is about my initial listing.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://soeren.one/2024/default-apps-2024&#34;&gt;My default Apps in mid 2024&lt;/a&gt; show what hs changed roughly seven months after the initial type, including the recommendations I stumbled upon reading the other contributions.&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: %2fdefaults&amp;body=Link to post: https%3a%2f%2fsoeren.one%2fdefaults%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>/legal</title>
      <link>https://soeren.one/legal/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://soeren.one/legal/</guid>
      <description>&lt;h1 id=&#34;privacy&#34;&gt;Privacy&lt;/h1&gt;
&lt;p&gt;Personally, I have made quite some efforts to maintain privacy in the Internet where possible and I thought that you - dear reader - deserve the same from me. That is why this page comes without any analytics or cookies.&lt;/p&gt;
&lt;p&gt;However, I want to remind you that whenever you access a file on a server (like this web site), the activity may be stored in the server&amp;rsquo;s logfiles. For this website, server logs have been disabled. You can read more about this here: &lt;a href=&#34;https://manual.uberspace.de/web-logs/&#34;&gt;https://manual.uberspace.de/web-logs/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As mentioned above, this website &lt;strong&gt;does not store any cookies&lt;/strong&gt; on your machine. You can verify this using a tool like CookieMetrix: &lt;a href=&#34;https://www.cookiemetrix.com&#34;&gt;https://www.cookiemetrix.com&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;license--credit&#34;&gt;License &amp;amp; Credit&lt;/h1&gt;
&lt;p&gt;All content on this site is published under the Creative Commons Share Alike 4.0 licences - unless otherwise stated. The details of the license agreement can be found here: &lt;a href=&#34;https://creativecommons.org/licenses/by-sa/4.0/&#34;&gt;https://creativecommons.org/licenses/by-sa/4.0/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In short, this means that &lt;strong&gt;you are free to&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;copy and redistribute&lt;/strong&gt; the material in any medium and format for any purpose,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;remix and transform&lt;/strong&gt; the content, use it to build something new, for any purpose&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;As long as you&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;give appropriate credit&lt;/strong&gt;. An acceptable attribution would be something like this:
&lt;code&gt;&amp;lt;p&amp;gt;Credit to &amp;lt;a href=&amp;quot;https://gluecko.se&amp;quot;&amp;gt; soeren &amp;lt;/a&amp;gt; for the original work.&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;and share alike&lt;/strong&gt;. Meaning if you remix, transform or use the material to build something new, it must be shared under the same liscence as the original.&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: %2flegal&amp;body=Link to post: https%3a%2f%2fsoeren.one%2flegal%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>/slash-pages</title>
      <link>https://soeren.one/slashes/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://soeren.one/slashes/</guid>
      <description>&lt;p&gt;It’s been a new trend among the cool folks, to add different slash pages to one’s personal website. Don’t know what slash pages are? Check out &lt;a href=&#34;https://slashpages.net/&#34;&gt;Robb’s great overview page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here is an overview, of my slashes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../about&#34;&gt;&lt;code&gt;/about&lt;/code&gt;&lt;/a&gt;, if you want to learn a bit more about me.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://ko-fi.com/s01ren&#34;&gt;&lt;code&gt;/coffee&lt;/code&gt;&lt;/a&gt;, if you think the stuff I do is cool and want to buy me a ☕️ coffee.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../contact&#34;&gt;&lt;code&gt;/contact&lt;/code&gt;&lt;/a&gt;, if you want to get in contact with me.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://soeren.one/defaults&#34;&gt;&lt;code&gt;/defaults&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://soeren.one/legal&#34;&gt;&lt;code&gt;/legal&lt;/code&gt;&lt;/a&gt;, if you want to read some legal and tracking information for this site.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../uses&#34;&gt;&lt;code&gt;/uses&lt;/code&gt;&lt;/a&gt;, if you want to know what tools and software I use regularly.&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: %2fslash-pages&amp;body=Link to post: https%3a%2f%2fsoeren.one%2fslashes%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
    <item>
      <title>/uses</title>
      <link>https://soeren.one/uses/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://soeren.one/uses/</guid>
      <description>&lt;!-- raw HTML omitted --&gt;
&lt;p&gt;This is another one of my &lt;a href=&#34;../slashes&#34;&gt;Slash Pages&lt;/a&gt; - created to list the things I use on a daily basis.&lt;/p&gt;
&lt;h1 id=&#34;tech-stack&#34;&gt;Tech Stack&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;💻 MacBook Air (M1)&lt;/li&gt;
&lt;li&gt;📱 iPhone 12 mini&lt;/li&gt;
&lt;li&gt;🎧 AirPods Prp (Gen 1)&lt;/li&gt;
&lt;li&gt;⌨️ MX Keys&lt;/li&gt;
&lt;li&gt;🖱️ MX Masters 3&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;software&#34;&gt;Software&lt;/h1&gt;
&lt;p&gt;Check out my &lt;a href=&#34;../defaults&#34;&gt;&lt;code&gt;/deaults&lt;/code&gt;&lt;/a&gt; page for a more in-depth overview of my default apps.&lt;/p&gt;
&lt;h2 id=&#34;mac&#34;&gt;Mac&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;🌐 Browser: Safari / Arc&lt;/li&gt;
&lt;li&gt;🔓 Passwords: Enpass&lt;/li&gt;
&lt;li&gt;🧑‍💻 Code: Visual Studio Code&lt;/li&gt;
&lt;li&gt;🚀 Launcher: Raycast&lt;/li&gt;
&lt;li&gt;📖 RSS: Reeder&lt;/li&gt;
&lt;li&gt;📝 Notes: Obsidian&lt;/li&gt;
&lt;li&gt;✅ To-Do: Reminders.app&lt;/li&gt;
&lt;li&gt;📨 Mail Client: Mail.app&lt;/li&gt;
&lt;li&gt;📆 Calendar: Calendar.App&lt;/li&gt;
&lt;li&gt;💬 Chat: Signal, WhatsApp&lt;/li&gt;
&lt;li&gt;? TablePlus&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;ios&#34;&gt;iOS&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;📷 Photo Shooting: Camera.app&lt;/li&gt;
&lt;li&gt;📆 Calendar: Calendar.App &amp;amp; Calendar 5&lt;/li&gt;
&lt;li&gt;📖 RSS: Reeder&lt;/li&gt;
&lt;li&gt;💬 Chat: Signal, WhatsApp&lt;/li&gt;
&lt;li&gt;🎤 Podcasts: Castro&lt;/li&gt;
&lt;li&gt;📰 News: Sueddeutsche Zeitung&lt;/li&gt;
&lt;li&gt;🎵 Music: &lt;del&gt;Apple Music,&lt;/del&gt; Spotify&lt;/li&gt;
&lt;li&gt;🌐 Browser: Safari / Arc&lt;/li&gt;
&lt;li&gt;🔓 Passwords: Enpass&lt;/li&gt;
&lt;li&gt;🧑‍💻 Code: Visual Studio Code&lt;/li&gt;
&lt;li&gt;📝 Notes: Obsidian&lt;/li&gt;
&lt;li&gt;✅ To-Do: Reminders.app&lt;/li&gt;
&lt;li&gt;📨 Mail Client: Mail.app&lt;/li&gt;
&lt;li&gt;🍏 Intermediate Fasting: Fastic&lt;/li&gt;
&lt;li&gt;📚 Read-Later: Omnivore&lt;/li&gt;
&lt;li&gt;🚂 Public Transport: DB Navigator&lt;/li&gt;
&lt;li&gt;🥾 Outdoor Navigation: Komoot&lt;/li&gt;
&lt;li&gt;🍽️ Recepies: Mela&lt;/li&gt;
&lt;li&gt;☁️ Cloud Sync: iCloud + Synology&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;blog&#34;&gt;Blog&lt;/h1&gt;
&lt;p&gt;Check out the other posts, I wrote about &lt;a href=&#34;https://soeren.one/tags/blogging&#34;&gt;blogging&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hugo&lt;/li&gt;
&lt;li&gt;Uberspace&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;outdoor&#34;&gt;Outdoor&lt;/h1&gt;
&lt;p&gt;Check out the other posts, I wrote about my adventures &lt;a href=&#34;https://soeren.one/tags/outdoors&#34;&gt;outdoors&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;24l Deuter&lt;/li&gt;
&lt;li&gt;40l Deuter&lt;/li&gt;
&lt;li&gt;First Aid&lt;/li&gt;
&lt;li&gt;Schlafsack&lt;/li&gt;
&lt;li&gt;Isomatte&lt;/li&gt;
&lt;li&gt;Taschenmesser&lt;/li&gt;
&lt;li&gt;Besteck&lt;/li&gt;
&lt;li&gt;Packsäcke&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;watches&#34;&gt;Watches&lt;/h1&gt;
&lt;p&gt;Check out the other posts, I wrote about &lt;a href=&#34;https://soeren.one/tags/watches&#34;&gt;my watch collection&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Opas&lt;/li&gt;
&lt;li&gt;Sternglas Hamburg&lt;/li&gt;
&lt;li&gt;Garmin Fenix 7&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;camera&#34;&gt;Camera&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Olympus OMD 10?&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;bike&#34;&gt;Bike&lt;/h1&gt;
&lt;p&gt;Check out the other posts, I wrote about &lt;a href=&#34;https://soeren.one/tags/biking&#34;&gt;biking&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cube Road SL&lt;/li&gt;
&lt;li&gt;Cube Nuroad Hybrid&lt;/li&gt;
&lt;li&gt;Hip Back&lt;/li&gt;
&lt;li&gt;Arschrakete&lt;/li&gt;
&lt;li&gt;Wahoo&lt;/li&gt;
&lt;li&gt;Pedale&lt;/li&gt;
&lt;li&gt;Schloss&lt;/li&gt;
&lt;li&gt;Schuhe&lt;/li&gt;
&lt;li&gt;Helm&lt;/li&gt;
&lt;li&gt;Brille&lt;/li&gt;
&lt;li&gt;Hose&lt;/li&gt;
&lt;li&gt;Trikot&lt;/li&gt;
&lt;li&gt;Weste&lt;/li&gt;
&lt;li&gt;Regenjacke&lt;/li&gt;
&lt;li&gt;Multitool&lt;/li&gt;
&lt;li&gt;Reifenheber&lt;/li&gt;
&lt;li&gt;Drehmoment&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;hr&gt;
&lt;br&gt;
Thank you for subscribing to this RSS feed. 
&lt;b&gt;&lt;a href=&#34;https://soeren.one/&#34;&gt;https://soeren.one/&lt;/a&gt;&lt;/b&gt; is &lt;a href=&#34;https://soeren.one//about/&#34;&gt;søren&lt;/a&gt;&#39;s personal blog. 
If you want to get in touch, please &lt;b&gt;&lt;a href=&#34;mailto:hej@soeren.one?subject=Reply to: %2fuses&amp;body=Link to post: https%3a%2f%2fsoeren.one%2fuses%2f&#34;&gt;reply to this post via email&lt;/a&gt;&lt;/b&gt;. 
</description>
      
    </item>
  </channel>
</rss>
