<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Ünö dî Nöi</title>
    <link>https://dottork.hopto.org/</link>
    <description>Nobody Knows</description>
    <pubDate>Wed, 04 Nov 2026 13:58:24 +0100</pubDate>
    <item>
      <title>Setting internal DNS server with piHole and Tailscale</title>
      <link>https://dottork.hopto.org/setting-internal-dns-server-with-pihole-and-tailscale</link>
      <description>&lt;![CDATA[Make Pi-hole accept DNS requests coming from Tailscale&#xA;&#xA;In Pi-hole go to:&#xA;&#xA;Settings → DNS → Interface settings&#xA;&#xA;Pi-hole normally restricts which interfaces or source networks it answers. Tailscale traffic arrives through the tailscale0 interface, so the default local-only mode can reject it. Pi-hole Documentation&#xA;&#xA;For a first test, select:&#xA;&#xA;Permit all origins&#xA;&#xA;or in recent Pi-hole versions:&#xA;&#xA;Then:&#xA;&#xA;This setting is safe only if port 53 is not exposed to the public Internet. Your router should not forward TCP/UDP 53 to the Raspberry Pi. Pi-hole itself warns that ALL can otherwise create an open DNS resolver. Pi-hole Documentation&#xA;&#xA;A more restrictive configuration can be done later.&#xA;3. Verify Pi-hole is listening on DNS port 53&#xA;On the Pi:&#xA;&#xA;You should see Pi-hole listening on port 53, for example:&#xA;udp   UNCONN 0 0 0.0.0.0:53&#xA;tcp   LISTEN 0 32 0.0.0.0:53&#xA;&#xA;Then find your Tailscale IP again:&#xA;&#xA;Suppose it is:&#xA;100.88.12.34&#xA;&#xA;4. Configure Tailscale DNS&#xA;Open:&#xA;&#xA;Tailscale Admin Console → DNS&#xA;&#xA;Under Nameservers:&#xA;&#xA;Add nameserver → Custom&#xA;&#xA;Enter:&#xA;100.88.12.34&#xA;&#xA;Then enable:&#xA;&#xA;Override DNS servers&#xA;&#xA;This is important. It tells tailnet clients to use Pi-hole instead of whatever DNS their current Wi-Fi/mobile network supplies. Tailscale&#xA;&#xA;So your Tailscale DNS page should effectively contain:&#xA;Nameservers&#xA;&#xA;100.88.12.34    Global nameserver&#xA;&#xA;Override DNS servers: ON&#xA;&#xA;You can leave MagicDNS enabled. MagicDNS and your Pi-hole nameserver can coexist; MagicDNS handles tailnet machine names while your configured nameserver handles normal DNS lookups. Tailscale&#xA;5. Check the iPhone Tailscale setting&#xA;On the iPhone:&#xA;&#xA;Tailscale → Settings&#xA;&#xA;Make sure:&#xA;&#xA;Use Tailscale DNS settings is enabled.&#xA;&#xA;The exact wording can vary slightly by Tailscale version.&#xA;&#xA;Do not manually configure the iPhone Wi-Fi DNS to 100.88.12.34.&#xA;&#xA;Let Tailscale install its VPN DNS configuration. This is what makes it work on:&#xA;Home Wi-Fi&#xA;Other Wi-Fi&#xA;4G / 5G&#xA;hotspots&#xA;&#xA;Tailscale explicitly requires clients to accept the tailnet DNS configuration for the DNS settings configured in the admin console to take effect. Tailscale&#xA;6. Test from the iPhone&#xA;Disconnect the iPhone from your home Wi-Fi and use 4G/5G. Keep Tailscale connected.&#xA;&#xA;Open Safari and visit several websites.&#xA;&#xA;On the Raspberry Pi run:&#xA;&#xA;Then browse on the iPhone.&#xA;&#xA;You should see packets similar to:&#xA;100.70.23.14.54321   100.88.12.34.53&#xA;&#xA;If you see them, Tailscale routing is working and any remaining problem is Pi-hole configuration.&#xA;&#xA;If you see nothing, the problem is on the Tailscale/iPhone DNS side.&#xA;&#xA;Recommended final configuration&#xA;                         Internet&#xA;                            │&#xA;                            │&#xA;                      Upstream DNS&#xA;                   e.g. Cloudflare&#xA;                            │&#xA;                            ▼&#xA;                    ┌──────────────┐&#xA;                    │    Pi-hole   │&#xA;                    │ Raspberry Pi │&#xA;                    │ 100.x.x.x    │&#xA;                    └──────▲───────┘&#xA;                           │ DNS :53&#xA;                     Tailscale tunnel&#xA;                           │&#xA;               ┌───────────┴───────────┐&#xA;               │                       │&#xA;            iPhone                  Laptop&#xA;          Tailscale                Tailscale&#xA;&#xA;In Tailscale:&#xA;MagicDNS             ON&#xA;Global nameserver    Pi-hole 100.x.x.x&#xA;Override DNS         ON&#xA;&#xA;In Pi-hole initially:&#xA;DNS listening mode   ALL]]&gt;</description>
      <content:encoded><![CDATA[<h3 id="make-pi-hole-accept-dns-requests-coming-from-tailscale">Make Pi-hole accept DNS requests coming from Tailscale</h3>

<p><strong>In Pi-hole go to:</strong></p>

<p><strong>Settings → DNS → Interface settings</strong></p>

<p>Pi-hole normally restricts which interfaces or source networks it answers. Tailscale traffic arrives through the tailscale0 interface, so the default local-only mode can reject it. Pi-hole Documentation</p>

<p>For a first test, select:</p>

<p><strong><em>Permit all origins</em></strong></p>

<p>or in recent Pi-hole versions:
<code>sudo pihole-FTL --config dns.listeningMode &#34;ALL&#34;</code></p>

<p>Then:
<code>sudo systemctl restart pihole-FTL</code></p>

<p>This setting is safe only if port 53 is not exposed to the public Internet. Your router should not forward TCP/UDP 53 to the Raspberry Pi. Pi-hole itself warns that ALL can otherwise create an open DNS resolver. Pi-hole Documentation</p>

<p>A more restrictive configuration can be done later.</p>

<h3 id="3-verify-pi-hole-is-listening-on-dns-port-53">3. Verify Pi-hole is listening on DNS port 53</h3>

<p>On the Pi:
<code>sudo ss -lunpt | grep &#39;:53&#39;</code></p>

<p>You should see Pi-hole listening on port 53, for example:
udp   UNCONN 0 0 0.0.0.0:53
tcp   LISTEN 0 32 0.0.0.0:53</p>

<p>Then find your Tailscale IP again:
<code>tailscale ip -4</code></p>

<p>Suppose it is:
100.88.12.34</p>

<h3 id="4-configure-tailscale-dns">4. Configure Tailscale DNS</h3>

<p>Open:</p>

<p><strong><em>Tailscale Admin Console → DNS</em></strong></p>

<p>Under Nameservers:</p>

<p><strong><em>Add nameserver → Custom</em></strong></p>

<p>Enter:
100.88.12.34</p>

<p>Then enable:</p>

<p><strong><em>Override DNS servers</em></strong></p>

<p>This is important. It tells tailnet clients to use Pi-hole instead of whatever DNS their current Wi-Fi/mobile network supplies. Tailscale</p>

<p>So your Tailscale DNS page should effectively contain:
Nameservers</p>

<p>100.88.12.34    Global nameserver</p>

<p><strong><em>Override DNS servers: ON</em></strong></p>

<p>You can leave MagicDNS enabled. MagicDNS and your Pi-hole nameserver can coexist; MagicDNS handles tailnet machine names while your configured nameserver handles normal DNS lookups. Tailscale</p>

<h3 id="5-check-the-iphone-tailscale-setting">5. Check the iPhone Tailscale setting</h3>

<p>On the iPhone:</p>

<p><strong><em>Tailscale → Settings</em></strong></p>

<p>Make sure:</p>

<p><strong><em>Use Tailscale DNS settings is enabled.</em></strong></p>

<p>The exact wording can vary slightly by Tailscale version.</p>

<p>Do not manually configure the iPhone Wi-Fi DNS to 100.88.12.34.</p>

<p>Let Tailscale install its VPN DNS configuration. This is what makes it work on:
Home Wi-Fi
Other Wi-Fi
4G / 5G
hotspots</p>

<p>Tailscale explicitly requires clients to accept the tailnet DNS configuration for the DNS settings configured in the admin console to take effect. Tailscale</p>

<h3 id="6-test-from-the-iphone">6. Test from the iPhone</h3>

<p>Disconnect the iPhone from your home Wi-Fi and use 4G/5G. Keep Tailscale connected.</p>

<p>Open Safari and visit several websites.</p>

<p>On the Raspberry Pi run:
<code>sudo tcpdump -ni tailscale0 port 53</code></p>

<p>Then browse on the iPhone.</p>

<p>You should see packets similar to:
100.70.23.14.54321 &gt; 100.88.12.34.53</p>

<p>If you see them, Tailscale routing is working and any remaining problem is Pi-hole configuration.</p>

<p>If you see nothing, the problem is on the Tailscale/iPhone DNS side.</p>

<h3 id="recommended-final-configuration">Recommended final configuration</h3>

<p>                         Internet
                            │
                            │
                      Upstream DNS
                   e.g. Cloudflare
                            │
                            ▼
                    ┌──────────────┐
                    │    Pi-hole   │
                    │ Raspberry Pi │
                    │ 100.x.x.x    │
                    └──────▲───────┘
                           │ DNS :53
                     Tailscale tunnel
                           │
               ┌───────────┴───────────┐
               │                       │
            iPhone                  Laptop
          Tailscale                Tailscale</p>

<p>In Tailscale:
MagicDNS             ON
Global nameserver    Pi-hole 100.x.x.x
Override DNS         ON</p>

<p>In Pi-hole initially:
DNS listening mode   ALL</p>
]]></content:encoded>
      <guid>https://dottork.hopto.org/setting-internal-dns-server-with-pihole-and-tailscale</guid>
      <pubDate>Sun, 25 Oct 2026 11:52:33 +0100</pubDate>
    </item>
    <item>
      <title>vggd2abqpm</title>
      <link>https://dottork.hopto.org/how-to-use-ssh-key</link>
      <description>&lt;![CDATA[---&#xA;How to use SSH Key&#xA;&#xA;To create a list of servers with easy access, create or edit &#xA;&#xA;Host dev-box&#xA;    HostName 192.168.1.50&#xA;    User admin&#xA;    Port 22 &#xA;To connect: Just type &#xA;To create and use an SSH Key&#xA;&#xA;Generate your key: Copy the key to your server (you&#39;ll type the password one last time here): &#xA;---]]&gt;</description>
      <content:encoded><![CDATA[<hr>

<h1 id="how-to-use-ssh-key">How to use SSH Key</h1>

<h3 id="to-create-a-list-of-servers-with-easy-access-create-or-edit">To create a list of servers with easy access, create or edit</h3>

<pre><code class="language-go">Host dev-box
    HostName 192.168.1.50
    User admin
    Port 22 
</code></pre>

<p>To connect: Just type <code>go ssh dev-box</code></p>

<h3 id="to-create-and-use-an-ssh-key">To create and use an SSH Key</h3>

<p>Generate your key: <code>go ssh-keygen</code>
Copy the key to your server (you&#39;ll type the password one last time here): <code>go ssh-copy-id dev-box</code></p>

<hr>
]]></content:encoded>
      <guid>https://dottork.hopto.org/how-to-use-ssh-key</guid>
      <pubDate>Sat, 24 Jan 2026 12:00:07 +0100</pubDate>
    </item>
    <item>
      <title>2pndjswu6e</title>
      <link>https://dottork.hopto.org/how-to-fix-broken-wifi-after-a-kernel-update-on-macbook-pro-late-2012</link>
      <description>&lt;![CDATA[---&#xA;How to fix broken WiFi after a kernel update on MacBook Pro late 2012&#xA;&#xA;Install the proprietary Broadcom STA driver&#xA;sudo apt update&#xA;sudo apt install broadcom-sta-dkms&#xA;Confirm the correct kernel headers and build tools&#xA;sudo apt install linux-headers-$(uname -r) build-essential dkms&#xA;Force a DKMS rebuild in case the kernel upgrade broke it&#xA;sudo dkms autoinstall&#xA;Load the correct driver&#xA;sudo modprobe wl&#xA;Check:&#xA;lsmod | grep wl&#xA;lsmod | grep -E &#39;wl|brcm|bcma&#39;&#xA;dmesg | grep -i wl&#xA;---&#xA;---]]&gt;</description>
      <content:encoded><![CDATA[<hr>

<h1 id="how-to-fix-broken-wifi-after-a-kernel-update-on-macbook-pro-late-2012">How to fix broken WiFi after a kernel update on MacBook Pro late 2012</h1>

<h3 id="install-the-proprietary-broadcom-sta-driver">Install the proprietary Broadcom STA driver</h3>

<pre><code class="language-go">sudo apt update
sudo apt install broadcom-sta-dkms
</code></pre>

<h3 id="confirm-the-correct-kernel-headers-and-build-tools">Confirm the correct kernel headers and build tools</h3>

<pre><code class="language-go">sudo apt install linux-headers-$(uname -r) build-essential dkms
</code></pre>

<h3 id="force-a-dkms-rebuild-in-case-the-kernel-upgrade-broke-it">Force a DKMS rebuild in case the kernel upgrade broke it</h3>

<pre><code class="language-go">sudo dkms autoinstall
</code></pre>

<h3 id="load-the-correct-driver">Load the correct driver</h3>

<pre><code class="language-go">sudo modprobe wl
</code></pre>

<p>Check:</p>

<pre><code class="language-go">lsmod | grep wl
lsmod | grep -E &#39;wl|brcm|bcma&#39;
dmesg | grep -i wl
</code></pre>

<hr>

<hr>
]]></content:encoded>
      <guid>https://dottork.hopto.org/how-to-fix-broken-wifi-after-a-kernel-update-on-macbook-pro-late-2012</guid>
      <pubDate>Sat, 06 Dec 2025 13:43:36 +0100</pubDate>
    </item>
    <item>
      <title>rl2knvw1vk</title>
      <link>https://dottork.hopto.org/working-with-github-from-linux-cli</link>
      <description>&lt;![CDATA[---&#xA;Working with GitHub from Linux CLI&#xA;&#xA;This guide shows how to create and manage a GitHub repository entirely from the Linux command line.&#xA;&#xA;---&#xA;&#xA;1. Setup Git&#xA;&#xA;sudo apt update&#xA;sudo apt install git&#xA;&#xA;Configure your identity (used for commits):&#xA;&#xA;git config --global user.name &#34;Your Name&#34;&#xA;git config --global user.email &#34;your.email@example.com&#34;&#xA;&#xA;Check configuration:&#xA;git config --list&#xA;&#xA;---&#xA;&#xA;2. Generate SSH Key (optional but recommended)&#xA;&#xA;ssh-keygen -t ed25519 -C &#34;your.email@example.com&#34;&#xA;&#xA;Copy the public key:&#xA;cat ~/.ssh/id_ed25519.pub&#xA;&#xA;Add it to GitHub under Settings → SSH and GPG keys → New SSH key.&#xA;&#xA;Test connection:&#xA;ssh -T git@github.com&#xA;&#xA;---&#xA;&#xA;3. Create a Local Repository&#xA;&#xA;mkdir my-project&#xA;cd my-project&#xA;git init&#xA;&#xA;This creates a new Git repository in the folder.&#xA;&#xA;Add a file and commit it:&#xA;echo &#34;# My Project&#34;   README.md&#xA;git add README.md&#xA;git commit -m &#34;Initial commit&#34;&#xA;&#xA;---&#xA;&#xA;4. Create a GitHub Repository from CLI&#xA;&#xA;Using HTTPS (if SSH not configured)&#xA;&#xA;Go to https://github.com/new and create an empty repository manually.&#xA;&#xA;Then connect it:&#xA;&#xA;git remote add origin https://github.com/username/my-project.git&#xA;&#xA;Using SSH (preferred)&#xA;&#xA;git remote add origin git@github.com:username/my-project.git&#xA;&#xA;Push the local repo to GitHub:&#xA;git branch -M main&#xA;git push -u origin main&#xA;&#xA;---&#xA;&#xA;5. Making Changes and Updating the Repository&#xA;&#xA;Edit files as needed, then:&#xA;&#xA;git status&#xA;git add .&#xA;git commit -m &#34;Describe changes&#34;&#xA;git push&#xA;&#xA;To pull updates from GitHub:&#xA;git pull&#xA;&#xA;---&#xA;&#xA;6. Cloning Existing Repositories&#xA;&#xA;git clone https://github.com/username/repository.git&#xA;or&#xA;git clone git@github.com:username/repository.git&#xA;&#xA;---&#xA;&#xA;7. Branching&#xA;&#xA;Create and switch to a new branch:&#xA;git checkout -b feature-branch&#xA;&#xA;Push a new branch to GitHub:&#xA;git push -u origin feature-branch&#xA;&#xA;Merge back to main:&#xA;git checkout main&#xA;git merge feature-branch&#xA;git push&#xA;&#xA;---&#xA;&#xA;Summary&#xA;&#xA;git init → Create a repo  &#xA;git add / commit → Stage and save changes  &#xA;git remote add origin → Link to GitHub  &#xA;git push / pull → Sync changes  &#xA;git branch / merge → Manage versions&#xA;&#xA;---]]&gt;</description>
      <content:encoded><![CDATA[<hr>

<h1 id="working-with-github-from-linux-cli">Working with GitHub from Linux CLI</h1>

<p>This guide shows how to create and manage a GitHub repository entirely from the Linux command line.</p>

<hr>

<h2 id="1-setup-git">1. Setup Git</h2>

<pre><code class="language-bash">sudo apt update
sudo apt install git
</code></pre>

<p>Configure your identity (used for commits):</p>

<pre><code class="language-bash">git config --global user.name &#34;Your Name&#34;
git config --global user.email &#34;your.email@example.com&#34;
</code></pre>

<p>Check configuration:</p>

<pre><code class="language-bash">git config --list
</code></pre>

<hr>

<h2 id="2-generate-ssh-key-optional-but-recommended">2. Generate SSH Key (optional but recommended)</h2>

<pre><code class="language-bash">ssh-keygen -t ed25519 -C &#34;your.email@example.com&#34;
</code></pre>

<p>Copy the public key:</p>

<pre><code class="language-bash">cat ~/.ssh/id_ed25519.pub
</code></pre>

<p>Add it to GitHub under <strong>Settings → SSH and GPG keys → New SSH key</strong>.</p>

<p>Test connection:</p>

<pre><code class="language-bash">ssh -T git@github.com
</code></pre>

<hr>

<h2 id="3-create-a-local-repository">3. Create a Local Repository</h2>

<pre><code class="language-bash">mkdir my-project
cd my-project
git init
</code></pre>

<p>This creates a new Git repository in the folder.</p>

<p>Add a file and commit it:</p>

<pre><code class="language-bash">echo &#34;# My Project&#34; &gt; README.md
git add README.md
git commit -m &#34;Initial commit&#34;
</code></pre>

<hr>

<h2 id="4-create-a-github-repository-from-cli">4. Create a GitHub Repository from CLI</h2>

<h3 id="using-https-if-ssh-not-configured">Using HTTPS (if SSH not configured)</h3>

<p>Go to <a href="https://github.com/new">https://github.com/new</a> and create an empty repository manually.</p>

<p>Then connect it:</p>

<pre><code class="language-bash">git remote add origin https://github.com/username/my-project.git
</code></pre>

<h3 id="using-ssh-preferred">Using SSH (preferred)</h3>

<pre><code class="language-bash">git remote add origin git@github.com:username/my-project.git
</code></pre>

<p>Push the local repo to GitHub:</p>

<pre><code class="language-bash">git branch -M main
git push -u origin main
</code></pre>

<hr>

<h2 id="5-making-changes-and-updating-the-repository">5. Making Changes and Updating the Repository</h2>

<p>Edit files as needed, then:</p>

<pre><code class="language-bash">git status
git add .
git commit -m &#34;Describe changes&#34;
git push
</code></pre>

<p>To pull updates from GitHub:</p>

<pre><code class="language-bash">git pull
</code></pre>

<hr>

<h2 id="6-cloning-existing-repositories">6. Cloning Existing Repositories</h2>

<pre><code class="language-bash">git clone https://github.com/username/repository.git
# or
git clone git@github.com:username/repository.git
</code></pre>

<hr>

<h2 id="7-branching">7. Branching</h2>

<p>Create and switch to a new branch:</p>

<pre><code class="language-bash">git checkout -b feature-branch
</code></pre>

<p>Push a new branch to GitHub:</p>

<pre><code class="language-bash">git push -u origin feature-branch
</code></pre>

<p>Merge back to main:</p>

<pre><code class="language-bash">git checkout main
git merge feature-branch
git push
</code></pre>

<hr>

<h2 id="summary">Summary</h2>
<ul><li><strong>git init</strong> → Create a repo<br></li>
<li><strong>git add / commit</strong> → Stage and save changes<br></li>
<li><strong>git remote add origin</strong> → Link to GitHub<br></li>
<li><strong>git push / pull</strong> → Sync changes<br></li>
<li><strong>git branch / merge</strong> → Manage versions</li></ul>

<hr>
]]></content:encoded>
      <guid>https://dottork.hopto.org/working-with-github-from-linux-cli</guid>
      <pubDate>Sun, 12 Oct 2025 15:59:00 +0200</pubDate>
    </item>
    <item>
      <title>hcdnwgm8r6</title>
      <link>https://dottork.hopto.org/world-population-from-10-000-bce-to-now</link>
      <description>&lt;![CDATA[---&#xA;World population from 10.000 BCE to now&#xA;&#xA;One of the most amazing datasets&#xA;&#xA;iframe src=&#34;https://ourworldindata.org/grapher/population?tab=chart&#34; loading=&#34;lazy&#34; style=&#34;width: 100%; height: 600px; border: 0px none;&#34; allow=&#34;web-share; clipboard-write&#34;/iframe&#xA;from ourworldindata.org&#xA;&#xA;When I was born in 1966, the world population was 3.4 billion; now it is more than double that.&#xA;---]]&gt;</description>
      <content:encoded><![CDATA[<hr>

<h1 id="world-population-from-10-000-bce-to-now">World population from 10.000 BCE to now</h1>

<h2 id="one-of-the-most-amazing-datasets">One of the most amazing datasets</h2>

<p><iframe src="https://ourworldindata.org/grapher/population?tab=chart" style="width: 100%; height: 600px; border: 0px none;"></iframe>
from ourworldindata.org</p>

<p>When I was born in 1966, the world population was 3.4 billion; now it is more than double that.</p>

<hr>
]]></content:encoded>
      <guid>https://dottork.hopto.org/world-population-from-10-000-bce-to-now</guid>
      <pubDate>Wed, 09 Jul 2025 19:39:30 +0200</pubDate>
    </item>
    <item>
      <title>roxjm7m3n0</title>
      <link>https://dottork.hopto.org/coding-microbit-in-c-with-debian-12</link>
      <description>&lt;![CDATA[---&#xA;Coding Microbit in C++ with Debian 12&#xA;&#xA;First, we need to set the environment:&#xA;Installing Yotta and &#39;&#39;&#39;srecord&#39;&#39;&#39; (this is needed to create .hex)&#xA;sudo apt install yotta srecord&#xA;Clone example &#xA;cd microbit-samplesSetup the target for building&#xA;Build example&#xA;5.Copy .hex to Microbit folder&#xA;&#xA;Reference: Reference&#xA;---&#xA;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<hr>

<h1 id="coding-microbit-in-c-with-debian-12">Coding Microbit in C++ with Debian 12</h1>

<p>First, we need to set the environment:
1. Installing Yotta and &#39;&#39;&#39;srecord&#39;&#39;&#39; (this is needed to create .hex)</p>

<pre><code>sudo apt install yotta srecord
</code></pre>
<ol><li>Clone example
<code>git clone https://github.com/lancaster-university/microbit-samples
cd microbit-samples</code></li>
<li>Setup the target for building
<code>yotta target bbc-microbit-classic-gcc-nosd@https://github.com/lancaster-university/yotta-target-bbc-microbit-classic-gcc</code></li>
<li>Build example
<code>yotta build</code>
5.Copy .hex to Microbit folder
<code>cp ./build/bbc-microbit-classic-gcc/source/microbit-samples-combined.hex /media/&#34;user&#34;/MICROBIT</code></li></ol>

<p>Reference: <a href="https://lancaster-university.github.io/microbit-docs/offline-toolchains/#installation-on-linux">Reference</a></p>

<hr>
]]></content:encoded>
      <guid>https://dottork.hopto.org/coding-microbit-in-c-with-debian-12</guid>
      <pubDate>Sun, 25 May 2025 19:46:03 +0200</pubDate>
    </item>
    <item>
      <title>Particles</title>
      <link>https://dottork.hopto.org/particles</link>
      <description>&lt;![CDATA[iframe src=&#34;https://editor.p5js.org/Dottork/full/NHsvULqvo&#34;/iframe]]&gt;</description>
      <content:encoded><![CDATA[<iframe src="https://editor.p5js.org/Dottork/full/NHsvULqvo"></iframe>
]]></content:encoded>
      <guid>https://dottork.hopto.org/particles</guid>
      <pubDate>Thu, 13 Mar 2025 20:03:46 +0100</pubDate>
    </item>
    <item>
      <title>Spring</title>
      <link>https://dottork.hopto.org/spring</link>
      <description>&lt;![CDATA[Spring]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://lagua.hopto.org/xbackbone/rIhi7/cuWuZEbe35/raw.jpeg" alt="Spring"></p>
]]></content:encoded>
      <guid>https://dottork.hopto.org/spring</guid>
      <pubDate>Fri, 07 Mar 2025 19:21:39 +0100</pubDate>
    </item>
    <item>
      <title>How to find the centre of a circle</title>
      <link>https://dottork.hopto.org/how-to-find-the-center-of-a-circle</link>
      <description>&lt;![CDATA[How to find the center of a circle&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://lagua.hopto.org/xbackbone/rIhi7/NUGotEnU70/raw.png" alt="How to find the center of a circle"></p>
]]></content:encoded>
      <guid>https://dottork.hopto.org/how-to-find-the-center-of-a-circle</guid>
      <pubDate>Sat, 01 Mar 2025 16:16:30 +0100</pubDate>
    </item>
    <item>
      <title> Backup to Proton Drive with restic and rclone </title>
      <link>https://dottork.hopto.org/backup-to-proton-drive-with-restic-and-rclone</link>
      <description>&lt;![CDATA[Install rclone&#xA;This is needed because Debian 12 install rclone too old, without ProtonDrive support&#xA;Configure rclone&#xA;Chose ProtonDrive and add user and password&#xA;Install restic&#xA;Inizialize restic repository&#xA;Backup a folder&#xA;Where:&#xA;[nameof remote rclone] -  name of remote set in during rclone config&#xA;[dir in ProtonDrive] -  directory in ProtonDrive where to save the backup&#xA;[file name] -  a text filename with in the list of dir and files to exclude from backup]]&gt;</description>
      <content:encoded><![CDATA[<h3 id="install-rclone">Install rclone</h3>

<p><code>sudo -v ; curl https://rclone.org/install.sh | sudo bash</code>
This is needed because Debian 12 install rclone too old, without ProtonDrive support</p>

<h3 id="configure-rclone">Configure rclone</h3>

<p><code>rclone config</code>
Chose ProtonDrive and add user and password</p>

<h3 id="install-restic">Install restic</h3>

<p><code>sudo apt install restic</code></p>

<h3 id="inizialize-restic-repository">Inizialize restic repository</h3>

<p><code>restic init -r rclone:[nameof remote rclone]:[dir in ProtonDrive]</code></p>

<h3 id="backup-a-folder">Backup a folder</h3>

<p><code>restic -r rclone:[nameof remote rclone]:[dir in ProtonDrive] backup [dir to backup] --compression auto --verbose --exclude-file=[file name]</code>
Where:
* [nameof remote rclone] –&gt; name of remote set in during rclone config
* [dir in ProtonDrive] –&gt; directory in ProtonDrive where to save the backup
* [file name] –&gt; a text filename with in the list of dir and files to exclude from backup</p>
]]></content:encoded>
      <guid>https://dottork.hopto.org/backup-to-proton-drive-with-restic-and-rclone</guid>
      <pubDate>Sat, 15 Feb 2025 15:16:11 +0100</pubDate>
    </item>
  </channel>
</rss>