<?xml version="1.0"?>
 <rss version="2.0"
      xmlns:dc="http://purl.org/dc/elements/1.1/"
      xmlns:dcterms="http://purl.org/dc/terms/" >
 <channel>
 <title>Open source software and nice hardware</title>
 <link>gopher://box.matto.nl/</link>
 <description>This is my gopher burrow</description>
 <language>en-us</language>
 <lastBuildDate>Wed, 02 Jul 2025 11:17:54 +0200</lastBuildDate><item>
<title>The adventure of choosing a plant-based yogurt</title>
  <guid isPermaLink="false">gopher://box.matto.nl/0/the-adventure-of-choosing-a-plant-based-yogurt.txt</guid>
  <link>gopher://box.matto.nl/0/the-adventure-of-choosing-a-plant-based-yogurt.txt</link>
  <pubDate>Wed, 02 Jul 2025 09:09:12 +0200</pubDate>
<description> <![CDATA[
<pre>
+++ Wednesday  2 July 2025 +++


The adventure of choosing a plant-based yogurt
==============================================

For years, I've had yogurt with muesli for breakfast. I like
to add some red fruits or half a banana to it.

I use plain dairy yogurt, and the muesli is the simplest
type, consisting of rolled oats, a few hazelnuts, and some
raisins.

I decided to find out if I could replace the dairy yogurt
with a plant-based alternative. It helps with animal
welfare, the environment, and my health.

Kinds of plant-based yogurt
---------------------------
First comes the question: what kind of plant-based yogurt.

Plant-based yogurt comes in various types.
It can be based on:

* Amandel-milk
* Cashew-milk
* Coconut-milk
* Soy-milk

The supermarkets in our area offer the soy-based variant and
the coconut-based variant.

In comparison to the coconut-based variety, the soy-based
variant is less creamy, and has more protein, less fat, and
less calories.

My choice: the soy-based yogurt.

Different brands
----------------
Next comes the question, which brand.

I only looked at soy-based yogurt without added sugar. The
nutritional values hardly differs between brands.

The Alpro yogurt has the best name, but is very expensive,
and comes from Danone, so we better avoid that.

Most supermarkets offer also their house-brand soy-based
yogurt. I decided to try each house brand, to discover which
one I prefer.

I started with the house brand of Lidl, after that the house
brands of the Dutch supermarket chains in our area, and ended
with the house brand of Aldi.

The testing took some time. After opening a package, I would
consume it over a couple of days, and only after that open
then next package.

Price and packaging
-------------------
There isn't any price difference, all costs Euro 1.60 per kg.

All brands offer it in a 500 gram package, except Aldi, that
offers it in a 1 kg package.

The 500 gram packages have a thin aluminum lid. Once
opened, it can't be closed. The Aldi package has a bigger,
sturdy plastic lid, and can be closed.

Taste and texture
-----------------
Soy-based yogurt has a different flavor, texture, and color
than dairy yogurt.

You need to get used a bit to the flavor before you can
appreciate it.

There is little difference in flavor across the brands. My
least favorite flavor is the Lidl's yogurt, albeit it
might be because I tried that first. The Aldi house brand
yogurt tastes slightly more sour.

There is a slight but noticeable difference in texture. The
texture of the Aldi house brand and Melkan (purchased from
the "Plus" supermarket) most closely mimics that of dairy
yogurt.

The color is the same across the brands. It is not white,
but off-white, a bit like RAL 9001.

Verdict
-------
* Taste:
 I expect that I can get used to the flavor of any house
 brand, The flavor of Melkan is my most favorite, followed
 by the Aldi.

* Texture:
 Melkan and Aldi are the winners.

* Packaging:
 Aldi is the clear winner.

* Convenience:
 The Plus supermarket (seller of Melkan) is just a 4 km
 bicycle trip from hour home, visiting the Aldi requires a
 10 km bicycle trip. Melkan is the winner.

Conclusion
----------
The test has a positive outcome:
I've made the switch to plant-based yogurt.

Plant-based yogurt is a good alternative. One gets used to
the flavor quickly, it has the same nutritional benefits as
dairy yogurt. It is slightly more expensive than dairy
yogurt.

Melkan and Aldi are my preferred picks.


Last edited: $Date: 2025/07/02 09:09:12 $
  </pre>
  ]]></description>
</item>
<item>
<title>Setting up ftpd on FreeBSD</title>
  <guid isPermaLink="false">gopher://box.matto.nl/0/setting-up-ftpd-on-freebsd.txt</guid>
  <link>gopher://box.matto.nl/0/setting-up-ftpd-on-freebsd.txt</link>
  <pubDate>Tue, 24 Jun 2025 06:58:06 +0200</pubDate>
