<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Gandalf&#39;s Blog</title>
    <link href="https://blog.gandalf.gr/"/>
    <link rel="self" href="https://blog.gandalf.gr/feed.xml"/>
    <updated>2026-10-29T03:20:34Z</updated>
    <author>
        <name>Gandalf</name>
    </author>
    <id>https://blog.gandalf.gr/</id>
    <entry>
        <title>Use fcron like anacron</title>
        <link href="https://blog.gandalf.gr/post/XBh2AxIRIFtrCud6Xb6e/use-fcron-like-anacron"/>
        <id>https://blog.gandalf.gr/post/XBh2AxIRIFtrCud6Xb6e</id>
        <updated>2026-10-29T01:45:57Z</updated>
        <content type="html">By default, after installing and enabling the &lt;a href=&quot;http://fcron.free.fr/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;fcron&lt;/a&gt; daemon, you won&amp;#39;t get hourly, daily, weekly and monthly execution of the scripts in the respective /etc/cron.* directories, if your system is asleep at the wrong moment.&lt;br&gt;
&lt;br&gt;
Here&amp;#39;s a crontab which will work like &lt;a href=&quot;https://en.wikipedia.org/wiki/Anacron&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;anacron&lt;/a&gt;:&lt;br&gt;

&lt;hr&gt;As root, execute: fcrontab -u systab -e&lt;br&gt;
&lt;br&gt;
...comment-out the existing lines from the text that appears, and type in the following:&lt;br&gt;
&lt;br&gt;
&lt;div style=&quot;border: 1px solid grey; padding: 7px;&quot;&gt;&lt;code&gt;    %hourly,runas(root) 0-59 /usr/bin/run-parts /etc/cron.hourly&lt;br&gt;
    %daily,runas(root) 0-59 0-23 /usr/bin/run-parts /etc/cron.daily&lt;br&gt;
    %weekly,runas(root) 0-59 0-23 /usr/bin/run-parts /etc/cron.weekly&lt;br&gt;
    %monthly,runas(root) 0-59 0-23 1-31 /usr/bin/run-parts /etc/cron.monthly&lt;br&gt;
&lt;/code&gt;&lt;/div&gt;&lt;br&gt;
...and then save.&lt;br&gt;
</content>
        <summary type="html">By default, after installing and enabling the &lt;a href=&quot;http://fcron.free.fr/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;fcron&lt;/a&gt; daemon, you won&amp;#39;t get hourly, daily, weekly and monthly execution of the scripts in the respective /etc/cron.* directories, if your system is asleep at the wrong moment.&lt;br&gt;
&lt;br&gt;
Here&amp;#39;s a crontab which will work like &lt;a href=&quot;https://en.wikipedia.org/wiki/Anacron&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;anacron&lt;/a&gt;:&lt;br&gt;
</summary>
    </entry>
    <entry>
        <title>HOWTO: Set up etckeeper on Void Linux</title>
        <link href="https://blog.gandalf.gr/post/Yau9ixhHnO8eyWts4RNx/howto-set-up-etckeeper-on-void-linux"/>
        <id>https://blog.gandalf.gr/post/Yau9ixhHnO8eyWts4RNx</id>
        <updated>2026-10-29T02:47:58Z</updated>
        <content type="html">etckeeper keeps track of all the changes you make to your /etc directory over time. It keeps a .git repo inside of /etc, and will do a git commit:&lt;br&gt;
&lt;br&gt;
* before and after installing or removing a void package&lt;br&gt;
* once a day (with cron)&lt;br&gt;
&lt;br&gt;
Since Void Linux will serve the package in its original form and won&amp;#39;t configure it for you, here&amp;#39;s the steps you need to follow to make it do the above:&lt;br&gt;

