<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ingo Richter on Today is Tomorrow's Past</title><link>https://ingo-richter.io/</link><description>Recent content in Ingo Richter on Today is Tomorrow's Past</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>ingo@ingo-richter.io (Ingo Richter)</managingEditor><webMaster>ingo@ingo-richter.io (Ingo Richter)</webMaster><copyright>© 2026 Ingo Richter</copyright><lastBuildDate>Mon, 15 Sep 2025 00:00:00 -0700</lastBuildDate><atom:link href="https://ingo-richter.io/index.xml" rel="self" type="application/rss+xml"/><item><title>What Ingo is up to</title><link>https://ingo-richter.io/now/</link><pubDate>Mon, 15 Sep 2025 00:00:00 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/now/</guid><description>&lt;h2 id="-what-im-reading"&gt;📖 What I&amp;rsquo;m reading&lt;/h2&gt;
&lt;div class="reading"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://openlibrary.org/books/OL16283407W" target="_blank" rel="noopener"&gt;So Good They Can&amp;#39;t Ignore You - Cal Newport&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://openlibrary.org/books/OL23653990W" target="_blank" rel="noopener"&gt;The Ten Equations That Rule the World - David J. T. Sumpter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://openlibrary.org/books/OL17879515W" target="_blank" rel="noopener"&gt;Make It Stick - Peter C. Brown, Henry L. Roediger, and Mark A. Daniel&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="-what-im-watching"&gt;📺 What I&amp;rsquo;m watching&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.hbomax.com/shows/peacemaker-2022/s2/a939d96b-7ffb-4481-96f6-472838d104ca" target="_blank" rel="noopener"&gt;Peacemaker&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.imdb.com/title/tt32580215/" target="_blank" rel="noopener"&gt;Chabos&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="-what-im-making"&gt;🧰 What I&amp;rsquo;m making&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Developing a small web app to keep track of round based game scores&lt;/li&gt;
&lt;li&gt;small macOS app to clean up my Desktop periodically. Practicing my Swift skills&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="-what-im-learning"&gt;🔬 What I&amp;rsquo;m learning&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;How to sell things online&lt;/li&gt;
&lt;li&gt;Data Analytics&lt;/li&gt;
&lt;li&gt;Converting a flaky Playwright test suite into a reliable test suite&lt;/li&gt;
&lt;li&gt;Experiment with &lt;a href="https://github.com/github/spec-kit" target="_blank" rel="noopener"&gt;spec-kit&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>The Weight of Unfinished Projects</title><link>https://ingo-richter.io/post/2025/perfection-is-my-nemesis/</link><pubDate>Thu, 28 Aug 2025 23:01:19 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/post/2025/perfection-is-my-nemesis/</guid><description/></item><item><title>Manage Multiple Git Identities With Conditional Includes</title><link>https://ingo-richter.io/post/2025/manage-multiple-git-identities-with-conditional-includes/</link><pubDate>Thu, 05 Jun 2025 22:31:24 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/post/2025/manage-multiple-git-identities-with-conditional-includes/</guid><description/></item><item><title>Weekly Wallpaper Week 22/2025</title><link>https://ingo-richter.io/wallpaper/2025/week-22/</link><pubDate>Sun, 01 Jun 2025 21:53:11 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/wallpaper/2025/week-22/</guid><description>&lt;h2 id="wallpaper-week-222025"&gt;Wallpaper Week 22/2025&lt;/h2&gt;
&lt;h3 id="howdy"&gt;Howdy&lt;/h3&gt;
&lt;p&gt;I&amp;rsquo;ve spent last Saturday afternoon riding my bicycle in a bigger loop in the East Bay. For a water and coffee break, I stopped on &lt;a href="https://en.wikipedia.org/wiki/Alameda_(island)"&gt;Alameda&lt;/a&gt;. The coffee shop was close to the beach, and I took the opportunity to find a spot on the beach to take some pictures of the bay and San Francisco in the far distance. Since the city was covered in afternoon fog, the whole scenery looked slightly apocalyptic with the sunset happening to the west of San Francisco.&lt;/p&gt;</description></item><item><title>Weekly Wallpaper Week 20/2025</title><link>https://ingo-richter.io/wallpaper/2025/week-20/</link><pubDate>Tue, 13 May 2025 23:01:09 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/wallpaper/2025/week-20/</guid><description>&lt;h2 id="wallpaper-week-202025"&gt;Wallpaper Week 20/2025&lt;/h2&gt;
&lt;h3 id="howdy"&gt;Howdy&lt;/h3&gt;
&lt;p&gt;I went for a short hike last weekend in &lt;a href="https://en.wikipedia.org/wiki/Marin_County%2C_California" title="Marin County"&gt;Marin County, CA&lt;/a&gt;. We had beautiful weather with temperatures around 70°F and a light breeze that helped during the midday hike.&lt;/p&gt;
&lt;p&gt;The hike from the parking lot was roughly 1.8 miles and mostly flat. There were other trails going higher over the mountain ridge, but we were not in the mood for climbing.&lt;/p&gt;</description></item><item><title>Adding a Colorful Border Around macOS App Windows</title><link>https://ingo-richter.io/post/2024/adding-a-colorful-border-around-macos-windows/</link><pubDate>Tue, 28 May 2024 10:23:58 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/post/2024/adding-a-colorful-border-around-macos-windows/</guid><description>&lt;h2 id="tldr"&gt;TL;DR&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/FelixKratz/JankyBorders" title="JankyBorders"&gt;JankyBorders&lt;/a&gt; is a tool that allows you to add a colored border around macOS app windows. This is helpful, especially in dark mode, to better see the window border and identify which application window is in front and active.&lt;/p&gt;
&lt;p&gt;With a simple configuration file, it’s possible to specify the colors for the active and inactive windows. The program has more customizable options than I will discuss here. I focus on defining the colors for the active window and the inactive windows. I will also show how to use gradients and glow for borders.&lt;/p&gt;</description></item><item><title>How to Learn New Things</title><link>https://ingo-richter.io/post/2024/how-to-learn-new-things/</link><pubDate>Mon, 08 Apr 2024 21:54:49 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/post/2024/how-to-learn-new-things/</guid><description/></item><item><title>Losing Weight and Improve My Health</title><link>https://ingo-richter.io/post/2024/losing-weight-and-improve-my-health/</link><pubDate>Wed, 14 Feb 2024 22:38:52 -0800</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/post/2024/losing-weight-and-improve-my-health/</guid><description/></item><item><title>US Citizenship</title><link>https://ingo-richter.io/post/2023/us-citizenship/</link><pubDate>Tue, 05 Sep 2023 00:00:00 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/post/2023/us-citizenship/</guid><description>&lt;h2 id="im-a-us-citizen-now---"&gt;I&amp;rsquo;m a US Citizen Now 🇩🇪 + 🇺🇸&lt;/h2&gt;
&lt;h3 id="tldr"&gt;TL;DR&lt;/h3&gt;
&lt;p&gt;On July 31, 2023, I received my US Citizenship certificate during the Oath Ceremony at the USCIS Field Office in San Francisco. The whole process from filing BBG to certificate took ~22 Months. There was a delay in the biometrics appointment since I was in Germany for a more extended period. I now have German and US Citizenship and can freely roam between countries.&lt;/p&gt;</description></item><item><title>It Is Already May</title><link>https://ingo-richter.io/post/2023/it-is-already-may/</link><pubDate>Tue, 02 May 2023 00:00:00 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/post/2023/it-is-already-may/</guid><description>&lt;h1 id="its-already-may"&gt;It&amp;rsquo;s already May&lt;/h1&gt;
&lt;p&gt;Woah, we have already surpassed the four-month mark for this year. A lot of things have happened in the last four months.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;In January, I was reassigned to my new team. Now, I&amp;rsquo;m working on our products&amp;rsquo; &lt;em&gt;Share and Review&lt;/em&gt; functionality. I&amp;rsquo;m back to Web Development + plus a little bit of &lt;a href="https://developer.adobe.com/photoshop/uxp/2022/" title="UXP"&gt;UXP&lt;/a&gt; (proprietary Tech) that enables us to target our Desktop Apps with the same JS/TS code base&lt;/li&gt;
&lt;li&gt;Spent 40 days in Germany from March through Easter in April. My son&amp;rsquo;s exchange partner from Ireland stayed with us for three weeks&lt;/li&gt;
&lt;li&gt;In February, I applied for US citizenship. Unfortunately, I had to cancel three biometrics submission appointments because I was in Germany and didn&amp;rsquo;t expect USCIS to ask so quickly to appear in person. Now, I haven&amp;rsquo;t heard anything from USCIS for a month. I assume that they put me at the end of the queue. Sigh&amp;hellip;&lt;/li&gt;
&lt;li&gt;A friend passed away after some long struggle in March. Rest in Peace, Peter 🥲. I&amp;rsquo;ll never forget you&lt;/li&gt;
&lt;li&gt;After two years of waiting for my invitation to order the new &lt;a href="https://www.ford.com/trucks/f150/f150-lightning/?gnav=header-electrified-vhp" title="Ford F-150 Lightning"&gt;Ford F-150 Lightning&lt;/a&gt; truck, it&amp;rsquo;s now my turn. I have time to decide until 5/8/2023 if I want to order it. After waiting a long time, I don&amp;rsquo;t think it&amp;rsquo;s an appropriate car for me. I like the idea of having an electric truck. It seemed the best way to justify such a big, unreasonable car. Given the state of competition in the EV market space and the crazy price hike for the F-150 since its introduction, I don&amp;rsquo;t think I feel excited about buying this truck. And then, there are rumors about technical issues with the F-150 that would delay the delivery by several months. No, thank you. Anyway, it was an exciting idea and something that kept me dreaming&lt;/li&gt;
&lt;li&gt;I started to exercise daily. Mobility and strength exercises to prevent problems with my body. I had a back issue last summer that lasted nearly six months. They only went away after some severe mobility and stretching exercise. I got a copy of &lt;a href="https://openlibrary.org/books/OL39377234M" title="Built To Move"&gt;Built to Move&lt;/a&gt;. The book talks about the importance of keeping the body moving.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That&amp;rsquo;s all for now. I hope the weather will improve in the coming weeks. It&amp;rsquo;s frigid and rainy for this time of year. One of the positives of the weather situation is that the wildfires are probably pushed out later this year 🤞🏼 I hope the best that the wildfire season doesn&amp;rsquo;t get so crazy.&lt;/p&gt;</description></item><item><title>Dayjs Extension Usage</title><link>https://ingo-richter.io/post/2023/dayjs-extension-usage/</link><pubDate>Tue, 14 Feb 2023 00:00:00 -0800</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/post/2023/dayjs-extension-usage/</guid><description>&lt;h2 id="enable-extensions-for-dayjs"&gt;Enable extensions for dayjs&lt;/h2&gt;
&lt;p&gt;I was working on a &lt;a href="https://github.com/ingorichter/Biorhythm"&gt;small project&lt;/a&gt; to sharpen my Javascript and Typescript skills. Nothing fancy.&lt;/p&gt;
&lt;p&gt;The project deals with data calculations, and I was looking for a modern replacement of momentjs. I found &lt;a href="https://day.js.org/en/"&gt;dayjs&lt;/a&gt;, which seemed to be a suitable replacement.&lt;/p&gt;
&lt;p&gt;As I mentioned, I had to find the number of days between the two dates. The documentation of dayjs mentioned a method to calculate the difference between two dates as duration. The duration could then be represented as days. That is exactly what I needed for my calculations.&lt;/p&gt;</description></item><item><title>Kicking Nextcloud Cron Script from TrueNAS Cron Job</title><link>https://ingo-richter.io/post/2023/kicking-nextcloud-cron-script-from-truenas-cronjob/</link><pubDate>Wed, 01 Feb 2023 00:00:00 -0800</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/post/2023/kicking-nextcloud-cron-script-from-truenas-cronjob/</guid><description>&lt;h2 id="kicking-nextcloud-cron-script-from-truenas-cron-job"&gt;Kicking Nextcloud Cron Script from TrueNAS Cron Job&lt;/h2&gt;
&lt;h2 id="tldr"&gt;Tl;DR&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;m running &lt;a href="https://truecharts.org/charts/stable/nextcloud/"&gt;TrueCharts Nextcloud&lt;/a&gt; in my TrueNAS SCALE at home. After the setup, I discovered that none of the cron jobs was running. I&amp;rsquo;m using the Nextcloud News App and never saw any new stories. I didn&amp;rsquo;t find a way to make the Nextcloud cron work, so I decided to have a cron job that runs every hour to kick the Nextclodu cron job in the Nextcloud docker container.&lt;/p&gt;</description></item><item><title>The Fediverse</title><link>https://ingo-richter.io/post/2022/fediverse/</link><pubDate>Sat, 29 Oct 2022 00:00:00 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/post/2022/fediverse/</guid><description>&lt;h2 id="the-fediverse"&gt;The Fediverse&lt;/h2&gt;
&lt;p&gt;I was never an active user of Twitter. Occasionally, I was browsing my feed. I follow the #genart posts and read about technology. My occasional post about some lesser important topic, the link to a blog post I wrote, or a retweet about something I believed to be interesting. I never ended up in a heated discussion about any crap with random people. I have a pretty dull social media existence.&lt;/p&gt;</description></item><item><title>On the Way to Dual Citizenship (🇩🇪🇺🇸)</title><link>https://ingo-richter.io/post/2022/on-the-way-to-dual-citizenship/</link><pubDate>Tue, 25 Oct 2022 00:00:00 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/post/2022/on-the-way-to-dual-citizenship/</guid><description>&lt;h2 id="13-months"&gt;13 Months&amp;hellip;&lt;/h2&gt;
&lt;p&gt;&amp;hellip; after filing the application to keep my German citizenship, I got an email today, letting me know that my application was accepted, and I was granted the permission to &lt;a href="https://en.wikipedia.org/wiki/Beibehaltungsgenehmigung"&gt;retain my German citizenship&lt;/a&gt; when applying for the US citizenship. Yes 🤘!&lt;/p&gt;
&lt;p&gt;Now, I need to make an appointment to pick up my certificate from the German Consulate in San Francisco. And then start the &lt;a href="https://www.uscis.gov/n-400"&gt;N-400&lt;/a&gt; process to become a US Citizen.&lt;/p&gt;</description></item><item><title>WFH Day 946</title><link>https://ingo-richter.io/cv19wfh/2022/10/day946/</link><pubDate>Tue, 18 Oct 2022 00:00:00 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/cv19wfh/2022/10/day946/</guid><description>&lt;h2 id="wfh-day-946"&gt;WFH Day 946&lt;/h2&gt;
&lt;p&gt;I had some random thoughts the other day.&lt;/p&gt;
&lt;p&gt;The invention of Smartphones and the evolution of built-in cameras was a big step forward in reducing friction to asking random people at scenic spots to take a picture of yourself. Do you remember the days you had to instruct people how to use the camera? How to focus, and which button to press before taking a picture? All this instructional talk was eliminated when smartphones started to take over our lives.&lt;/p&gt;</description></item><item><title>WFH Day 896</title><link>https://ingo-richter.io/cv19wfh/2022/08/day896/</link><pubDate>Sun, 28 Aug 2022 00:00:00 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/cv19wfh/2022/08/day896/</guid><description>&lt;h2 id="wfh-day-896"&gt;WFH Day 896&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;m working on too many things at once. The most important one is to replace my Synology NAS with a new one that I built from scratch. My friend was always telling me how great and reliable his &lt;a href="https://www.truenas.com"&gt;TrueNAS&lt;/a&gt; system is working for him. Now, I&amp;rsquo;m replacing my Synology NAS with a more powerful TrueNAS system with a more powerful CPU, RAM and Storage. It&amp;rsquo;s a steep learning curve to find my way configuring the new machine. It&amp;rsquo;s also a great way to clean up my existing data storage and rethink some of the services I have running on my old NAS. I believe that it&amp;rsquo;s the right thing to do with the new NAS. More commodity hardware and less vendor lock in. Never a boring day and always something new to learn.&lt;/p&gt;</description></item><item><title>WFH Day 870</title><link>https://ingo-richter.io/cv19wfh/2022/08/day870/</link><pubDate>Tue, 02 Aug 2022 00:00:00 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/cv19wfh/2022/08/day870/</guid><description>&lt;h2 id="wfh-day-870"&gt;WFH Day 870&lt;/h2&gt;
&lt;p&gt;Long time no update. I was pretty occupied at work getting some larger projects off the ground. The projects are currently in midair and need only occasional course adjustments to arrive at their final destination in the next three months.&lt;/p&gt;
&lt;p&gt;My employer is thankfully shutting down the offices in the US for the 4th of July week. Everybody is out of the office and getting some prescribed rest. I decided to move my PTO beginning the week after the company shut down. My family arrived from Germany during the company shutdown week. So, I got a quiet week and could work on a lot of stuff uninterrupted. That was great, and I&amp;rsquo;m thankful my Manager is flexible to support of my needs.&lt;/p&gt;</description></item><item><title>Update Prusa Mk3s Fan Shroud</title><link>https://ingo-richter.io/post/2022/update-prusa-mk3s-fan-shroud/</link><pubDate>Thu, 02 Jun 2022 00:00:00 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/post/2022/update-prusa-mk3s-fan-shroud/</guid><description>&lt;h2 id="a-better-fan-shroud"&gt;A Better Fan Shroud&lt;/h2&gt;
&lt;p&gt;I already updated my 3D Printer fan shroud a couple of months ago. It should cool the filament more effectively and evenly. I think it did a good job. Unfortunately, the shroud got too hot several times and was deformed. I was afraid that it now had reduced cooling performance. I found an update to the fan shroud that looked very efficient, and somebody analyzed the airflow, and it appeared to be very effective in cooling the filament.&lt;/p&gt;</description></item><item><title>Friday Evening Source Code Changes</title><link>https://ingo-richter.io/post/2022/friday-evening-source-code-changes/</link><pubDate>Mon, 16 May 2022 00:00:00 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/post/2022/friday-evening-source-code-changes/</guid><description>&lt;h2 id="well-crap-what-a-waste-of-time"&gt;Well, Crap, what a waste of time&lt;/h2&gt;
&lt;p&gt;One would guess that I should have known better with the work experience I accumulated in the software engineering field.&lt;/p&gt;
&lt;p&gt;But, it&amp;rsquo;s Friday evening, after our social team meeting, and I am still excited to finish something substantial for this feature that I&amp;rsquo;m working. Lots of moving parts, refactored code, loose ends, and hastily glued together code without any safety net. A couple of new unit tests for the new feature and some legacy code that I have to touch. Very picky and sensible legacy code. I&amp;rsquo;m careful not to break any existing and battlefield-proven code that is used by ~25M monthly active users across multiple products. Run the existing unit tests between more considerable changes and ensure that it stays in the green.&lt;/p&gt;</description></item><item><title>WFH Day 782</title><link>https://ingo-richter.io/cv19wfh/2022/05/day782/</link><pubDate>Fri, 06 May 2022 00:00:00 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/cv19wfh/2022/05/day782/</guid><description>&lt;h2 id="stepping-into-the-void"&gt;Stepping into the Void&lt;/h2&gt;
&lt;p&gt;Friday, May 6th, is the first time since the start of the Pandemic that I stepped inside our office. This time in San Jose. We wanted to celebrate a milestone with our team. The office was empty, and I saw only a handful of people. It was great to see my team and have lunch with them.
Driving to the office sucked. As expected. Too many cars on the road, and the traffic in the Bay Area is horrific in the afternoon.&lt;/p&gt;</description></item><item><title>WFH Day 778</title><link>https://ingo-richter.io/cv19wfh/2022/05/day778/</link><pubDate>Mon, 02 May 2022 00:00:00 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/cv19wfh/2022/05/day778/</guid><description>&lt;h2 id="global-day-off"&gt;Global Day Off&lt;/h2&gt;
&lt;p&gt;Thanks to my employer, I had an additional Day Off. To take care of myself and spend time away from my Computer.&lt;/p&gt;
&lt;p&gt;That clearly didn&amp;rsquo;t work out as planned. I didn&amp;rsquo;t stay away from my Computer. I had to clean up some mess I created on my work machine. Open browser tabs accumulated and I need to save some of them for later reference, some emails I put off for some time and some personal programming projects that I put off for quite some time.&lt;/p&gt;</description></item><item><title>WFH Day 761</title><link>https://ingo-richter.io/cv19wfh/2022/04/day761/</link><pubDate>Fri, 15 Apr 2022 00:00:00 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/cv19wfh/2022/04/day761/</guid><description>&lt;h2 id="wfh-day-761"&gt;WFH Day 761&lt;/h2&gt;
&lt;p&gt;Thanks to my employer, I had an additional Day Off. To take care of myself and spend time away from my Computer.&lt;/p&gt;
&lt;p&gt;I went out for a hike up Mission Peak in Fremont, California. I heard about it and wanted to do it for quite some time.
It was a great adventure. It was challenging, and I was tired like hell afterward. I got a sunburn on my face. Not great.&lt;/p&gt;</description></item><item><title>3d Printed Axidraw Easel Spacer</title><link>https://ingo-richter.io/post/2022/3d-printed-axidraw-easel-spacer/</link><pubDate>Tue, 05 Apr 2022 00:00:00 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/post/2022/3d-printed-axidraw-easel-spacer/</guid><description>&lt;h2 id="designing-a-spacer-for-my-axidraw-plotter"&gt;Designing a Spacer for my AxiDraw Plotter&lt;/h2&gt;
&lt;p&gt;I have an &lt;a href="https://shop.evilmadscientist.com/productsmenu/890" title="AxiDraw V3/A3"&gt;AxiDraw V3/A3&lt;/a&gt; Penplotter that I bought to satisfy a desire to own such a fantastic machine. It started in my teen years working with &lt;a href="http://www.hpmuseum.net/exhibit.php?class=4&amp;amp;cat=24" title="HP Plotters"&gt;HP Plotters&lt;/a&gt; in our university lab at the &lt;a href="https://www.tuhh.de/tuhh/en/startpage.html" title="TUHH"&gt;TUHH&lt;/a&gt;. I could not afford an HP Plotter back in the day, so that desire was never satisfied.&lt;/p&gt;</description></item><item><title>WFH Day 744</title><link>https://ingo-richter.io/cv19wfh/2022/03/day744/</link><pubDate>Tue, 29 Mar 2022 00:00:00 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/cv19wfh/2022/03/day744/</guid><description>&lt;h2 id="wfh-day-744"&gt;WFH Day 744&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s a whole week now since we can&amp;rsquo;t use any water in the house due to a clogged sewage pipe between the property and the main sewer pipe. That clogged pipe led to a flooding of the bathroom in the basement. Bad experience&amp;hellip;&lt;/p&gt;
&lt;p&gt;Several plumbing companies showed up and couldn&amp;rsquo;t resolve the problem. Some broke their machines snaking through the pipe.
That wasn&amp;rsquo;t very reassuring to hear.&lt;/p&gt;</description></item><item><title>WFH Day 736</title><link>https://ingo-richter.io/cv19wfh/2022/03/day736/</link><pubDate>Mon, 21 Mar 2022 00:00:00 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/cv19wfh/2022/03/day736/</guid><description>&lt;h2 id="wfh-day-736"&gt;WFH Day 736&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;m currently reading &lt;a href="https://openlibrary.org/works/OL24348088W/Out_of_Office"&gt;Out of Office - The Big Problem and Bigger Promise of Working from Home&lt;/a&gt; and I have a couple of pages left before this loan expires. It&amp;rsquo;s a fascinating book about what happens to the office and what other effects those changes will bring for cities and communities in general. There is a lot to think about in the future. And what defines the people that lost the defining part of their lives. I recommend reading the book and seeing what the future might look like and where you find yourself in that new environment.&lt;/p&gt;</description></item><item><title>TIL - Adding Swift Code to Objective-C Project</title><link>https://ingo-richter.io/post/2022/til-adding-swift-code-to-objective-c-project/</link><pubDate>Mon, 28 Feb 2022 00:00:00 -0800</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/post/2022/til-adding-swift-code-to-objective-c-project/</guid><description>&lt;h2 id="tldr"&gt;TL;DR&lt;/h2&gt;
&lt;p&gt;Adding Swift Code to Objective-C Project&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ensure your Swift class derives direct or indirect from NSObject&lt;/li&gt;
&lt;li&gt;Ensure your Swift class is &lt;code&gt;public&lt;/code&gt; to ensure the &lt;code&gt;YourProjectName-Swift.h&lt;/code&gt; header generation&lt;/li&gt;
&lt;li&gt;Prefix the class to expose it to Objective-C. Any Property or method needs its own &lt;code&gt;@objc&lt;/code&gt; annotation to be visible from Objective-C.&lt;/li&gt;
&lt;li&gt;Use the &lt;code&gt;@objcMembers&lt;/code&gt; annotation to expose all properties and methods of the Swift class&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="reminder-for-myself"&gt;Reminder for myself&lt;/h2&gt;
&lt;p&gt;I learned a couple of essential things about mixing Objective-C and Swift in one project.
I was using Swift for unit tests already, and that worked fine.
Now, I wanted to implement a new class in Swift. But I wanted to use that class in an existing Objective-C class.&lt;/p&gt;</description></item><item><title>WFH Day 702</title><link>https://ingo-richter.io/cv19wfh/2022/02/day702/</link><pubDate>Tue, 15 Feb 2022 00:00:00 -0800</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/cv19wfh/2022/02/day702/</guid><description>&lt;h2 id="wfh-day-702"&gt;WFH Day 702&lt;/h2&gt;
&lt;p&gt;Well, well, well, I surpassed the 700 days since I started counting the WFH days in March 2020. That&amp;rsquo;s a long time ago, and a lot has changed in the meantime. Quality of life is better than before. No 3-hour daily commute in sticky and filthy trains, no more coffee shop visits after work, more time for reading, better-equipped work environment, not meeting some of my dearest co-workers in person anymore, taking lunch break walks, taking a nap if I don&amp;rsquo;t feel well, not seeing the dirty City anymore and feeling more productive in general.&lt;/p&gt;</description></item><item><title>Adding Multiple Files to Macos Gatekeeper</title><link>https://ingo-richter.io/post/2022/adding-multiple-files-to-macos-gatekeeper/</link><pubDate>Thu, 10 Feb 2022 00:00:00 -0800</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/post/2022/adding-multiple-files-to-macos-gatekeeper/</guid><description>&lt;h2 id="the-gatekeeper"&gt;The Gatekeeper&lt;/h2&gt;
&lt;p&gt;Before I forget what I learned today, I better write it down.&lt;/p&gt;
&lt;p&gt;Gatekeeper on macOS ensures that properly signed and authentic apps and other executable files, including dylibs and kexts, are executed on your Mac.
But if you want to execute an open-source tool installed by &lt;a href="https://brew.sh"&gt;brew&lt;/a&gt; or some other way on your machine, you will usually see something like this confirmation dialog. In this case, for an app &lt;strong&gt;FSNotes&lt;/strong&gt; installed with brew.&lt;/p&gt;</description></item><item><title>WFH Day 693</title><link>https://ingo-richter.io/cv19wfh/2022/02/day693/</link><pubDate>Sun, 06 Feb 2022 00:00:00 -0800</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/cv19wfh/2022/02/day693/</guid><description>&lt;h2 id="wfh-day-693"&gt;WFH Day 693&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;m back in California for a week now, and my Jetlag is finally gone. Every time I travel to Germany, it feels like it&amp;rsquo;ll take longer to recover. And this week, I had a lot of meetings and tons of work to finish our development sprint. Not great, but I punched through it.&lt;/p&gt;</description></item><item><title>Hugo, Themes and My Theme Customization</title><link>https://ingo-richter.io/post/2022/hugo-themes-and-my-theme-customization/</link><pubDate>Tue, 18 Jan 2022 00:00:00 -0800</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/post/2022/hugo-themes-and-my-theme-customization/</guid><description>&lt;h2 id="tldr"&gt;TL;DR&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://gohugo.io"&gt;Hugo&lt;/a&gt;&amp;rsquo;s file lookup magic was biting me and was causing the 3rd party template to use a file with the same name from my blog assets directory.&lt;/p&gt;
&lt;h2 id="how-to-waste-lots-of-hours"&gt;How to waste lots of hours&lt;/h2&gt;
&lt;p&gt;I use &lt;a href="https://gohugo.io"&gt;Hugo&lt;/a&gt; for my &lt;a href="https://ingo-richter.io"&gt;Blog&lt;/a&gt; with a custom theme &lt;a href="https://github.com/pacollins/hugo-future-imperfect-slim"&gt;hugo future imperfect slim&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I made some customizations to my blog a while ago. I added &lt;a href="https://feimosi.github.io/baguetteBox.js/"&gt;baguetteBox.js&lt;/a&gt; for better image galleries and &lt;a href="https://afarkas.github.io/lazysizes/index.html"&gt;lazySizes&lt;/a&gt; to better support different image sizes in the gallery. I &lt;a href="https://gohugo.io/hugo-pipes/bundling/"&gt;bundled the files&lt;/a&gt; and minified them in a single javascript file to reduce the number of requests to the server.&lt;/p&gt;</description></item><item><title>Swiftui Learn by Doing</title><link>https://ingo-richter.io/post/2022/swiftui---learn-by-doing/</link><pubDate>Mon, 10 Jan 2022 00:00:00 -0800</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/post/2022/swiftui---learn-by-doing/</guid><description>&lt;h2 id="swiftui---learn-by-doing"&gt;SwiftUI - Learn by doing&lt;/h2&gt;
&lt;p&gt;I briefly started to use SwiftUI in 2021. I wanted to learn about the fundamentals and how SwiftUI differs from the traditional iOS and macOS development frameworks.&lt;/p&gt;
&lt;p&gt;Over the next couple of weeks, I will provide tutorials to help others learn SwiftUI by building some apps. I&amp;rsquo;m going to start building a Minesweeper clone. Minesweeper is a simple game that I loved to play when it was released with Windows 3.1 in 1990. The game idea itself is older, according to &lt;a href="https://en.wikipedia.org/wiki/Minesweeper_(video_game"&gt;Wikipedia&lt;/a&gt;.
Building it for iOS and macOS is a great way to use SwiftUI and share code among both platforms. And creating an old game on a modern platform seemed to be a great exercise. Learning how to make something look like a Windows Program on macOS and iOS seemed like a fun way to learn UI styling and bend code to your will.&lt;/p&gt;</description></item><item><title>WFH Day 657</title><link>https://ingo-richter.io/cv19wfh/2022/01/day657/</link><pubDate>Sat, 01 Jan 2022 00:00:00 -0800</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/cv19wfh/2022/01/day657/</guid><description>&lt;h2 id="wfh-day-657"&gt;WFH Day 657&lt;/h2&gt;
&lt;p&gt;Happy New Year!&lt;/p&gt;
&lt;p&gt;I hope you all had a great party to start the new year. Let&amp;rsquo;s all hope that we stay healthy and safe given the uncertainty of the still ongoing pandemic.&lt;/p&gt;
&lt;p&gt;New year, new beginnings. Everything is possible, and I&amp;rsquo;m looking forward to some exciting times. I still have the company-provided sabbatical that I must take this year (it will expire otherwise).
I&amp;rsquo;m looking forward to traveling to Yosemite in February, Nashville in April, Germany in June. I didn&amp;rsquo;t have concrete plans for the remaining six months of 2022 yet.&lt;/p&gt;</description></item><item><title>Happy Thanksgiving 🦃</title><link>https://ingo-richter.io/post/2021/happy-thanksgiving/</link><pubDate>Thu, 25 Nov 2021 00:00:00 -0800</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/post/2021/happy-thanksgiving/</guid><description>&lt;h2 id="happy-thanksgiving"&gt;Happy Thanksgiving&lt;/h2&gt;
&lt;p&gt;I wish everybody a great day with their families and friends. I hope you can all meet in person and make up for last year.
I&amp;rsquo;m grateful for having a family and friends, a roof over my head, and a fulfilling job.&lt;/p&gt;
&lt;p&gt;Happy Turkey Day, or whatever suits your mood.
Stay safe wherever you are and get some time for yourself.&lt;/p&gt;</description></item><item><title>WFH Day 616</title><link>https://ingo-richter.io/cv19wfh/2021/11/day616/</link><pubDate>Sun, 21 Nov 2021 00:00:00 -0800</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/cv19wfh/2021/11/day616/</guid><description>&lt;h2 id="wfh-day-616"&gt;WFH Day 616&lt;/h2&gt;
&lt;p&gt;I spent four weeks in Germany with my wife and some of my children. Part of the time, I had some PTO and was able to meet with friends and family. The remaining time I was either working or renovating the new place for my wife. Usually working at my desk using my brain, it was a welcome change of pace to work with my hands and do more manual labor tasks. After seven consecutive days of manual work stripping carpet, removing wallpaper, painting, removing old furniture and crazy wood ceiling decorations, I was looking forward to having a small break. My whole body was aching, and every step hurts :-)
I&amp;rsquo;m on my way back to California before returning to Germany in 4 weeks for Christmas break and to finalize the new place. There is always something to do in a new place&amp;hellip;
I always wanted to say that I&amp;rsquo;m grateful to live in California and periodically work remotely from Germany. Glad my employer gives me that freedom. Especially during these challenging times when traveling is not always straightforward.
I&amp;rsquo;m looking forward to the day that my family will travel to California without any restrictions.
I need to remind myself to stay positive and hope for the best as time goes by. That&amp;rsquo;s the only way to keep my sanity and don&amp;rsquo;t lose sight of better times for all of us.&lt;/p&gt;</description></item><item><title>TIL - Organize a Folder of Thousands of Images Into Subfolders</title><link>https://ingo-richter.io/post/2021/organize-a-folder-of-thousands-of-images-into-subfolders/</link><pubDate>Thu, 05 Aug 2021 00:00:00 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/post/2021/organize-a-folder-of-thousands-of-images-into-subfolders/</guid><description>&lt;h2 id="reorg-time"&gt;Reorg Time&lt;/h2&gt;
&lt;p&gt;I use &lt;a href="https://nextcloud.com/" title="Nextcloud"&gt;Nextclouds&lt;/a&gt; image upload feature to backup all photos from my phone. I recently discovered that you could upload pictures from your phone into subfolders in the &lt;code&gt;YEAR/MONTH/DAY/picturefile&lt;/code&gt; format.&lt;/p&gt;
&lt;p&gt;After switching this feature on, I realized that all my previously uploaded 3000+ images and short videos lie flat in the Pictures folder. I needed a solution to organize all existing photos into the same subfolder structure.&lt;/p&gt;</description></item><item><title>WFH Day 438</title><link>https://ingo-richter.io/cv19wfh/2021/05/day438/</link><pubDate>Thu, 27 May 2021 00:00:00 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/cv19wfh/2021/05/day438/</guid><description>&lt;h2 id="wfh-day-438"&gt;WFH Day 438&lt;/h2&gt;
&lt;p&gt;I get it. We are all waiting for the pandemic to be over. Everybody wants their normal pre-pandemic life back. But will this be possible? What exactly do we mean by saying that? What do we consider normal life? Meeting with friends in person? Meeting anybody in person? Being able to leave your face mask at home? Getting rid of all the restrictions is probably the most important thing for many of us (it&amp;rsquo;s only a guess).&lt;/p&gt;</description></item><item><title>WFH Day 421</title><link>https://ingo-richter.io/cv19wfh/2021/05/day421/</link><pubDate>Mon, 10 May 2021 00:00:00 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/cv19wfh/2021/05/day421/</guid><description>&lt;h2 id="wfh-day-421"&gt;WFH Day 421&lt;/h2&gt;
&lt;p&gt;I got up this morning by 6 am, jumped into my running gear, and headed outside by 6:30 am for a short 2 miles run. It was exhausting, and I was slow. But what&amp;rsquo;s more important: I did it anyway! It took me 24m and 28s. Slow as hell, but I need to start somewhere to get better. This is a start.&lt;/p&gt;</description></item><item><title>WFH Day 414</title><link>https://ingo-richter.io/cv19wfh/2021/05/day414/</link><pubDate>Mon, 03 May 2021 00:00:00 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/cv19wfh/2021/05/day414/</guid><description>&lt;h2 id="wfh-day-414"&gt;WFH Day 414&lt;/h2&gt;
&lt;p&gt;Unbelievable, but it&amp;rsquo;s already May of 2021! Time flies like crazy, and we are in month 15 of the pandemic. It looks like the US is speeding up things a lot, and people get vaccinated in large quantities. I got my vaccine three weeks ago. This upcoming Thursday, I&amp;rsquo;ll receive my 2nd shot, and then I should be fully vaccinated two weeks later.
The situation is not so great in Germany. Everything goes so slowly, and they are technically still in lockdown. This lockdown started beginning of November 2020. I was there to visit my family. There were short interruptions of the lockdown for Christmas (what a stupid idea) and again for Easter (why?!?). Germany has this Jojo effect that they wanted to avoid at any cost, but they couldn&amp;rsquo;t agree on a stricter lockdown. And then they didn&amp;rsquo;t have enough vaccines to vaccinate the people on the top of the priority list. Everything moves so fu&amp;hellip;ing slowly there. And now they are facing another crisis: should people who are fully vaccinated get back some or all of their rights? This discussion is so tiring, and it will only drag everything on for longer than necessary, IMHO. I&amp;rsquo;ve never heard anybody here in the US talk discuss this issue.
Out of respect for people who couldn&amp;rsquo;t be vaccinated yet, because they are not eligible yet or because they don&amp;rsquo;t have enough vaccine, all other people that are fully vaccinated or tested negative should not go along with their life? This is the problem of keeping everything restricted and unpleasant until the critical mass has been vaccinated or would be able to get the vaccine. How long will this go on? Throughout the summer? Fall? What&amp;rsquo;s the perspective? What&amp;rsquo;s the reasoning behind delaying it further and further? Is it only about fairness in society? Agree on the lowest common denominator for what is allowed for the whole population? Is this the solution and perspective that everybody in Germany needs right now? I can&amp;rsquo;t disagree more. Anyway, I already said way too much about this ongoing issue.
But I&amp;rsquo;ll travel to Germany beginning of June, and I&amp;rsquo;m afraid that there won&amp;rsquo;t be many things possible for my family and me. We&amp;rsquo;ll see. I can bring up my blood pressure when I arrive there ;-)&lt;/p&gt;</description></item><item><title>WFH Day 365</title><link>https://ingo-richter.io/cv19wfh/2021/03/day365/</link><pubDate>Mon, 15 Mar 2021 00:00:00 -0700</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/cv19wfh/2021/03/day365/</guid><description>&lt;h2 id="wfh-day-365"&gt;WFH Day 365&lt;/h2&gt;
&lt;p&gt;I took some time during the weekend to minimize my belongings. What does that mean? I got rid of some redundant electronics in the Garage. I threw out some old clothes that clogged my closet. I organized my 3D Printer setup and reduced duplicate tools, and put the wanted stuff in some boxes to keep some order. I trashed some boxes with stuff that I didn&amp;rsquo;t even remember made it during the move&amp;hellip; There is so much more to minimize. This is an ongoing process, and I&amp;rsquo;m going to minimize every day a little bit. I&amp;rsquo;m getting step by step closer to the goal of having less stuff in my life. Only what I want and what gives me happiness.&lt;/p&gt;</description></item><item><title>Day353</title><link>https://ingo-richter.io/cv19wfh/2021/03/day353/</link><pubDate>Wed, 03 Mar 2021 00:00:00 -0800</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/cv19wfh/2021/03/day353/</guid><description>&lt;h2 id="wfh-day-353"&gt;WFH Day 353&lt;/h2&gt;
&lt;p&gt;I didn&amp;rsquo;t sleep too bad last night. I got up at around 7:15 am, made myself a coffee, and continued to read my current book &lt;a href="https://www.goodreads.com/book/show/55505679-gerta"&gt;Gerta&lt;/a&gt;. I&amp;rsquo;m a slow reader, and if I don&amp;rsquo;t put time aside for reading, I will never finish any longer book in a finite amount of time. Reading in bed at night is something that doesn&amp;rsquo;t work for me. I usually fall asleep pretty quickly, and then my Kindle, or even worse, my iPad, falls to my face. If I start reading in the morning or during lunch break, I have a real chance to finish a book. I challenged myself to read 20 books this year. I need to increase the pace; otherwise, I won&amp;rsquo;t make it.&lt;/p&gt;</description></item><item><title>Day350</title><link>https://ingo-richter.io/cv19wfh/2021/02/day350/</link><pubDate>Sun, 28 Feb 2021 00:00:00 -0800</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/cv19wfh/2021/02/day350/</guid><description>&lt;h2 id="wfh-day-350"&gt;WFH Day 350&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s already the last day of a perfect month. Perfect in that sense that the month started with a Monday and ended adequately on a Sunday. :-)&lt;/p&gt;
&lt;p&gt;I mentioned in my &lt;a href="https://ingo-richter.io/cv19wfh/2021/02/day329/"&gt;post&lt;/a&gt; that I was about to create my sourdough starter. It was an experiment, and I failed it. I assume that I didn&amp;rsquo;t have the right place in my house with sufficient constant temperature (this house is so badly insulated :-|). It&amp;rsquo;s a wonder that I don&amp;rsquo;t have ice flowers on the windows on some mornings. Anyway, my experiment failed, and the dough didn&amp;rsquo;t rise as needed. I thought that I&amp;rsquo;d be able to make my bread with my starter by the end of February. I will give it another try, and this time I will place the starter in the Bathroom. That seems to be the warmest place in the house. Let&amp;rsquo;s see how this will work out.
Failed experiments are part of the learning process.&lt;/p&gt;</description></item><item><title>Day340</title><link>https://ingo-richter.io/cv19wfh/2021/02/day340/</link><pubDate>Thu, 18 Feb 2021 00:00:00 -0800</pubDate><author>ingo@ingo-richter.io (Ingo Richter)</author><guid>https://ingo-richter.io/cv19wfh/2021/02/day340/</guid><description>&lt;h2 id="wfh-day-340"&gt;WFH Day 340&lt;/h2&gt;
&lt;p&gt;During my lunch break, I took a walk and visited my friends who own a coffee shop in our town. Yesterday, they told me that they would get their vaccination today. I was amazed to hear that since my healthcare provider is sending me weekly updates about the actual vaccination progress and that they vaccinate people over 75. It looks like I still have to wait a bit longer since they don&amp;rsquo;t have enough vaccines for this age group.&lt;/p&gt;</description></item></channel></rss>