<description> <![CDATA[
<pre>
+++ Tuesday 24 June 2025 +++


Setting up ftpd on FreeBSD
==========================

In preparation for the Old Computer Challenge I installed
telnetd in a FreeBSD 14 jail [1]. This, as an alternative
for ssh.

Of course, we not only use ssh to log into other systems,
but also to transfer files.

I could use my Javascript-free filedropper [2] for that,
however, when multiple files are to be transported,
ftp works finer, and on the command line too.

Installation
------------
The installation of ftpd is similar to the installation
of telnetd.

* pkg install freebsd-ftpd

* ed /etc/rc.conf and add a line:
 ftpd_enable="YES"

* ed /etc/inetd.conf
 remove the "#" at the beginning of the line with ftd

* restart inetd

Easy does it!

[1]: gopher://box.matto.nl/0/setting-up-telnetd-on-freebsd.txt
[2]: https://codeberg.org/mattof/hunchbin


Last edited: $Date: 2025/06/24 06:58:06 $
  </pre>
  ]]></description>
</item>
<item>
<title>Setting up telnetd on FreeBSD</title>
  <guid isPermaLink="false">gopher://box.matto.nl/0/setting-up-telnetd-on-freebsd.txt</guid>
  <link>gopher://box.matto.nl/0/setting-up-telnetd-on-freebsd.txt</link>
  <pubDate>Tue, 24 Jun 2025 19:20:49 +0200</pubDate>
<description> <![CDATA[
<pre>
+++ Monday 23 June 2025 +++


Setting up telnetd on FreeBSD
=============================

It is that time of the year again.

We all get itchy, and can't wait for the new edition of the
Old Computer Challenge to start.

This is reflected in the kind of messages on the IRC
channel. People start talking about the wonderful hardware
they might use for the challenge.

Encryption is always a problem
------------------------------
No matter what hardware or OS, when it is dated, encryption
will be a problem.

One encounter this problem, when connecting to almost any
website, almost any Jabber provider, and so on.

Another problem is connecting to local services in your own
network. The old OS either doesn't come with ssh, or with
an ssh that only supports outdated ciphers.

Andreas did encounter this problem too, and setup a
brilliant old-ssh to modern-ssh gateway [1].
This is a great solution.

I wanted to try another way, and that is a telnetd-to-ssh
gateway. Most old OS'es have a telnet client, so this
should be a nice general solution.

Telnetd on FreeBSD 14
---------------------
A FreeBSD jail is a great solution for a telnetd-to-ssh
gateway. It is easy to setup, and can be started and
stopped when needed.

Setting up telnetd in a FreeBSD 14 jail:

* install telnetd:
 pkg install freebsd-telnetd

* allow telnet in inetd.conf:
 ed /etc/inetd.conf
 search for telnetd
 remove the #-char at the begin of the line

* in /etc/rc.conf, add the lines:
 telnetd_enable="YES"
 inetd_enable="YES"

And start inetd.

Now you can play with firewall rules to make it a bit more secure,
but remember that telnet died because it sends all your passwords
and other secrets in plain text over the line ...

Testing
-------
A great way to test is to fire up Qemu with that old Linux
or BSD system, and give it a go!

Happy telnetting!

Update:
-------

2025-06-24 Change of telnetd line
................................
First I had set 'telnetd -a user' in inetd.conf, but this
made it not possible to log in from Mac OS X 10.3.9.
Now I have removed this, and just kept the origina 'telnetd'
at the end of the line.

[1]: https://82mhz.net/posts/2025/06/using-a-raspberry-pi-as-a-jumphost-to-ssh-from-an-old-computer-into-a-modern-one/


Last edited: $Date: 2025/06/24 19:20:49 $
  </pre>
  ]]></description>
</item>
<item>
<title>No need for tig, magit has you covered</title>
  <guid isPermaLink="false">gopher://box.matto.nl/0/no-need-for-tig-magit-has-you-covered.txt</guid>
  <link>gopher://box.matto.nl/0/no-need-for-tig-magit-has-you-covered.txt</link>
  <pubDate>Wed, 18 Jun 2025 09:34:45 +0200</pubDate>