&lt;hr&gt;1. Install the etckeeper package&lt;br&gt;
2. Create or edit an /etc/.gitignore file to include files you don&amp;#39;t want to be versioned (such as resolv.conf)&lt;br&gt;
3. As use root run: etckeeper init, and then: etckeeper commit &amp;quot;first commit&amp;quot;&lt;br&gt;
4. Create a symbolic link from /etc/cron.daily/etckeeper to /etc/etckeeper/daily&lt;br&gt;
&lt;br&gt;
Then create these three executable files:&lt;br&gt;
&lt;br&gt;
** /usr/local/bin/xbps-install **:&lt;br&gt;
&lt;br&gt;
&lt;div style=&quot;border: 1px solid grey; padding: 7px;&quot;&gt;&lt;code&gt;    #!/usr/bin/env perl&lt;br&gt;
    &lt;br&gt;
    use v5.42;&lt;br&gt;
    &lt;br&gt;
    use English &amp;#39;$UID&amp;#39;;&lt;br&gt;
    &lt;br&gt;
    my $binary = trim((`which -a xbps-install`)[1]) or die &amp;quot;No deep xbps-install binary found&amp;quot;;&lt;br&gt;
    system(&amp;#39;etckeeper pre-install&amp;#39;) or die &amp;quot;Couldn&amp;#39;t execute &amp;#39;etckeeper pre-install&amp;#39;\n&amp;quot; unless $UID;&lt;br&gt;
    !system($binary, @ARGV) or die &amp;quot;Couldn&amp;#39;t execute this: $binary @ARGV\n&amp;quot;;&lt;br&gt;
    !system(&amp;#39;etckeeper post-install&amp;#39;) or die &amp;quot;Couldn&amp;#39;t execute &amp;#39;etckeeper post-install&amp;#39;\n&amp;quot; unless $UID;&lt;br&gt;
&lt;/code&gt;&lt;/div&gt;&lt;br&gt;
** /usr/local/bin/xbps-remove **:&lt;br&gt;
&lt;br&gt;
&lt;div style=&quot;border: 1px solid grey; padding: 7px;&quot;&gt;&lt;code&gt;    #!/usr/bin/env perl&lt;br&gt;
    &lt;br&gt;
    use v5.42;&lt;br&gt;
    &lt;br&gt;
    use English &amp;#39;$UID&amp;#39;;&lt;br&gt;
    &lt;br&gt;
    my $binary = trim((`which -a xbps-remove`)[1]) or die &amp;quot;No deep xbps-remove binary found&amp;quot;;&lt;br&gt;
    !system(&amp;#39;etckeeper pre-install&amp;#39;) or die &amp;quot;Couldn&amp;#39;t execute &amp;#39;etckeeper pre-install&amp;#39;\n&amp;quot; unless $UID;&lt;br&gt;
    !system($binary, @ARGV) or die &amp;quot;Couldn&amp;#39;t execute this: $binary @ARGV\n&amp;quot;;&lt;br&gt;
    !system(&amp;#39;etckeeper post-install&amp;#39;) or die &amp;quot;Couldn&amp;#39;t execute &amp;#39;etckeeper post-install&amp;#39;\n&amp;quot; unless $UID;&lt;br&gt;
&lt;/code&gt;&lt;/div&gt;&lt;br&gt;
** /etc/cron.daily/01-record_manual_packages ** (note you need to install xtools to get xpkg):&lt;br&gt;
&lt;br&gt;
&lt;div style=&quot;border: 1px solid grey; padding: 7px;&quot;&gt;&lt;code&gt;    #!/bin/sh&lt;br&gt;
    &lt;br&gt;
    xpkg -m &amp;gt; /etc/my_list_of_manual_pkgs&lt;br&gt;
&lt;/code&gt;&lt;/div&gt;&lt;br&gt;
And you&amp;#39;re done.&lt;br&gt;
</content>
        <summary type="html">etckeeper keeps track of all the changes you make to your /etc directory over time. It keeps a .git repo inside of /etc, and will do a git commit:&lt;br&gt;
&lt;br&gt;
* before and after installing or removing a void package&lt;br&gt;
* once a day (with cron)&lt;br&gt;
&lt;br&gt;
Since Void Linux will serve the package in its original form and won&amp;#39;t configure it for you, here&amp;#39;s the steps you need to follow to make it do the above:&lt;br&gt;
</summary>
    </entry>
    <entry>
        <title>Update multiple rows to different values</title>
        <link href="https://blog.gandalf.gr/post/IZi9iaz8WIp7nUBcNTlc/update-multiple-rows-to-different-values"/>
        <id>https://blog.gandalf.gr/post/IZi9iaz8WIp7nUBcNTlc</id>
        <updated>2026-10-28T21:34:49Z</updated>
        <content type="html">Think it&amp;#39;s impossible to apply different values to different rows with just one PostgreSQL query?&lt;br&gt;
&lt;br&gt;
Think again.&lt;br&gt;

&lt;hr&gt;Check this out:&lt;br&gt;
&lt;br&gt;
&lt;div style=&quot;border: 1px solid grey; padding: 7px;&quot;&gt;&lt;code&gt;    UPDATE my_table&lt;br&gt;
        SET foo = my_table.foo + new_table.foo&lt;br&gt;
        FROM (VALUES (1, 5), (2,6), (3,7)) AS new_table(id, foo)&lt;br&gt;
        WHERE my_table.id = new_table.id;&lt;br&gt;
&lt;/code&gt;&lt;/div&gt;</content>
        <summary type="html">Think it&amp;#39;s impossible to apply different values to different rows with just one PostgreSQL query?&lt;br&gt;
&lt;br&gt;
Think again.&lt;br&gt;
</summary>
    </entry>
    <entry>
        <title>My de-Googling efforts</title>
        <link href="https://blog.gandalf.gr/post/q1SLlyqgZ9siSZrjLX3l/my-de-googling-efforts"/>
        <id>https://blog.gandalf.gr/post/q1SLlyqgZ9siSZrjLX3l</id>
        <updated>2026-10-28T20:46:18Z</updated>
        <content type="html">While you&amp;#39;re all busy using Google for everything, I&amp;#39;ve been transitioning to other solutions to avoid &amp;quot;feeding the monster&amp;quot; as I say, often paying hefty amounts of €€ to be able to use the same stuff you get for free.&lt;br&gt;
&lt;br&gt;
But I don&amp;#39;t mind.&lt;br&gt;

&lt;hr&gt;* My searches are conducted with &lt;a href=&quot;https://kagi.com&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;kagi.com&lt;/a&gt;, for which I pay 10 bucks a month.&lt;br&gt;
* E-mail is hosted at &lt;a href=&quot;https://www.fastmail.com&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;fastmail.com&lt;/a&gt; for €5/mo.&lt;br&gt;
* Cloud hosting is done at German &lt;a href=&quot;https://www.hetzner.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Hetzner&lt;/a&gt;.&lt;br&gt;
* I have a &lt;a href=&quot;https://grapheneos.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;GrapheneOS&lt;/a&gt; phone in my posession.&lt;br&gt;
</content>
        <summary type="html">While you&amp;#39;re all busy using Google for everything, I&amp;#39;ve been transitioning to other solutions to avoid &amp;quot;feeding the monster&amp;quot; as I say, often paying hefty amounts of €€ to be able to use the same stuff you get for free.&lt;br&gt;
&lt;br&gt;
But I don&amp;#39;t mind.&lt;br&gt;
</summary>
    </entry>
    <entry>
        <title>A better &#39;cd&#39; for JS nvm users</title>
        <link href="https://blog.gandalf.gr/post/oKcT9Wp3QInmQmwziEzW/a-better-cd-for-js-nvm-users"/>
        <id>https://blog.gandalf.gr/post/oKcT9Wp3QInmQmwziEzW</id>
        <updated>2026-10-28T20:41:19Z</updated>
        <content type="html">nvm&amp;#39;s &lt;a href=&quot;https://github.com/nvm-sh/nvm#bash&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;official script&lt;/a&gt; for automatically switching node version while cd&amp;#39;ing into different projects is very slow. Every invocation of cd takes a long time regardless of whether a new project is reached.&lt;br&gt;
&lt;br&gt;
A speedy alternative has been proposed in nvm&amp;#39;s github issues, and it works fine.&lt;br&gt;

&lt;hr&gt;Copying from &lt;a href=&quot;https://github.com/nvm-sh/nvm/issues/3508&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;github issue #3508&lt;/a&gt;, the following is the proposed script that can be placed in .bashrc:&lt;br&gt;
&lt;br&gt;
&lt;div style=&quot;border: 1px solid grey; padding: 7px;&quot;&gt;&lt;code&gt;    cdnvm() {&lt;br&gt;
        command cd &amp;quot;$@&amp;quot; || return $?&lt;br&gt;
        eval $(bash &amp;lt;&amp;lt;&amp;#39;END&amp;#39;&lt;br&gt;
            dir=$(pwd)&lt;br&gt;
            while true; do&lt;br&gt;
                if [ -f &amp;quot;$dir/.nvmrc&amp;quot; ]; then&lt;br&gt;
                    current_v=$(node -v | sed &amp;#39;s/^v//; s/[[:space:]]*$//&amp;#39;)&lt;br&gt;
                    this_v=$(cat &amp;quot;$dir/.nvmrc&amp;quot; | sed &amp;#39;s/^v//; s/[[:space:]]*$//&amp;#39;)&lt;br&gt;
                    &lt;br&gt;
                    if [ &amp;quot;$this_v&amp;quot; != &amp;quot;$current_v&amp;quot; ]; then&lt;br&gt;
                        echo &amp;quot;nvm use&amp;quot;&lt;br&gt;
                    fi&lt;br&gt;
                    break&lt;br&gt;
                fi&lt;br&gt;
                &lt;br&gt;
                if [ &amp;quot;$dir&amp;quot; = &amp;quot;/&amp;quot; ]; then&lt;br&gt;
                    break&lt;br&gt;
                fi&lt;br&gt;
                &lt;br&gt;
                dir=$(dirname &amp;quot;$dir&amp;quot;)&lt;br&gt;
            done&lt;br&gt;
    END&lt;br&gt;
        )&lt;br&gt;
    }&lt;br&gt;
    &lt;br&gt;
    alias cd=&amp;#39;cdnvm&amp;#39;&lt;br&gt;
    cdnvm &amp;quot;$PWD&amp;quot; || exit&lt;br&gt;
&lt;/code&gt;&lt;/div&gt;</content>
        <summary type="html">nvm&amp;#39;s &lt;a href=&quot;https://github.com/nvm-sh/nvm#bash&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;official script&lt;/a&gt; for automatically switching node version while cd&amp;#39;ing into different projects is very slow. Every invocation of cd takes a long time regardless of whether a new project is reached.&lt;br&gt;
&lt;br&gt;
A speedy alternative has been proposed in nvm&amp;#39;s github issues, and it works fine.&lt;br&gt;
</summary>
    </entry>
    <entry>
        <title>Code-blocks with link tags</title>
        <link href="https://blog.gandalf.gr/post/Zvb8pSGLwQJHt7g2oqhT/code-blocks-with-link-tags"/>
        <id>https://blog.gandalf.gr/post/Zvb8pSGLwQJHt7g2oqhT</id>
        <updated>2026-10-28T20:41:33Z</updated>
        <content type="html">Hi there, this should be a normal link: &lt;a href=&quot;https://www.google.com&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Google&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
And another one: &lt;a href=&quot;https://duck.com&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Duck.com&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;div style=&quot;border: 1px solid grey; padding: 7px;&quot;&gt;&lt;code&gt;    #!/usr/bin/env perl&lt;br&gt;
    &lt;br&gt;
    say &amp;quot;Hello, world!&amp;quot;;&lt;br&gt;
    &lt;br&gt;
    say &amp;quot;And another one: [Duck.com](https://duck.com)&amp;quot;;&lt;br&gt;
    say &amp;quot;And another one: ![Duck.com](https://duck.com)&amp;quot;;&lt;br&gt;
&lt;/code&gt;&lt;/div&gt;&lt;br&gt;
And another one: &lt;a href=&quot;https://duck.com&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Duck.com&lt;/a&gt;&lt;br&gt;
</content>
    </entry>
    <entry>
        <title>Usenet trumped Facebook</title>
        <link href="https://blog.gandalf.gr/post/oyGM29csWO1A1sQ7gTga/usenet-trumped-facebook"/>
        <id>https://blog.gandalf.gr/post/oyGM29csWO1A1sQ7gTga</id>
        <updated>2026-10-28T20:41:44Z</updated>
        <content type="html">I find that discussions on Usenet when the Internet existed only in universities were more civil, thought-provoking and intelligent than what we have nowadays in facebook and other social media/forum sites, and I believe the reasons for this were mainly technical:&lt;br&gt;

&lt;hr&gt;* Discussions were deeply threaded, while facebook allows only two levels of replies to exist&lt;br&gt;
* Messages could be very long without making the discussion any harder to follow&lt;br&gt;
* It was easy to scroll to older discussions, browsable by title (subject line) and searchable, like e-mail&lt;br&gt;
* They allowed users to post anonymously&lt;br&gt;
&lt;br&gt;
Perhaps in the future a modern forum website will replicate the above?&lt;br&gt;
</content>
        <summary type="html">I find that discussions on Usenet when the Internet existed only in universities were more civil, thought-provoking and intelligent than what we have nowadays in facebook and other social media/forum sites, and I believe the reasons for this were mainly technical:&lt;br&gt;
</summary>
    </entry>
    <entry>
        <title>Images</title>
        <link href="https://blog.gandalf.gr/post/eBkAqRn2Sa9GAaHEQThp/images"/>
        <id>https://blog.gandalf.gr/post/eBkAqRn2Sa9GAaHEQThp</id>
        <updated>2026-10-28T20:41:54Z</updated>
        <content type="html">&lt;img src=&quot;https://files.gandalf.gr/1/0.jpeg&quot; style=&quot;max-width: 100%; width: 400px; &quot;&gt; &lt;img src=&quot;https://files.gandalf.gr/1/1.jpeg&quot; style=&quot;max-width: 100%; width: 400px; &quot;&gt; &lt;img src=&quot;https://files.gandalf.gr/1/2.jpeg&quot; style=&quot;max-width: 100%; width: 400px; &quot;&gt; &lt;img src=&quot;https://files.gandalf.gr/1/3.jpeg&quot; style=&quot;max-width: 100%; width: 400px; &quot;&gt;&lt;br&gt;
&lt;br&gt;
Clopyright Trudy &amp;amp; Doug&lt;br&gt;
</content>
    </entry>
    <entry>
        <title>Disable cookie banners</title>
        <link href="https://blog.gandalf.gr/post/mfbSJ4msHJ0QTyZop96L/disable-cookie-banners"/>
        <id>https://blog.gandalf.gr/post/mfbSJ4msHJ0QTyZop96L</id>
        <updated>2026-10-28T20:42:13Z</updated>
        <content type="html">1. Install the uBlock Origin browser add-on (not available on Chrome)&lt;br&gt;
2. uBlock Origin settings → &amp;quot;filter lists&amp;quot; tab → in the search box there type: cookie → tick all the checkboxes → click on the &amp;quot;apply settings&amp;quot; button&lt;br&gt;
</content>
    </entry>
    <entry>
        <title>My Void Linux review</title>
        <link href="https://blog.gandalf.gr/post/oOxNAmQBwZVAnq31hRND/my-void-linux-review"/>
        <id>https://blog.gandalf.gr/post/oOxNAmQBwZVAnq31hRND</id>
        <updated>2026-10-28T20:42:30Z</updated>
        <content type="html">I&amp;#39;ve been using Void Linux for the last two years. Here&amp;#39;s the good and bad things I found about it:&lt;br&gt;
&lt;br&gt;
Good:&lt;br&gt;
* Rolling-release distro: recent software packages, unlike Ubuntu, without needing to re-install the entire OS&lt;br&gt;
* Stable rolling-release distro: Like Tumbleweed, the packages have been tested before being released&lt;br&gt;
* Good, concise documentation&lt;br&gt;
* Very minimal base system&lt;br&gt;
* Unopinionated: wide choice of cron daemons, DEs, NTP daemons, etc&lt;br&gt;
* Easy to contribute to, with guiding documents&lt;br&gt;
* Good support on IRC&lt;br&gt;
* Works perfectly with Steam&lt;br&gt;
* Being a community distro ensures it won&amp;#39;t get discontinued anytime soon&lt;br&gt;
* Fast system updates&lt;br&gt;
&lt;br&gt;
Bad:&lt;br&gt;
* KDE broke twice because not all KDE/Plasma packages had been updated in the repo at the time of my update. Situation fixed itself by updating again the following day.&lt;br&gt;
* Not for absolute beginners in Linux&lt;br&gt;
</content>
    </entry>
    <entry>
        <title>Code blocks</title>
        <link href="https://blog.gandalf.gr/post/krdaeM36MF4v43VqbOY9/code-blocks"/>
        <id>https://blog.gandalf.gr/post/krdaeM36MF4v43VqbOY9</id>
        <updated>2026-10-28T20:42:40Z</updated>
        <content type="html">&lt;div style=&quot;border: 1px solid grey; padding: 7px;&quot;&gt;&lt;code&gt;    #!/usr/bin/env perl&lt;br&gt;
    &lt;br&gt;
    use v5.44;&lt;br&gt;
    &lt;br&gt;
    sub foo ($x, $y) {&lt;br&gt;
        return $x + $y;&lt;br&gt;
    }&lt;br&gt;
    &lt;br&gt;
    say foo(10, 20);&lt;br&gt;
&lt;/code&gt;&lt;/div&gt;&lt;br&gt;
Another code block:&lt;br&gt;
&lt;br&gt;
&lt;div style=&quot;border: 1px solid grey; padding: 7px;&quot;&gt;&lt;code&gt;    #!/usr/bin/env perl&lt;br&gt;
    &lt;br&gt;
    use v5.44;&lt;br&gt;
    use FindBin &amp;#39;$RealBin&amp;#39;;&lt;br&gt;
    use lib &amp;quot;$RealBin/local/lib/perl5&amp;quot;;&lt;br&gt;
    &lt;br&gt;
    use Mojo::Pg;&lt;br&gt;
    &lt;br&gt;
    my $pg = Mojo::Pg-&amp;gt;new(&amp;#39;postgtresql://user:pass@localhost/website&amp;#39;);&lt;br&gt;
&lt;/code&gt;&lt;/div&gt;&lt;br&gt;
And HTML, with multiple blank lines:&lt;br&gt;
&lt;br&gt;
&lt;div style=&quot;border: 1px solid grey; padding: 7px;&quot;&gt;&lt;code&gt;    &amp;lt;!-- line 1 --&amp;gt;&lt;br&gt;
    &amp;lt;strong&amp;gt;Bold text&amp;lt;/strong&amp;gt;&lt;br&gt;
    &lt;br&gt;
    &lt;br&gt;
    &lt;br&gt;
    &amp;lt;!-- line 2 --&amp;gt;&lt;br&gt;
    &amp;lt;em&amp;gt;Italic text&amp;lt;/em&amp;gt;&lt;br&gt;
&lt;/code&gt;&lt;/div&gt;</content>
    </entry>
    <entry>
        <title>Multi-line posts</title>
        <link href="https://blog.gandalf.gr/post/U5nRVc4TDNnmj9chfSAw/multi-line-posts"/>
        <id>https://blog.gandalf.gr/post/U5nRVc4TDNnmj9chfSAw</id>
        <updated>2026-10-28T20:42:48Z</updated>
        <content type="html">Line 1&lt;br&gt;
Line 2&lt;br&gt;
&lt;br&gt;
Line 3 (with one blank line above it)&lt;br&gt;
&lt;br&gt;
Line 4 (with three blank lines above it)&lt;br&gt;
</content>
    </entry>
    <entry>
        <title>This is my new blog</title>
        <link href="https://blog.gandalf.gr/post/k5oJ5ZoL4JYLx40FA9cf/this-is-my-new-blog"/>
        <id>https://blog.gandalf.gr/post/k5oJ5ZoL4JYLx40FA9cf</id>
        <updated>2026-10-28T20:42:58Z</updated>
        <content type="html">Enjoy.&lt;br&gt;
</content>
    </entry>
</feed>
