<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Minimal Setups</title>
    <link>http://172.16.3.33:1313/</link>
    <description>Recent content on Minimal Setups</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 13 Mar 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="http://172.16.3.33:1313/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Tetris</title>
      <link>http://172.16.3.33:1313/blog/tetris/</link>
      <pubDate>Mon, 27 May 2024 00:00:00 +0000</pubDate>
      <guid>http://172.16.3.33:1313/blog/tetris/</guid>
      <description>&lt;h1 id=&#34;tetris---hardware-and-software&#34;&gt;Tetris - Hardware and Software&lt;/h1&gt;&#xA;&lt;p&gt;&lt;img src=&#34;http://172.16.3.33:1313/IMG_4936.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Update Amplifier (separate input circuitry per PSG, it appears, that a silent PSG has a DC level on its output which is summarized to the AC output of the working PSG, so two input circuits with individual couping capacitor):&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;http://172.16.3.33:1313/IMG_4941.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Update of the power switch of the amplifier (at appears, that the small transistor couldn&amp;rsquo;t deliver enough current):&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;http://172.16.3.33:1313/IMG_4958.jpeg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This Tetris implementation consists of a hardware and a software (running on that hardware).&lt;/p&gt;</description>
    </item>
    <item>
      <title>PL 9823 meets MSP430</title>
      <link>http://172.16.3.33:1313/blog/rgb-driver/</link>
      <pubDate>Sat, 25 May 2024 00:00:00 +0000</pubDate>
      <guid>http://172.16.3.33:1313/blog/rgb-driver/</guid>
      <description>&lt;h2 id=&#34;generating-signals-for-pl-9823-using-a-msp430&#34;&gt;Generating signals for PL 9823 using a MSP430&lt;/h2&gt;&#xA;&lt;h3 id=&#34;debugging&#34;&gt;Debugging&lt;/h3&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;mspdebug rf2500 gdb&#xA;&#xA;msp430-gdb -x firmware.gdb&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Attention: the gdb in the TI toolchain package is broken, use the one from Debian&lt;/p&gt;&#xA;&lt;h3 id=&#34;signals-working-cycler&#34;&gt;Signals Working Cycler&lt;/h3&gt;&#xA;&lt;p&gt;These signals are related to code under tag &lt;code&gt;cycler_works_include_output_stage&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;First octets:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;http://172.16.3.33:1313/cycler_working_first_octets.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Last octets:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;http://172.16.3.33:1313/cycler_working_last_octets.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Schematics and legend for signals:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;http://172.16.3.33:1313/schematics.jpeg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;some-more-explanations&#34;&gt;Some more explanations&lt;/h4&gt;&#xA;&lt;p&gt;Consider above schematics and the screen shot &amp;ldquo;Last octets&amp;rdquo; from the oscilloscope.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;http://172.16.3.33:1313/timing.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Timer TA1 is running in &amp;ldquo;up mode&amp;rdquo; to the value 45 set in compare register &lt;code&gt;TA1CCR0&lt;/code&gt;. The compare registers &lt;code&gt;TA1CCR1&lt;/code&gt; is set to 10, &lt;code&gt;TA1CCR2&lt;/code&gt; is set to 22.&#xA;The output mode of the timer is set to &amp;ldquo;Reset/Set&amp;rdquo;, which means the GPIO associated with &lt;code&gt;TA1CCR1&lt;/code&gt; (P2.1) and &lt;code&gt;TA1CCR2&lt;/code&gt; (P2.4) are set at the overflow and&#xA;restart of the counter and reset when the counter matches the associated compare value.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Stratum 1 NTP Server participating in ntppool.org</title>
      <link>http://172.16.3.33:1313/blog/timeserver2/</link>
      <pubDate>Thu, 13 Mar 2025 00:00:00 +0000</pubDate>
      <guid>http://172.16.3.33:1313/blog/timeserver2/</guid>
      <description></description>
    </item>
    <item>
      <title>Just another Stratum 1 Timeserver</title>
      <link>http://172.16.3.33:1313/blog/timeserver/</link>
      <pubDate>Tue, 11 Feb 2025 00:00:00 +0000</pubDate>
      <guid>http://172.16.3.33:1313/blog/timeserver/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;http://172.16.3.33:1313/IMG_6045.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This server utilizes &lt;code&gt;ntpsec&lt;/code&gt; on Debian on a BeagleBone Black with a UBlox GPS module.&lt;/p&gt;&#xA;&lt;p&gt;It has been joined the NTP pool, the statistics are available at &lt;a href=&#34;https://www.ntppool.org/scores/93.241.86.156&#34;&gt;https://www.ntppool.org/scores/93.241.86.156&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Some additional statistics graphs for the server are available at &lt;a href=&#34;https://numbers.hottis.de/ntpserver&#34;&gt;https://numbers.hottis.de/ntpserver&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;preparation-of-the-beaglebone&#34;&gt;Preparation of the BeagleBone&lt;/h2&gt;&#xA;&lt;p&gt;The GPS module is connected via serial line to the UART of the BB.&lt;/p&gt;&#xA;&lt;p&gt;The additional connection of the PPS output with the PPS device of the Linux running on the BB via a GPIO must be prepared. A device tree overlay must be created and compiled:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Yet Another Debouncing Method</title>
      <link>http://172.16.3.33:1313/blog/debouncing/</link>
      <pubDate>Mon, 30 Apr 2018 00:00:00 +0000</pubDate>
      <guid>http://172.16.3.33:1313/blog/debouncing/</guid>
      <description>&lt;p&gt;You can find several approaches for debouncing mechanical switches on the Internet, some work better, some not so good.&lt;/p&gt;&#xA;&lt;p&gt;One common approach is to ignore events in an ISR when they come too fast:&amp;lt;&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;void count() {&#xA;&#x9;static uint32_t lastEvent = 0;&#xA;&#x9;uint32_t currentEvent = micros();&#xA;&#x9;if (currentEvent &amp;amp;gt; (lastEvent + configBlock.debounce)) {&#xA;&#x9;&#x9;lastEvent = currentEvent;&#xA;&#x9;&#x9;cnt++;&#xA;&#x9;}&#xA;}&#xA;&#xA;void setup() {&#xA;        pinMode(REED_PIN, INPUT_PULLUP);&#xA;        attachInterrupt(REED_PIN, count, FALLING);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This works very good when only the tipping of a switch is relevant.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Three Phase Inverter - Second Service</title>
      <link>http://172.16.3.33:1313/blog/three-phase-inverter-ng/</link>
      <pubDate>Mon, 19 Dec 2016 00:00:00 +0000</pubDate>
      <guid>http://172.16.3.33:1313/blog/three-phase-inverter-ng/</guid>
      <description>&lt;p&gt;I wrote in October about my first try to build a simple three phase inverter, see &lt;a href=&#34;http://172.16.3.33:1313/blog/three-phase-inverter/&#34;&gt;here&lt;/a&gt;. In the first try I used four MSP430 microcontroller, one for the PWM of each phase and one to coordinate the phase shift of the three phases.&lt;/p&gt;&#xA;&lt;p&gt;In this experiment I put everything on one STM32 microcontroller. Here I used the DMA feature to feed data into the PWM counter and I calculated the sine values at start-up time on the microcontroller. Additionally I put in the driver for a CAN interface, however, it is not yet supported in the firmware.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Three Phase Inverter</title>
      <link>http://172.16.3.33:1313/blog/three-phase-inverter/</link>
      <pubDate>Fri, 14 Oct 2016 00:00:00 +0000</pubDate>
      <guid>http://172.16.3.33:1313/blog/three-phase-inverter/</guid>
      <description>&lt;p&gt;Already when I was still in school, about 30 years ago, I was curious to make an inverter using some MOSFETs. I actually was able to build a simple one phase inverter with rectangular signal shape (I used a NE555). Using this thing I drove a transformer to light a blub. However, all of these inverters I built passed by in fire.&lt;/p&gt;&#xA;&lt;p&gt;Now, I tried it again, not longer using MOSFETs but IGBTs with free-wheeling diode. Moreover, I used some microcontrollers and sine values to feed a PWM to get a sine-alike signal shape. And this time I was able with three phases to drive an asynchronous motor.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Theremin</title>
      <link>http://172.16.3.33:1313/blog/theremin/</link>
      <pubDate>Mon, 01 Jul 2013 00:00:00 +0000</pubDate>
      <guid>http://172.16.3.33:1313/blog/theremin/</guid>
      <description>&lt;p&gt;A &lt;a href=&#34;https://en.wikipedia.org/wiki/Theremin&#34;&gt;Theremin&lt;/a&gt; is a rather old electronic music instrument, invented in 1928. It is played by approaching hands to two antennas, without touching them. One antenna is used to manipulate the frequeny of the tone, the other one to manipulate the volume.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;http://172.16.3.33:1313/foto-am-30-06-13-um-20-021.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This is just another Theremin. Only basic structure of the circuit was taken from many other published Theremin circuits.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;http://172.16.3.33:1313/scan_005006-1024x654.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Completely new (or at least not found during my Theremin googling) is the digital zero-calibration.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Children Protection for Postfix-based EMail-Server</title>
      <link>http://172.16.3.33:1313/blog/email-childprot/</link>
      <pubDate>Thu, 27 Jun 2013 00:00:00 +0000</pubDate>
      <guid>http://172.16.3.33:1313/blog/email-childprot/</guid>
      <description>&lt;p&gt;This small tool implements a whitelist on a Postfix mail-server. It prevents certain recipient addresses (your kids ones) from&#xA;receiving mail from any not whitelisted address. Any mail from not whitelisted senders is redirected to a delegate (a parent).&lt;/p&gt;&#xA;&lt;p&gt;The code for this tool can is here: &lt;a href=&#34;https://gitea.hottis.de/wn/childprot&#34;&gt;https://gitea.hottis.de/wn/childprot&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Configure the tool by adding this line into the &lt;code&gt;master.cf&lt;/code&gt; of the Postfix installation:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;childprot unix -   n    n    -    25    spawn user=mail argv=/opt/sbin/ChildProt&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;and this one to the &lt;code&gt;main.cf&lt;/code&gt;:&lt;/p&gt;</description>
    </item>
    <item>
      <title></title>
      <link>http://172.16.3.33:1313/keys/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>http://172.16.3.33:1313/keys/</guid>
      <description>&lt;h2 id=&#34;my-public-gpg-and-ssh-keys&#34;&gt;My Public GPG and SSH Keys&lt;/h2&gt;&#xA;&lt;h3 id=&#34;ssh-keys&#34;&gt;SSH Keys&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://172.16.3.33:1313/mysshkeys.txt&#34;&gt;My SSH Keys&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;gpg-keys&#34;&gt;GPG Keys&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://172.16.3.33:1313/2306AA47A6D7A534B1B7446C836E9E1192A6B132.txt&#34;&gt;&lt;code&gt;2306AA47A6D7A534B1B7446C836E9E1192A6B132&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://172.16.3.33:1313/082071E0415E0A2D87A2385B5159E88B93B67538.txt&#34;&gt;&lt;code&gt;082071E0415E0A2D87A2385B5159E88B93B67538&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://172.16.3.33:1313/7B5C0BB6AFCADDC8E3435746B76E53073EE19643.txt&#34;&gt;&lt;code&gt;7B5C0BB6AFCADDC8E3435746B76E53073EE19643&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://172.16.3.33:1313/90E1D1E935FC6AB94444B15B18FDFA577A8871AD.txt&#34;&gt;&lt;code&gt;90E1D1E935FC6AB94444B15B18FDFA577A8871AD&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://172.16.3.33:1313/BDB9F424842252FB4D8EEDDCE49AF3B9EF6DD469.txt&#34;&gt;&lt;code&gt;BDB9F424842252FB4D8EEDDCE49AF3B9EF6DD469&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>About</title>
      <link>http://172.16.3.33:1313/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>http://172.16.3.33:1313/about/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;mailto:woho@hottis.de&#34;&gt;Wolfgang Hottgenroth&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Colors in Minicom</title>
      <link>http://172.16.3.33:1313/howtos/colors-in-minicom/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>http://172.16.3.33:1313/howtos/colors-in-minicom/</guid>
      <description>&lt;p&gt;To start &lt;code&gt;minicom&lt;/code&gt; in color mode use&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;minicom -c on&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Switch terminal emulation to ANSI.&lt;/p&gt;&#xA;&lt;p&gt;Use escape sequences to actually change the color of text as described for instance here&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.lihaoyi.com/post/BuildyourownCommandLinewithANSIescapecodes.html&#34;&gt;https://www.lihaoyi.com/post/BuildyourownCommandLinewithANSIescapecodes.html&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The base sequence is &lt;code&gt;\1b[Xm&lt;/code&gt; where X is a number as described below.&lt;/p&gt;&#xA;&lt;p&gt;To get the colors in bright style, use the sequence &lt;code&gt;\x1b[X;1m&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Number&lt;/th&gt;&#xA;          &lt;th&gt;Color&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;0&lt;/td&gt;&#xA;          &lt;td&gt;reset&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;1&lt;/td&gt;&#xA;          &lt;td&gt;highlight&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;7&lt;/td&gt;&#xA;          &lt;td&gt;inverse&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;30&lt;/td&gt;&#xA;          &lt;td&gt;black&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;31&lt;/td&gt;&#xA;          &lt;td&gt;red&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;32&lt;/td&gt;&#xA;          &lt;td&gt;green&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;33&lt;/td&gt;&#xA;          &lt;td&gt;yellow&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;34&lt;/td&gt;&#xA;          &lt;td&gt;blue&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;35&lt;/td&gt;&#xA;          &lt;td&gt;magenta&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;36&lt;/td&gt;&#xA;          &lt;td&gt;cyan&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;37&lt;/td&gt;&#xA;          &lt;td&gt;white&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;</description>
    </item>
    <item>
      <title>Engel des Herrn</title>
      <link>http://172.16.3.33:1313/howtos/engel-des-herrn/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>http://172.16.3.33:1313/howtos/engel-des-herrn/</guid>
      <description>&lt;p&gt;Der Engel des Herrn brachte Maria die Botschaft, und sie empfing vom Heiligen Geist.&#xA;Gegrüßet seist du, Maria …&lt;/p&gt;&#xA;&lt;p&gt;Maria sprach: Siehe, ich bin die Magd des Herrn; mir geschehe nach deinem Wort.&#xA;Gegrüßet seist du, Maria …&lt;/p&gt;&#xA;&lt;p&gt;Und das Wort ist Fleisch geworden und hat unter uns gewohnt.&#xA;Gegrüßet seist du, Maria …&lt;/p&gt;&#xA;&lt;p&gt;Bitte für uns, heilige Gottesmutter (heilige Gottesgebärerin), (auf) dass wir würdig werden der Verheißungen Christi.&lt;/p&gt;&#xA;&lt;p&gt;Lasset uns beten. Allmächtiger Gott, gieße deine Gnade in unsere Herzen ein. Durch die Botschaft des Engels haben wir die Menschwerdung Christi, deines Sohnes, erkannt. Führe uns durch sein Leiden und Kreuz zur Herrlichkeit der Auferstehung. Darum bitten wir durch Christus, unsern Herrn. Amen.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Execute occ in Nextcloud pod</title>
      <link>http://172.16.3.33:1313/howtos/occ-in-nextcloud-pod/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>http://172.16.3.33:1313/howtos/occ-in-nextcloud-pod/</guid>
      <description>&lt;p&gt;First, look up the name of the pod using&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;kubectl get pods -n nextcloud&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then, get into the pod using&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;kubectl exec --stdin --tty NAME_OF_THE_POD -c nextcloud -n nextcloud -- sh&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Finally, within the pod&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;su -s /bin/sh www-data -c &amp;#34;php occ --help&amp;#34;&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>Gitlab Backup and Restore</title>
      <link>http://172.16.3.33:1313/howtos/gitlab-backup/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>http://172.16.3.33:1313/howtos/gitlab-backup/</guid>
      <description>&lt;h2 id=&#34;backup&#34;&gt;Backup&lt;/h2&gt;&#xA;&lt;p&gt;Find the backup directory:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;grep backup_path /etc/gitlab/gitlab.rb&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Issue backup:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo gitlab-backup create&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Transfer backup using scp to destination machine.&lt;/p&gt;&#xA;&lt;p&gt;Backup configuration and secrets:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudp cp /etc/gitlab/gitlab-secrets.json /backuppath/&#xA;sudo cp /etc/gitlab/gitlab.rb /backuppath/&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;restore&#34;&gt;Restore&lt;/h2&gt;&#xA;&lt;p&gt;See also here: &lt;a href=&#34;https://docs.gitlab.com/ee/administration/backup_restore/restore_gitlab.html&#34;&gt;https://docs.gitlab.com/ee/administration/backup_restore/restore_gitlab.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;DO NOT OVERWRITE THE CONFIGURATION ON THE DESTINATION MACHINE. COMPARE IT AND CONSIDER AND EVALUATE EACH DIFFERENCE&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Stop processes of GitLab connecting to the database:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;gitlab-ctl stop puma&#xA;gitlab-ctl stop sidekiq&#xA;# check&#xA;gitlab-ctl status&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Do not stop the whole system since the restore tool has to connect to the database which would also stop in that case.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Gitlab Change BaseURL in Database</title>
      <link>http://172.16.3.33:1313/howtos/gitlab-change-baseurl/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>http://172.16.3.33:1313/howtos/gitlab-change-baseurl/</guid>
      <description>&lt;h2 id=&#34;change-url&#34;&gt;Change URL&lt;/h2&gt;&#xA;&lt;p&gt;After a migration changing the base url in the configuration is not enough. It must also be changed in the database.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Adjust the variable &lt;code&gt;external_url&lt;/code&gt; in the file &lt;code&gt;/etc/gitlab/gitlab.rb&lt;/code&gt; and run &lt;code&gt;gitlab-ctl reconfigure&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Adjust the canonical URL in the database:&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;gitlab-rails console&#xA;ApplicationSetting.current.update!(home_page_url: &amp;#39;https://neue-url.example.com&amp;#39;)&#xA;ApplicationSetting.current.update!(after_sign_out_path: &amp;#39;https://neue-url.example.com&amp;#39;)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;Reading out a value from the ApplicationSetting via the gitlab-rails console is done using&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ApplicationSetting.current.home_page_url&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;Clear the internal cache:&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;gitlab-rake cache:clear&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Gitlab Upgrades</title>
      <link>http://172.16.3.33:1313/howtos/gitlab-upgrades/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>http://172.16.3.33:1313/howtos/gitlab-upgrades/</guid>
      <description>&lt;h2 id=&#34;upgrade-of-a-gitlab-instance&#34;&gt;Upgrade of a GitLab instance&lt;/h2&gt;&#xA;&lt;p&gt;When upgrading a Gitlab instance, strictly follow the defined upgrade path. Consider to snapshot the filesystem if possible after each step.&lt;/p&gt;&#xA;&lt;p&gt;Additional, after each step wait until all background migrations are completed before performing the next upgrade step.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://docs.gitlab.com/ee/update/index.html#upgrade-paths&#34;&gt;Upgrade Paths&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://docs.gitlab.com/ee/update/package/#upgrade-to-a-specific-version-using-the-official-repositories&#34;&gt;Upgrading to a specific version&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;To find the versions of a specific package in the Debian apt cache use&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;    apt-cache madison gitlab-ce&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;To upgrade to a specific version use&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to add a CA certificate in Debian</title>
      <link>http://172.16.3.33:1313/howtos/ca-certificate-in-debian/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>http://172.16.3.33:1313/howtos/ca-certificate-in-debian/</guid>
      <description>&lt;p&gt;Copy CA file with extension &lt;code&gt;crt&lt;/code&gt; into &lt;code&gt;/usr/local/share/ca-certificates/&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Call &lt;code&gt;update-ca-certificates&lt;/code&gt; as root.&lt;/p&gt;</description>
    </item>
    <item>
      <title>iSCSI on Linux</title>
      <link>http://172.16.3.33:1313/howtos/iscsi-on-linux/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>http://172.16.3.33:1313/howtos/iscsi-on-linux/</guid>
      <description>&lt;h2 id=&#34;preparation&#34;&gt;Preparation&lt;/h2&gt;&#xA;&lt;p&gt;Install &lt;code&gt;open-iscsi&lt;/code&gt;, at least on Debian systems.&lt;/p&gt;&#xA;&lt;h2 id=&#34;use-an-iscsi-target-from-linux&#34;&gt;Use an iSCSI target from Linux&lt;/h2&gt;&#xA;&lt;p&gt;In our setup a Synology NAS at 172.16.200.19 provides the targets.&lt;/p&gt;&#xA;&lt;p&gt;First, run&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;   iscsiadm -m discovery -t sendtargets -p 172.16.200.19&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;to discover all provided targets.&lt;/p&gt;&#xA;&lt;p&gt;You get something like this&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;   172.16.200.19:3260,1 iqn.2000-01.com.synology:nas.Target-GitLab.db1c0541e7&#xA;   [fe80::211:32ff:febe:da31]:3260,1 iqn.2000-01.com.synology:nas.Target-GitLab.db1c0541e7&#xA;   172.16.200.19:3260,1 iqn.2000-01.com.synology:nas.Target-Bitwarden.db1c0541e7&#xA;   [fe80::211:32ff:febe:da31]:3260,1 iqn.2000-01.com.synology:nas.Target-Bitwarden.db1c0541e7&#xA;   172.16.200.19:3260,1 iqn.2000-01.com.synology:nas.Target-Nextcloud.db1c0541e7&#xA;   [fe80::211:32ff:febe:da31]:3260,1 iqn.2000-01.com.synology:nas.Target-Nextcloud.db1c0541e7&#xA;   172.16.200.19:3260,1 iqn.2000-01.com.synology:nas.Target-MariaDB.db1c0541e7&#xA;   [fe80::211:32ff:febe:da31]:3260,1 iqn.2000-01.com.synology:nas.Target-MariaDB.db1c0541e7&#xA;   172.16.200.19:3260,1 iqn.2000-01.com.synology:nas.Target-Backup.db1c0541e7&#xA;   [fe80::211:32ff:febe:da31]:3260,1 iqn.2000-01.com.synology:nas.Target-Backup.db1c0541e7&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Now, connect to the target using&lt;/p&gt;</description>
    </item>
    <item>
      <title>Magnifikat</title>
      <link>http://172.16.3.33:1313/howtos/magnifikat/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>http://172.16.3.33:1313/howtos/magnifikat/</guid>
      <description>&lt;p&gt;Bibellese zum 15.12.2013&lt;/p&gt;&#xA;&lt;p&gt;1,46 Und Maria sprach:&#xA;Meine Seele erhebt den Herrn,&lt;/p&gt;&#xA;&lt;p&gt;47 und mein Geist freut sich Gottes, meines Heilandes;&lt;/p&gt;&#xA;&lt;p&gt;48 denn er hat die Niedrigkeit seiner Magd angesehen.&#xA;Siehe, von nun an werden mich selig preisen alle Kindeskinder.&lt;/p&gt;&#xA;&lt;p&gt;49 Denn er hat große Dinge an mir getan,&#xA;der da mächtig ist und dessen Name heilig ist.&lt;/p&gt;&#xA;&lt;p&gt;50 Und seine Barmherzigkeit währt von Geschlecht zu Geschlecht&#xA;bei denen, die ihn fürchten.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Neovim Setup</title>
      <link>http://172.16.3.33:1313/howtos/neovim/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>http://172.16.3.33:1313/howtos/neovim/</guid>
      <description>&lt;p&gt;Lots of information on nvim can be found for instance here:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://programmingpercy.tech/blog/learn-how-to-use-neovim-as-ide/&#34;&gt;https://programmingpercy.tech/blog/learn-how-to-use-neovim-as-ide/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/hrsh7th/&#34;&gt;https://github.com/hrsh7th/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/wbthomason/packer.nvim&#34;&gt;https://github.com/wbthomason/packer.nvim&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://docs.rockylinux.org/books/nvchad/nvchad_ui/nvimtree/&#34;&gt;https://docs.rockylinux.org/books/nvchad/nvchad_ui/nvimtree/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;installation-of-neovim&#34;&gt;Installation of Neovim&lt;/h2&gt;&#xA;&lt;p&gt;On Debian install neovim from the sources, the packages are mostly a bit aged.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git clone https://github.com/neovim/neovim&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt install ninja-build gettext cmake unzip curl&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;make CMAKE_BUILD_TYPE&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;Release&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo make install&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;On Windows install from binary or using installer, on MacOS use &lt;code&gt;brew&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Debian packages can be found here: &lt;a href=&#34;https://github.com/neovim/neovim-releases/releases&#34;&gt;https://github.com/neovim/neovim-releases/releases&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;configuration&#34;&gt;Configuration&lt;/h2&gt;&#xA;&lt;p&gt;Clone the packer repository:&lt;/p&gt;</description>
    </item>
    <item>
      <title>PuTTY and OPENGPG hardware keys</title>
      <link>http://172.16.3.33:1313/howtos/putty-and-hardware-keys/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>http://172.16.3.33:1313/howtos/putty-and-hardware-keys/</guid>
      <description>&lt;ul&gt;&#xA;&lt;li&gt;install gpg4win installed&lt;/li&gt;&#xA;&lt;li&gt;create or edit the file &lt;code&gt;gpg-agent.conf&lt;/code&gt;, usually in &lt;code&gt;c:\Users\XXX\AppData\Roaming\gnupg\&lt;/code&gt;:&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;enable-putty-support&#xA;enable-ssh-support&#xA;use-standard-socket&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Quotes</title>
      <link>http://172.16.3.33:1313/articles/quotes/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>http://172.16.3.33:1313/articles/quotes/</guid>
      <description>&lt;div style=&#34;margin: 20px 0; font-family: inherit; color: inherit;&#34;&gt;&#xA;  &#xA;  &lt;blockquote style=&#34;margin: 0; font-size: inherit; color: inherit;&#34;&gt;&#xA;    &#xA;Und dann in deinem Arm, alles gut, alles andere egal&#xA;&#xA;  &lt;/blockquote&gt;&#xA;&#xA;  &#xA;  &lt;div style=&#34;display: flex; justify-content: space-between; font-size: 0.9em; color: gray; margin-top: 5px;&#34;&gt;&#xA;    &lt;span&gt;2025-01-22&lt;/span&gt;&#xA;    &lt;span&gt;Alles Du, Dota Kehr&lt;/span&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&lt;div style=&#34;margin: 20px 0; font-family: inherit; color: inherit;&#34;&gt;&#xA;  &#xA;  &lt;blockquote style=&#34;margin: 0; font-size: inherit; color: inherit;&#34;&gt;&#xA;    &#xA;Es ist immer was los, aber es passiert nichts.&#xA;&#xA;  &lt;/blockquote&gt;&#xA;&#xA;  &#xA;  &lt;div style=&#34;display: flex; justify-content: space-between; font-size: 0.9em; color: gray; margin-top: 5px;&#34;&gt;&#xA;    &lt;span&gt;2025-01-14&lt;/span&gt;&#xA;    &lt;span&gt;Steinhammer, Thadeusz&lt;/span&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&lt;div style=&#34;margin: 20px 0; font-family: inherit; color: inherit;&#34;&gt;&#xA;  &#xA;  &lt;blockquote style=&#34;margin: 0; font-size: inherit; color: inherit;&#34;&gt;&#xA;    &#xA;Sie steht gut da. Aber die Seele setzt sich nicht dazu.&#xA;&#xA;  &lt;/blockquote&gt;&#xA;&#xA;  &#xA;  &lt;div style=&#34;display: flex; justify-content: space-between; font-size: 0.9em; color: gray; margin-top: 5px;&#34;&gt;&#xA;    &lt;span&gt;2025-01-14&lt;/span&gt;&#xA;    &lt;span&gt;Samuel Overbeck in Steinhammer, Thadeusz, S. 68, 71&lt;/span&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Resize HDD on running system</title>
      <link>http://172.16.3.33:1313/howtos/resize-hdd-on-running-system/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>http://172.16.3.33:1313/howtos/resize-hdd-on-running-system/</guid>
      <description>&lt;ul&gt;&#xA;&lt;li&gt;Resize target on VMWare or on Synology or where ever it is provided&lt;/li&gt;&#xA;&lt;li&gt;Stop services using the disk&lt;/li&gt;&#xA;&lt;li&gt;Unmount the disk&lt;/li&gt;&#xA;&lt;li&gt;Run &lt;code&gt;e2fsck -f&lt;/code&gt; on the disk&lt;/li&gt;&#xA;&lt;li&gt;Rescan disks using &lt;code&gt;echo 1&amp;gt;/sys/class/block/sdx/device/rescan&lt;/code&gt; (replace &lt;code&gt;sdx&lt;/code&gt; by actual disk device)&lt;/li&gt;&#xA;&lt;li&gt;Extend partition using &lt;code&gt;resize&lt;/code&gt; in &lt;code&gt;cfdisk&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Extend filesystem using &lt;code&gt;resize2fs&lt;/code&gt; on extended partition&lt;/li&gt;&#xA;&lt;li&gt;Mount the partition&lt;/li&gt;&#xA;&lt;li&gt;Start services&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>snmpwalk with numeric and text output of oid</title>
      <link>http://172.16.3.33:1313/howtos/snmpwalk-with-numeric-and-text-output/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>http://172.16.3.33:1313/howtos/snmpwalk-with-numeric-and-text-output/</guid>
      <description>&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;snmpwalk -v 2c -c $COMMUNITY -On $HOST $BASE_OID | while read -r line; do &#xA;  oid=`echo $line | awk &amp;#39;{print $1}&amp;#39;`&#xA;  textoid=`snmptranslate $oid`&#xA;  value=`echo $line | cut -d &amp;#39; &amp;#39; -f 3-`&#xA;  echo &amp;#34;$oid ($textoid): $value&amp;#34; &#xA;done&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>Solution for Prince of Persia 1</title>
      <link>http://172.16.3.33:1313/howtos/prince-of-persia-1/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>http://172.16.3.33:1313/howtos/prince-of-persia-1/</guid>
      <description>&lt;h1 id=&#34;lösung-prince-of-persia-1&#34;&gt;Lösung Prince of Persia 1&lt;/h1&gt;&#xA;&lt;h2 id=&#34;komplettlösung-zu-prince-of-persia-1&#34;&gt;Komplettlösung zu &amp;ldquo;Prince of Persia 1&amp;rdquo;&lt;/h2&gt;&#xA;&lt;p&gt;Zuallererst mal zur Joysticksteuerung: Wenn Ihr beim&lt;br&gt;&#xA;Springen den Feuerknopf gedrückt haltet, macht der Prince&lt;br&gt;&#xA;einen &amp;lsquo;Klammersprung&amp;rsquo;, d.h., bei grossen Entfernungen&lt;br&gt;&#xA;springt er an die gegenüberliegende Wand und klammert sich&lt;br&gt;&#xA;dort fest. Mit dem Joystick dann einfach nach oben drücken&lt;br&gt;&#xA;und schon ist&amp;rsquo;s geschafft.&lt;/p&gt;&#xA;&lt;p&gt;Ausserdem kann man teilweise Decken aufstossen (VORSICHT,&lt;br&gt;&#xA;wenn die Platten dann runterfallen!); aber dies ist für das&lt;br&gt;&#xA;Spiel nur dann nötig, wenn man in einer Sackgasse steckt&lt;br&gt;&#xA;und der Weg über die Decke weitergeht. Ansonsten sind dort&lt;br&gt;&#xA;meist &amp;rsquo;nur&amp;rsquo; Potions versteckt. ACHTUNG: Um das Spiel&lt;br&gt;&#xA;zeitlich zu schaffen empfiehlt es sich, (wenn nicht&lt;br&gt;&#xA;wirklich nötig) die Deckengänge NICHT zu benutzen. Das&lt;br&gt;&#xA;Spiel an sich verfügt über 13 Level (12 Level + den&lt;br&gt;&#xA;Abschlußlevel mit Kampf gegen Jaffar). Wenn man alle Level&lt;br&gt;&#xA;kennt und perfekt spielt (nie kaputt geht) braucht man&lt;br&gt;&#xA;trotzdem ca. 45-50 min. Um das Spiel also zu schaffen, muß&lt;br&gt;&#xA;man in allen Leveln den Weg kennen. Da dies natürlich nicht&lt;br&gt;&#xA;beim erstenmal klappt ist klar; also immer ein bis zwei&lt;br&gt;&#xA;Level weiterarbeiten und gut auskundschaften.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