<description> <![CDATA[
<pre>
+++ Wednesday 18 June 2025 +++


No need for tig, magit has you covered
======================================

`tig' is a text mode tool that allows you to easily explore
the changes a Git repository. It is quick, simple to use and does its
job well.

Today, I learned that `magit' provides the same functionality.

Magit
-----
Magit is a Git Porcelain inside Emacs.

This is the opening of their website [1]:

   Magit is a complete text-based user interface to Git. It fills
   the glaring gap between the Git command-line interface and
   various GUIs, letting you perform trivial as well as elaborate
   version control tasks with just a couple of mnemonic key
   presses.

EmacsWiki [2] starts the Magit page with:

   Magit is an interface to the version control system Git,
   implemented as an Emacs package.

Exploration on different levels
-------------------------------
Magit provides three levels of exploration:

* Changes in the entire repository
* Changes in a directory within the repository
* Changes in a file

And all with the same command :)

Explore all changes or changes in a directory
---------------------------------------------
To explore the entire repository or the changes within a directory,
enter in Dired either the root directory of the repository, or a
directory within it.

Now, run:

  M-x magit-log-buffer-file

Magit opens a new buffer with the commits, comparable to
the output of `git log --pretty=short'.

It shows four columns;
* abbreviated hash of the commit
* title line (first line of the commit message)
* the committer
* date ago, in the format '18 hours', '7 months', '2 years' and so on

Select a commit by going to its line and hit Enter.
This opens a new buffer with the details of the commit including the changes.

Explore changes in a file
-------------------------
To explore the changes in a file, first open the file, and then
again run:

  M-x magit-log-buffer-file

This again opens a new buffer with the commits, where you can select
a commit to request the details.

Have fun!

[1]: https://magit.vc/
[2]: https://www.emacswiki.org/emacs/Magit


Last edited: $Date: 2025/06/18 09:34:45 $
  </pre>
  ]]></description>
</item>
<item>
<title>Back to generating FODT</title>
  <guid isPermaLink="false">gopher://box.matto.nl/0/back-to-generating-fodt.txt</guid>
  <link>gopher://box.matto.nl/0/back-to-generating-fodt.txt</link>
  <pubDate>Sun, 15 Jun 2025 08:49:59 +0200</pubDate>
<description> <![CDATA[
<pre>
+++ Sunday 15 June 2025 +++


Back to generating FODT
=======================

For us, users of Open Source software, there are always
some challenges to collaborate with the rest of the world,
jailed by propriety solutions created by Microsoft or
Apple.

For years, I could send simple ODT-files to the publisher.
I wrote my articles in org-mode, and when ready, I used the
Emacs org-mode export functionality to create an ODT-file
from my org-mode text.

Now, the publisher requires a specific ODT-template (well,
actually, it is a MS Word docx template). It looks like a
handmade template, presumably geared towards easy
conversion for their publishing software. This templates
has many different elements, and for each element a
different style.

I tried to adapt the org-mode export functionality to
export into this new format, but the many different
elements and the use of their own names of the styles is a
big hurdle. In the end, I decided to abandon this route and
looked at writing an exporter myself.

FODT
----
The "Flat XML ODF"-File format is a format for ODT
documents. It consists of a single file, and uses the file
extension "fodt".

The more complex ODT-format consists of zip archive with
multiple XML files.

Compared to the ODT-format is much easier to generate a
FODT-file.

Simple org files
----------------
The articles are just headers, text and code, no tables or
any other fancy stuff. There are only three levels of
headers, the first level is just the title of the article,
the second level just the subtitle. The third level headers
are the headers that break up the text in chunks, to
prevent a wall of text, guiding the eye, and making the
article easier to read.

Because of this, writing an exporter to fodt seems doable.

Plan of attack
--------------
I took the "template" (just an example file they created in
MS Word), opened it in Libreoffice and saved it as a
fodt-file. After some analyzing I came to the following
plan of attack:

* Manually create a file with the different elements in it,
 and tune this until Libreoffice opens it without
 complaining.
* Add some entries in the org-structure-template-alist to
 quickly add some blocks fenced with tokens like
 `#+begin_intro' and `#+end_intro'.
* Create a parser that recognizes the elements in the
 org-mode file and call a function on each element and
 generate the text to export.
* Put the the XML intro and outro around the generated text.
* Test and tune until Libreoffice is happy with the resulting
 fodt-file.

In the past, I wrote a small elisp script that parses an
org mode file (actually, a denote org file) and exports it
into my phlog-format, so I could re-use that.

It works
--------
The after some trial-and-error I got a working elisp
script. Libreoffice opens the exported fodt-file without
complaining.

Fodt is XML, special chars in the text have to be treated
so they don't break the XML-code.
Special chars, like `<', `>', and `&' have to be converted,
and probably some others too. For this, I still must add
some functionality to the elisp script, but that shouldn't
be too hard (famous last words).


Last edited: $Date: 2025/06/15 08:49:59 $
  </pre>
  ]]></description>
</item>
</channel>
</rss>