From c1a925e771c21b2e8896634d199d257d9cf1c74d Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sun, 28 Aug 2022 10:05:54 +0100 Subject: Update content for html --- contact-information.html | 42 --- gemfeed/2008-06-26-perl-poetry.html | 4 +- ...12-29-using-my-nokia-n95-for-fixing-my-mta.html | 4 +- gemfeed/2010-04-09-standard-ml-and-haskell.html | 2 +- ...010-05-07-lazy-evaluation-with-standarn-ml.html | 4 +- .../2010-05-09-the-fype-programming-language.html | 4 +- .../2011-05-07-perl-daemon-service-framework.html | 4 +- .../2014-03-24-the-fibonacci.pl.c-polyglot.html | 2 +- ...2-05-run-debian-on-your-phone-with-debroid.html | 4 +- gemfeed/2016-04-03-offsite-backup-with-zfs.html | 4 +- ...04-09-jails-and-zfs-on-freebsd-with-puppet.html | 4 +- .../2016-04-16-offsite-backup-with-zfs-part2.html | 4 +- ...inning-up-my-own-authoritative-dns-servers.html | 2 +- ...20-object-oriented-programming-with-ansi-c.html | 4 +- ...alistic-load-testing-with-ioriot-for-linux.html | 4 +- ...-22-dtail-the-distributed-log-tail-program.html | 2 +- gemfeed/2021-04-24-welcome-to-the-geminispace.html | 2 +- ...021-05-16-personal-bash-coding-style-guide.html | 4 +- ...5-gemtexter-one-bash-script-to-rule-it-all.html | 4 +- gemfeed/2021-07-04-the-well-grounded-rubyist.html | 2 +- ...-08-01-on-being-pedantic-about-open-source.html | 7 +- gemfeed/2021-09-12-keep-it-simple-and-stupid.html | 5 +- gemfeed/2021-10-22-defensive-devops.html | 4 +- gemfeed/2021-11-29-bash-golf-part-1.html | 5 +- ...-12-26-how-to-stay-sane-as-a-devops-person.html | 4 +- gemfeed/2022-01-01-bash-golf-part-2.html | 4 +- gemfeed/2022-01-23-welcome-to-the-foo.zone.html | 4 +- ...022-02-04-computer-operating-systems-i-use.html | 4 +- gemfeed/2022-03-06-the-release-of-dtail-4.0.0.html | 4 +- gemfeed/2022-04-10-creative-universe.html | 4 +- .../2022-05-27-perl-is-still-a-great-choice.html | 4 +- gemfeed/2022-06-15-sweating-the-small-stuff.html | 4 +- ...22-07-30-lets-encrypt-with-openbsd-and-rex.html | 4 +- ...2-08-27-gemtexter-1.1.0-lets-gemtext-again.html | 2 +- gemfeed/atom.xml | 363 ++++++++++++++------- index.html | 3 +- 36 files changed, 312 insertions(+), 219 deletions(-) delete mode 100644 contact-information.html diff --git a/contact-information.html b/contact-information.html deleted file mode 100644 index 53277ea7..00000000 --- a/contact-information.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - -Contact information - - - - - -

Contact information

-

Personal information

- -Paul Buetow
-

My sites

-foo.zone - My personal website and blog
-foo.zone - My personal website and blog (Gemini)
-codeberg.org/snonux - My personal Codeberg page
-dtail.dev - DTail at Mimecast
-github.com/mimecast/ioriot - I/O Riot at Mimecast (currently unmaintained)
-irregular.ninja - My street photography site (warn: multiple MBs, it's photos after all)
-

Social Media

-

I am sharing articles that I found interesting regularly these social media channels:

-My LinkedIn profile
-twitter.com/snonux - My Twitter profile
-t.me/snonux - My Telegram channel
-

Internet Relay Chat

-

I am on irc.german-elite.net in #talk, #coding, #linux (and maybe in others) as "rantanplan" or sometimes as "snonux".

-

Site mirrors

-Check out all mirrors of this site (Gemini as well as HTTP+HTML)
-

That's all for now...

-Go back to the main site
- - - diff --git a/gemfeed/2008-06-26-perl-poetry.html b/gemfeed/2008-06-26-perl-poetry.html index c8c2631e..7d5ea6d9 100644 --- a/gemfeed/2008-06-26-perl-poetry.html +++ b/gemfeed/2008-06-26-perl-poetry.html @@ -9,6 +9,7 @@

Perl Poetry

+

Published by Paul at 2008-06-26, last updated at 2021-05-04

  '\|/'                                  *
 -- * -----
@@ -31,7 +32,6 @@ _~~|~/_|_|__/|~~~~~~~ |  / ~~~~~ |   | ~~~~~~~~
              ~ ~ ~~~ _|| (_/ (___)_| |Nov291999
                     (__)         (____)
 

-

Published by Paul at 2008-06-26, last updated at 2021-05-04

Here are some Perl Poems I wrote. They don't do anything useful when you run them, but they don't produce a compiler error either. They only exist for fun and demonstrate what you can do with Perl syntax.

Wikipedia: "Perl poetry is the practice of writing poems that can be compiled as legal Perl code, for example the piece known as Black Perl. Perl poetry is made possible by the large number of English words that are used in the Perl language. New poems are regularly submitted to the community at PerlMonks."

https://en.wikipedia.org/wiki/Perl
@@ -156,7 +156,7 @@ This is perl, v5.8.8 built for i386-freebsd-64int

More...

Did you like what you saw? Have a look at Codeberg to see my other poems too:

https://codeberg.org/snonux/perl-poetry
-

E-Mail me your comments to paul at buetow dot org!

+

E-Mail me your comments to paul at buetow dot org! :-)

Go back to the main site

Using my Nokia N95 for fixing my MTA

+

Published by Paul at 2008-12-29, last updated at 2021-12-01

 
            _
@@ -25,7 +26,6 @@
 _jgs_\|//_\\|///_\V/_\|//__
                       Art by Joan Stark
 

-

Published by Paul at 2008-12-29, last updated at 2021-12-01

The last week I was in Vidin, Bulgaria with no internet access and I had to fix my MTA (Postfix) at host.0.buetow.org which serves E-Mail for all my customers at P. B. Labs. Good, that I do not guarantee high availability on my web services (I've to do a full time job somewhere else too).

My first attempt to find an internet café, which was working during Christmastime, failed. However, I found with my N95 phone lots of free WLAN hotspots. The hotspots refused me logging into my server using SSH as I have configured a non-standard port for SSH for security reasons. Without knowing the costs, I used the GPRS internet access of my German phone provider (yes, I had to pay roaming fees).

Picture of a Nokia N95
@@ -38,7 +38,7 @@ _jgs_\|//_\\|///_\V/_\|//__

It was a pain in the ass. My next mobile phone MUST have a full QWERTY keyboard. This would have made my life lots easier. :)

At the moment I am in Sofia, Bulgaria. Here I can use at least an unprotected WLAN hotspot which belongs to one of the neighbours which I don’t know in person, and it is not blocking any port at all :)

-

E-Mail me your comments to paul at buetow dot org!

+

E-Mail me your comments to paul at buetow dot org! :-)

Go back to the main site

E-Mail me your comments to paul at buetow dot org!

+

E-Mail me your comments to paul at buetow dot org! :-)

Go back to the main site

Lazy Evaluation with Standard ML

+

Published by Paul at 2010-05-07

 
       _____|~~\_____      _____________
@@ -21,7 +22,6 @@
  ---------------'--\\\\      .--'          -Glyde-
                               `||||
 

-

Published by Paul at 2010-05-07

In contrast to Haskell, Standard SML does not use lazy evaluation by default but an eager evaluation.

https://en.wikipedia.org/wiki/Eager_evaluation
https://en.wikipedia.org/wiki/Lazy_evaluation
@@ -92,7 +92,7 @@ first 10 nat_pairs_not_null -}
http://www.haskell.org/
-

E-Mail me your comments to paul at buetow dot org!

+

E-Mail me your comments to paul at buetow dot org! :-)

Go back to the main site

The Fype Programming Language

+

Published by Paul at 2010-05-09, last updated at 2021-05-05

       ____                                      _        __       
      / / _|_   _ _ __   ___    _   _  ___  __ _| |__    / _|_   _ 
@@ -17,7 +18,6 @@
 (_)_/ |_|  \__, | .__/ \___|   \__, |\___|\__,_|_| |_(_)_|  \__, |
            |___/|_|            |___/                        |___/ 
 

-

Published by Paul at 2010-05-09, last updated at 2021-05-05

Fype is an interpreted programming language created by me for learning and fun. The interpreter is written in C. It has been tested on FreeBSD and NetBSD and may also work on other Unix like operating systems such as Linux based ones. Besides learning and fun, there is no other use case of why Fype exists as many other programming languages are much faster and more powerful.

The Fype syntax is straightforward and uses a maximum look ahead of 1 and an effortless top-down parsing mechanism. Fype is parsing and interpreting its code simultaneously. This means that syntax errors are only detected during program runtime.

Fype is a recursive acronym and means "Fype is For Your Program Execution" or "Fype is Free Yak Programmed for ELF". You could also say, "It's not a hype - it's Fype!".

@@ -407,7 +407,7 @@ BB

May the source be with you

You can find all of this on the GitHub page. There is also an "examples" folders containing some Fype scripts!

https://codeberg.org/snonux/fype
-

E-Mail me your comments to paul at buetow dot org!

+

E-Mail me your comments to paul at buetow dot org! :-)

Go back to the main site

Perl Daemon (Service Framework)

+

Published by Paul at 2011-05-07, last updated at 2021-05-07

    a'!   _,,_ a'!   _,,_     a'!   _,,_
      \\_/    \  \\_/    \      \\_/    \.-,
       \, /-( /'-,\, /-( /'-,    \, /-( /
       //\ //\\   //\ //\\       //\ //\\jrei
 

-

Published by Paul at 2011-05-07, last updated at 2021-05-07

PerlDaemon is a minimal daemon for Linux and other Unix like operating systems programmed in Perl. It is a minimal but pretty functional and fairly generic service framework. This means that it does not do anything useful other than providing a framework for starting, stopping, configuring and logging. To do something useful, a module (written in Perl) must be provided.

Features

PerlDaemon supports:

@@ -138,7 +138,7 @@ sub do ($) {

May the source be with you

You can find PerlDaemon (including the examples) at:

https://codeberg.org/snonux/perldaemon
-

E-Mail me your comments to paul at buetow dot org!

+

E-Mail me your comments to paul at buetow dot org! :-)

Go back to the main site

It's entertaining to play with :-).

-

E-Mail me your comments to paul at buetow dot org!

+

E-Mail me your comments to paul at buetow dot org! :-)

Go back to the main site

Run Debian on your phone with Debroid

+

Published by Paul at 2015-12-05, last updated at 2021-05-16

  ____       _               _     _ 
 |  _ \  ___| |__  _ __ ___ (_) __| |
@@ -17,7 +18,6 @@
 |____/ \___|_.__/|_|  \___/|_|\__,_|
                                     
 

-

Published by Paul at 2015-12-05, last updated at 2021-05-16

You can use the following tutorial to install a full-blown Debian GNU/Linux Chroot on an LG G3 D855 CyanogenMod 13 (Android 6). First of all, you need to have root permissions on your phone, and you also need to have the developer mode activated. The following steps have been tested on Linux (Fedora 23).


Foreword

@@ -156,7 +156,7 @@ chmod +x /data/local/userinit.sh exit

Reboot & test! Enjoy!

-

E-Mail me your comments to paul at buetow dot org!

+

E-Mail me your comments to paul at buetow dot org! :-)

Go back to the main site

Offsite backup with ZFS

+

Published by Paul at 2016-04-03

  ________________
 |# :           : #|
@@ -21,7 +22,6 @@
 |    ||  |     |  |
 \____||__|_____|__|
 

-

Published by Paul at 2016-04-03

Offsite backup with ZFS Part 1 (you are reading this atm.)
Offsite backup with ZFS Part 2

Please don't lose all my pictures again!

@@ -35,7 +35,7 @@

The solution is adding another USB drive (2TB) with an encryption container (GELI) and a ZFS pool. The GELI encryption requires a secret key and a secret passphrase. I am updating the data to that drive once every three months (my calendar is reminding me about it), and afterwards, I keep that drive at a secret location outside of my apartment. All the information needed to decrypt (mounting the GELI container) is stored at another (secure) place. Key and passphrase are kept at different sites, though. Even if someone knew of it, he would not be able to decrypt it as some additional insider knowledge would be required as well.

Walking one round less

I am thinking of buying a second 2TB USB drive and setting it up the same way as the first one. So I could alternate the backups. One drive would be at the secret location, and the other drive would be at home. And these drives would swap place after each cycle. This would give some security about the failure of that drive, and I would have to go to the secret location only once (swapping the drives) instead of twice (picking that drive up to update the data + bringing it back to the remote location).

-

E-Mail me your comments to paul at buetow dot org!

+

E-Mail me your comments to paul at buetow dot org! :-)

Go back to the main site

Jails and ZFS with Puppet on FreeBSD

+

Published by Paul at 2016-04-09

             __     __
            (( \---/ ))
@@ -28,7 +29,6 @@
               \     `.     hjw
                \      `.
 

-

Published by Paul at 2016-04-09

Over the last couple of years I wrote quite a few Puppet modules in order to manage my personal server infrastructure. One of them manages FreeBSD Jails and another one ZFS file systems. I thought I would give a brief overview in how it looks and feels.

ZFS

The ZFS module is a pretty basic one. It does not manage ZFS pools yet as I am not creating them often enough which would justify implementing an automation. But let's see how we can create a ZFS file system (on an already given ZFS pool named ztank):

@@ -371,7 +371,7 @@ Notice: Finished catalog run in 206.09 seconds
  • ...etc
  • All done in a pretty automated manor.

    -

    E-Mail me your comments to paul at buetow dot org!

    +

    E-Mail me your comments to paul at buetow dot org! :-)

    Go back to the main site

    Offsite backup with ZFS (Part 2)

    +

    Published by Paul at 2016-04-16

      ________________
     |# :           : #|
    @@ -23,13 +24,12 @@
                      |    ||  |     |  |
                      \____||__|_____|__|
     

    -

    Published by Paul at 2016-04-16

    Offsite backup with ZFS Part 1
    Offsite backup with ZFS Part 2 (you are reading this atm.)

    I enhanced the procedure a bit. From now on, I have two external 2TB USB hard drives. Both are set up precisely the same way. To decrease the probability that both drives will not fail simultaneously, they are of different brands. One drive is kept at a secret location. The other one is held at home, right next to my HP MicroServer.

    Whenever I update the offsite backup, I am doing it to the drive, which is kept locally. Afterwards, I bring it to the secret location, swap the drives, and bring the other back home. This ensures that I will always have an offsite backup available at a different location than my home - even while updating one copy of it.

    Furthermore, I added scrubbing ("zpool scrub...") to the script. It ensures that the file system is consistent and that there are no bad blocks on the disk and the file system. To increase the reliability, I also run a "zfs set copies=2 zroot". That setting is also synchronized to the offsite ZFS pool. ZFS stores every data block to disk twice now. Yes, it consumes twice as much disk space, making it better fault-tolerant against hardware errors (e.g. only individual disk sectors going bad).

    -

    E-Mail me your comments to paul at buetow dot org!

    +

    E-Mail me your comments to paul at buetow dot org! :-)

    Go back to the main site
  • The BIND server will notify all slave DNS servers (at the moment, only one). And it will transfer the new version of the zone.
  • That's much more comfortable now than manually clicking at some web UIs at Schlund Technologies.

    -

    E-Mail me your comments to paul at buetow dot org!

    +

    E-Mail me your comments to paul at buetow dot org! :-)

    Go back to the main site

    Object oriented programming with ANSI C

    +

    Published by Paul at 2016-11-20, updated 2022-01-29

       ___   ___  ____        ____ 
      / _ \ / _ \|  _ \      / ___|
    @@ -17,7 +18,6 @@
      \___/ \___/|_|         \____|
                                   
     

    -

    Published by Paul at 2016-11-20, updated 2022-01-29

    You can do a little of object-oriented programming in the C Programming Language. However, that is, in my humble opinion, limited. It's easier to use a different programming language than C for OOP. But still it's an interesting exercise to try using C for this.

    Function pointers

    Let's have a look at the following sample program. All you have to do is to add a function pointer such as "calculate" to the definition of struct "something_s". Later, during the struct initialization, assign a function address to that function pointer:

    @@ -84,7 +84,7 @@ mult.calculate(mult,a,b));

    Big C software projects, like Linux, also follow some OOP techniques:

    https://lwn.net/Articles/444910/

    C is a very old programming language with it's quirks. This might be one of the reasons why Linux will also let Rust code in.

    -

    E-Mail me your comments to paul at buetow dot org!

    +

    E-Mail me your comments to paul at buetow dot org! :-)

    Go back to the main site

    Realistic load testing with I/O Riot for Linux

    +

    Published by Paul at 2018-06-01, last updated at 2021-05-08

            .---.
           /     \
    @@ -19,7 +20,6 @@
        /\_>  <_/ \
     jgs\__/'---'\__/
     

    -

    Published by Paul at 2018-06-01, last updated at 2021-05-08

    Foreword

    This text first was published in the german IT-Administrator computer Magazine. 3 years have passed since and I decided to publish it on my blog too.

    https://www.admin-magazin.de/Das-Heft/2018/06/Realistische-Lasttests-mit-I-O-Riot
    @@ -131,7 +131,7 @@ Total time: 1213.00s Bonnie++
    Graphite
    Memory mapped I/O
    -

    E-Mail me your comments to paul at buetow dot org!

    +

    E-Mail me your comments to paul at buetow dot org! :-)

    Go back to the main site

    Open Source

    Mimecast highly encourages you to have a look at DTail and submit an issue for any features you would like to see. Have you found a bug? Maybe you just have a question or comment? If you want to go a step further: We would also love to see pull requests for any features or improvements. Either way, if in doubt just contact us via the DTail GitHub page.

    https://dtail.dev
    -

    E-Mail me your comments to paul at buetow dot org!

    +

    E-Mail me your comments to paul at buetow dot org! :-)

    Go back to the main site

    Check out one of the following links for more information about Gemini. For example, you will find a FAQ that explains why the protocol is named Gemini. Many Gemini capsules are dual-hosted via Gemini and HTTP(S) so that people new to Gemini can sneak peek at the content with a regular web browser. Some people go as far as tri-hosting all their content via HTTP(S), Gemini and Gopher.

    gemini://gemini.circumlunar.space
    https://gemini.circumlunar.space
    -

    E-Mail me your comments to paul at buetow dot org!

    +

    E-Mail me your comments to paul at buetow dot org! :-)

    Go back to the main site

    Personal Bash coding style guide

    +

    Published by Paul at 2021-05-16

        .---------------------------.
       /,--..---..---..---..---..--. `.
    @@ -21,7 +22,6 @@
     //  \\               //  \\ |===||  hjw
     "\__/"---------------"\__/"-+---+'
     

    -

    Published by Paul at 2021-05-16

    Lately, I have been polishing and writing a lot of Bash code. Not that I never wrote a lot of Bash, but now as I also looked through the Google Shell Style Guide, I thought it is time also to write my thoughts on that. I agree with that guide in most, but not in all points.

    Google Shell Style Guide

    My modifications

    @@ -300,7 +300,7 @@ fi

    Advanced Bash learning pro tip

    I also highly recommend having a read through the "Advanced Bash-Scripting Guide" (not from Google). I use it as the universal Bash reference and learn something new every time I look at it.

    Advanced Bash-Scripting Guide
    -

    E-Mail me your comments to paul at buetow dot org!

    +

    E-Mail me your comments to paul at buetow dot org! :-)

    Go back to the main site

    Gemtexter - One Bash script to rule it all

    +

    Published by Paul at 2021-06-05

                                                                    o .,<>., o
                                                                    |\/\/\/\/|
    @@ -49,7 +50,6 @@
      \___.>''-.||:.__,'     SSt |_______>              <_____:::.         . . \  _/
                                                                `+a:f:......jrei'''
     

    -

    Published by Paul at 2021-06-05

    You might have read my previous blog post about entering the Geminispace, where I pointed out the benefits of having and maintaining an internet presence there. This whole site (the blog and all other pages) is composed in the Gemtext markup language.

    Welcome to the Geminispace

    This comes with the benefit that I can write content in my favourite text editor (Vim).

    @@ -131,7 +131,7 @@ assert::equals "$(generate::make_link md "$gemtext")" \

    Conclusion

    It was quite a lot of fun writing Gemtexter. It's a relatively small project, but given that I worked on that in my spare time once in a while, it kept me busy for several weeks.

    I finally revamped my personal internet site and started to blog again. I wanted the result to be exactly how it is now: A slightly retro-inspired internet site built for fun with unconventional tools.

    -

    E-Mail me your comments to paul at buetow dot org!

    +

    E-Mail me your comments to paul at buetow dot org! :-)

    Go back to the main site

    I liked this book so much so that I even bought myself a (used) paper copy of it. To my delight, there was also a free eBook version in ePub format included, which I now have on my Kobo Forma eBook reader. :-)

    Perl

    Will I abandon my beloved Perl? Probably not. There are also some Perl scripts I use at work. But unfortunately I only have a limited amount of time and I have to use it wisely. I might look into Raku (formerly known as Perl 6) next year and use it for a personal pet project, who knows. :-). I also highly recommend reading the two Perl books "Modern Perl" and "Higher-Order Perl".

    -

    E-Mail me your comments to paul at buetow dot org!

    +

    E-Mail me your comments to paul at buetow dot org! :-)

    Go back to the main site

    On being Pedantic about Open-Source

    +

    Published by Paul at 2021-08-01

                                                __
                                    _____....--' .'
    @@ -20,7 +21,6 @@
     |                                      |   `---'
     '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^' LGB - Art by lgbearrd
     

    -

    Published by Paul at 2021-08-01

    I believe that it is essential to always have free and open-source alternatives to any kind of closed-source proprietary software available to choose from. But there are a couple of points you need to take into consideration.

    The costs of open-source

    One benefit of using open-source software is that it doesn't cost anything, right? That's correct in many cases. However, in some cases you still need to spend a significant amount of time configuring the software to work for you. It will be more expensive to use open-source software than proprietary commercial one if you aren't careful.

    @@ -42,7 +42,8 @@

    One of the main conceptions about open-source software is that it is more secure than closed-source software because everybody can read and fix the code. Is that actually true? You can only be sure when you audit the code by yourself. If you are like me, you won't have time to audit all the open-source software you use. It's impossible to audit more than 100 million lines of Linux kernel code. Static code analysis tools come in handy here, but they still require humans to look at the results.

    Security bugs in open-source projects are exposed to the public and fixed quickly, while we don't know exactly what happens to security bugs in closed-source ones. Still, hackers and security specialists can find them through reverse engineering and penetration testing. Overall, thinking of security, In my opinion it is still better to prefer open-source software because the more significant the project, the higher the probability that security bugs are found and fixed as more parties are looking into it. Furthermore, provided you have the necessary resources, you could still deduct an audit by yourself. The latter especially happens when companies with its own security and penetration testing departments are evaluating the use of open-source. This is something not every company can afford though.

    Always watch out for open-source alternatives

    -

    Do you need Microsoft Word? Why don't you just use the Vim text editor or GNU Emacs to write your letters? If that's too nerdy, you can still use open-source alternatives such as AbiWord or LibreOffice. Larger organizations have the tendency to standardize the software their employees have to use. Unfortunately, as Microsoft Word is the de-facto standard text processing program, most companies prefer Word over LibreOffice. Same with Microsoft Excel vs LibreOffice Calc or other spreadsheet alternatives like Gnumeric. I don't know why that is; please E-Mail me, and I will update this blog article. I guess the devil lies in the detail here.

    +

    Do you need Microsoft Word? Why don't you just use the Vim text editor or GNU Emacs to write your letters? If that's too nerdy, you can still use open-source alternatives such as AbiWord or LibreOffice. Larger organizations have the tendency to standardize the software their employees have to use. Unfortunately, as Microsoft Word is the de-facto standard text processing program, most companies prefer Word over LibreOffice. Same with Microsoft Excel vs LibreOffice Calc or other spreadsheet alternatives like Gnumeric. I don't know why that is; please....

    +

    E-Mail me your comments to paul at buetow dot org! :-)

    I only use free and open-source operating systems on my personal Laptops, Desktop PCs and servers (FreeBSD and Linux based ones). Most of the programs and apps I use on them are free and open-source as well, and I am comfortable with it for over twenty years. Exceptions are the BIOSes and some firmwares of my devices. I also use Skype as most of my friends and family are using it. They are, unfortunately, proprietary software still. But I will be looking into Matrix as a Skype alternative when I have time. There are also open BIOS alternatives, but they usually don't work on my devices.

    What about mobile?

    I struggle to go 100% open-source on my Smartphone. I use a Samsung phone with the stock Android as provided by Samsung. I love the device as it is large enough to use as a portable reading and note-taking device, and it can also take decent pictures. As a cloud backup solution, I have my own NextCloud server (open-source). Android is mainly open-source software, but many closed parts are still included. I replaced most of the standard apps with free and open-source variants from the F-Droid store though.

    @@ -71,7 +72,7 @@

    Conclusion

    Should you be pedantic about open-source software? It depends. It depends on your fundamental values and how much time you are ready to invest. Open-source software is not just free as in money, but also free as in freedom. You will gain back complete control of your personal data. Unfortunately, installing ready proprietary apps from the Play Store is much more convenient than building up a trustworthy open-source-based infrastructure by yourself. As a guideline, use proprietary software and services with caution. Be mindful about your choices and where you leave your digital fingerprints. In doubt, think less is more. Do you really need this new shiny app? What benefit does it provide to you? Probably you don't really need that shiny new app.

    You have better chances when you know how to manage your own server and install and manage alternatives to the big cloud providers by yourself. I have the advantage that I have work experience as a Linux Systems Administrator here. I mentioned NextCloud already. I use NextCloud for online photo and file storage, contact and calendar sync and as an RSS news feed server. You could do the same with your own E-Mail server, you can also host your own website and blog. I also mentioned Matrix as a Skype alternative (which could also be an alternative to WhatsApp, Skype, Telegram, Viber, ...). I don't know a lot about Matrix yet, but it seems to be a very neat alternative. I am ready to invest time in it as one of my future personal pet projects. Not only because I think it's better, but also because for fun and as a hobby. But this doesn't mean that I invest *all* of my personal free time in it.

    -

    E-Mail me your comments to paul at buetow dot org!

    +

    E-Mail me your comments to paul at buetow dot org! :-)

    Go back to the main site

    Keep it simple and stupid

    +

    Published by Paul at 2021-09-12, last updated at 2022-04-21

       _______________                        |*\_/*|_______
       |  ___________  |     .-.     .-.      ||_/-\_|______  |
    @@ -23,7 +24,6 @@
      /  ************  \                      /  ************  \
     --------------------                    --------------------
     

    -

    Published by Paul at 2021-09-12, last updated at 2022-04-21

    A robust computer system must be kept simple and stupid (KISS). The fancier the system is, the more can break. Unfortunately, most systems tend to become complex and challenging to maintain in today's world. In the early days, so I was told, engineers understood every part of the system, but nowadays, we see more of the "lasagna" stack. One layer or framework is built on top of another layer, and in the end, nobody has got a clue what's going on.

    Need faster hardware

    This not just makes the system much more complex, difficult to maintain and challenging to troubleshoot, but also slow. So more experts are needed to support it. Also, newer and faster hardware is required to make it run smoothly. Often, it's so much easier to buy speedier hardware than rewrite a whole system from scratch from the bottom-up. The latter would require much more resources in the short run, but in the long run, it should pay off. Unfortunately, many project owners scare away from it as they only want to get their project done and then move on.

    @@ -61,7 +61,8 @@

    There is, however, a trap. The more you spend time with things, the more these things feel natural to you and you become an expert. The more you become an expert, the more you introduce more abstractions and other clever ways of doing things. For you, things seem to be KISS still, but another person may not be an expert and might not understand what you do. One of the fundamental challenges is to keep things really KISS. You might add abstraction upon abstraction to a system and don't even notice it until it is too late.

    Other relevant readings

    Is the madness ever going to end?
    -

    Enough ranted for now :-). E-Mail me your comments to paul at buetow dot org!

    +

    Enough ranted for now!

    +

    E-Mail me your comments to paul at buetow dot org! :-)

    Controversially, a lack of features is a feature. Enjoy your peace an quiet. - Michael W Lucas

    Go back to the main site

    Defensive DevOps

    +

    Published by Paul at 2021-10-22

                                                                 c=====e
                                                                    H
    @@ -18,7 +19,6 @@
        (__((__((___()()()------------------------------------'  |_____|
                                ASCII Art by Clyde Watson
     

    -

    Published by Paul at 2021-10-22

    I have seen many different setups and infrastructures during my carreer. My roles always included front-line ad-hoc fire fighting production issues. This often involves identifying and fixing these under time pressure, without the comfort of 2-week-long SCRUM sprints and without an exhaustive QA process. I also wrote a lot of code (Bash, Ruby, Perl, Go, and a little Java), and I followed the typical software development process, but that did not always apply to critical production issues.

    Unfortunately, no system is 100% reliable, and you can never be prepared for a subset of the possible problem-space. IT infrastructures can be complex. Not even mentioning Kubernetes yet, a Microservice-based infrastructure can complicate things even further. You can take care of 99% of all potential problems by following all DevOps best practices. Those best practices are not the subject of this blog post; this post is about the sub 1% of the issues arising from nowhere you can't be prepared for.

    Is there a software bug in a production, even though the software passed QA (after all, it is challenging to reproduce production behaviour in an artificial testing environment) and the software didn't show any issues running in production until a special case came up just now after it got deployed to production a week ago? Are there multiple hardware failure happening which causes loss of service redundancy or data inaccessibility? Is the automation of external customers connected to our infrastructure putting unexpectedly extra pressure on your grid, driving higher latencies and putting the SLAs at risk? You bet the solution is: Sysadmins, SREs and DevOps Engineers to the rescue.

    @@ -71,7 +71,7 @@

    Retrospective

    For every major incident, you need to follow up with an incident retrospective. A blame-free, detailed description of exactly what went wrong to cause the incident, along with a list of steps to take to prevent a similar incident from occurring again in the future.

    This usually means creating one or more tickets, which will be dealt with soon. Once the permanent fix is deployed, you can remove your ad-hoc automation and monitoring around it and focus on your regular work again.

    -

    E-Mail me your comments to paul at buetow dot org!

    +

    E-Mail me your comments to paul at buetow dot org! :-)

    Go back to the main site

    Bash Golf Part 1

    +

    Published by Paul at 2021-11-29, last updated at 2022-01-05

     
          '\                   .  .                        |>18>>
    @@ -20,7 +21,6 @@
     jgs^^^^^^^`^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                                 Art by Joan Stark
     

    -

    Published by Paul at 2021-11-29, last updated at 2022-01-05

    This is the first blog post about my Bash Golf series. This series is about random Bash tips, tricks and weirdnesses I came across. It's a collection of smaller articles I wrote in an older (in German language) blog, which I translated and refreshed with some new content.

    Bash Golf Part 1 (you are reading this atm.)
    Bash Golf Part 2
    @@ -375,7 +375,8 @@ bash: line 1: 1/10.0 : syntax error: invalid arithmetic operator (error token is ❯ bc <<< 'scale=2; 1/10' .10
    -

    See you later for the next post of this series. E-Mail me your comments to paul at buetow dot org!

    +

    See you later for the next post of this series.

    +

    E-Mail me your comments to paul at buetow dot org! :-)

    Go back to the main site

    How to stay sane as a DevOps person

    +

    Published by Paul at 2021-12-26, last updated at 2022-01-12

                                          )
                                  )      ((     (
    @@ -30,7 +31,6 @@
     -----||-/------`-._/||-o--o---o---
       ~~~~~'
     

    -

    Published by Paul at 2021-12-26, last updated at 2022-01-12

    Log4shell (CVE-2021-44228) made it clear, once again, that working in information technology is not an easy job (especially when you are a DevOps person). I thought it would be interesting to summarize a few techniques to help you to relax.

    (PS: When I mean DevOps, I also mean Site Reliability Engineers and Sysadmins. I believe SRE, DevOps Engineer and Sysadmin are just synonym titles for the same job).

    https://en.wikipedia.org/wiki/Log4Shell
    @@ -84,7 +84,7 @@

    More

    Another blog post worth reading:

    https://unixsheikh.com/articles/how-to-stay-sane-in-todays-world-of-tech.html
    -

    E-Mail me your comments to paul at buetow dot org!

    +

    E-Mail me your comments to paul at buetow dot org! :-)

    Go back to the main site

    Bash Golf Part 2

    +

    Published by Paul at 2022-01-01, last updated at 2022-01-05

     
         '\       '\                   .  .                |>18>>
    @@ -20,7 +21,6 @@
     jgs^^^^^^^`^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                             Art by Joan Stark, mod. by Paul Buetow
     

    -

    Published by Paul at 2022-01-01, last updated at 2022-01-05

    This is the second blog post about my Bash Golf series. This series is random Bash tips, tricks and weirdnesses I came across. It's a collection of smaller articles I wrote in an older (in German language) blog, which I translated and refreshed with some new content.

    Bash Golf Part 1
    Bash Golf Part 2 (you are reading this atm.)
    @@ -404,7 +404,7 @@ PAUL:X:1000:1000:PAUL BUETOW:/HOME/PAUL:/BIN/BASH ❯ echo $? 1
    -

    E-Mail me your comments to paul at buetow dot org!

    +

    E-Mail me your comments to paul at buetow dot org! :-)

    Go back to the main site

    Welcome to the foo.zone

    +

    Published by Paul at 2022-01-23

       __                                  
      / _| ___   ___   _______  _ __   ___ 
    @@ -17,7 +18,6 @@
     |_|  \___/ \___(_)___\___/|_| |_|\___|
                                           
     

    -

    Published by Paul at 2022-01-23

    I don't count this as a real blog post, but more of an announcement (I aim to write one real post once monthly). From now on, "foo.zone" is the new address of this site. All other addresses will still forward to it and eventually (based on the traffic still going through) will be deactivated.

    As you can read on Wikipedia, "foo" is, alongside to "bar" and "baz", a metasyntactic variable (you know what I mean if you are a programmer or IT person):

    https://en.wikipedia.org/wiki/Metasyntactic_variable
    @@ -39,7 +39,7 @@

    As a funny bit, I almost chose "foo.surf" over "foo.zone" as in "surfing this site", but then decided against it as I would have to tell everyone that I am not into water sports so much. Well, on the other hand, I now may have to explain to non-programmers that I am not a fan of the rock band "Foo Fighters". But that will be acceptable, as I don't expect "normal" people visiting the foo zone as much anyway. If you reached as far, I have to congratulate you. You are not a normal person.

    What about my old hosts

    The host buetow.org will stay. However, not as the primary address for this site. I will keep using it for my personal internet infrastructure as well as for most of my E-Mail addresses. I used buetow.org for that over the past 10 years already anyway and that won't change any time soon. I don't know what I am going to do with snonux.de in the long run. A .de SLD (for Germany) is pretty cheap, so I might just keep it for now.

    -

    E-Mail me your comments to paul at buetow dot org!

    +

    E-Mail me your comments to paul at buetow dot org! :-)

    Go back to the main site

    Computer operating systems I use(d)

    +

    Published by Paul at 2022-02-04, updated 2022-02-18

                   /(        )`
                   \ \___   / |
    @@ -29,7 +30,6 @@
       (FL)   ,'  ,-----'   |        \
              `--{__________)        \/   "Berkeley Unix Daemon"
     

    -

    Published by Paul at 2022-02-04, updated 2022-02-18

    This is a list of Operating Systems I currently use. This list is in no particular order and also will be updated over time. The very first operating system I used was MS-DOS (mainly for games) and the very first Unix like operating system I used was SuSE Linux 5.3. My first smartphone OS was Symbian on a clunky Sony Ericsson device.

    Fedora Linux

    Fedora Linux is the operating system I use on my primary (personal) laptop. It's a ThinkPad X1 Carbon Gen. 9. Lenovo which comes along with official Lenovo Linux support. I already noticed hardware firmware updates being installed directly through Fedora from Lenovo. Fedora is a real powerhouse, cutting-edge and reasonably stable at the same time. It's baked by Red Hat.

    @@ -158,7 +158,7 @@ GNU/kFreeBSD rhea.buetow.org 8.0-RELEASE-p5 FreeBSD 8.0-RELEASE-p5 #2: Sat Nov 2 Asteroids OS - Open source smartphone OS
    DragonFly BSD - Fork of FreeBSD 4
    Phosh (on postmarketOS) - A true Linux shell for the smartphone
    -

    E-Mail me your comments to paul at buetow dot org!

    +

    E-Mail me your comments to paul at buetow dot org! :-)

    Go back to the main site

    The release of DTail 4.0.0

    +

    Published by Paul at 2022-03-06

                                   ,_---~~~~~----._
                             _,,_,*^____      _____``*g*\"*,
    @@ -22,7 +23,6 @@
                             |                            |
                              |                           |
     

    -

    Published by Paul at 2022-03-06

    I have recently released DTail 4.0.0 and this blog post goes through all the new goodies. You can also read my previous post about DTail in case you wonder what DTail is:

    DTail - The distributed log tail program

    If you want to jump directly to DTail, do it here (there are nice animated gifs which demonstrates the usage pretty well):

    @@ -244,7 +244,7 @@ exec /usr/local/bin/dtailhealth --server localhost:2222

    I am a bit busy at the moment with two other pet projects of mine (one internal work-project, and one personal one, the latter you will read about in the next couple of months). If you have ideas (or even a patch), then please don't hesitate to contact me (either via E-Mail or a request at GitHub).

    Thanks!

    Paul

    -

    E-Mail me your comments to paul at buetow dot org!

    +

    E-Mail me your comments to paul at buetow dot org! :-)

    Go back to the main site

    Creative universe

    +

    Published by Paul at 2022-04-10, last updated at 2022-04-18

      .              +   .                .   . .     .  .
                        .                    .       .     *
    @@ -29,7 +30,6 @@
      .      .   . .   .   .   . .  +   .    .            +
                                              - the universe
     

    -

    Published by Paul at 2022-04-10, last updated at 2022-04-18

    Prelude

    I have been participating in an annual work-internal project contest (we call it Pet Project contest) since I moved to London and switched jobs to my current employer. I am very happy to say that I won a "silver" prize last week here 🎆. Over the last couple of years I have been a finalist in this contest six times and won some kind of prize five times. Some of my projects were also released as open source software. One had a magazine article published, and for another one I wrote an article on my employer's engineering blog. If you have followed all my posts on this blog (the one you are currently reading), then you have probably figured out what these projects were:

    DTail - The distributed log tail program
    @@ -99,7 +99,7 @@ learn () {
  • The Off Switch; Mark Cropley; Virgin Books
  • Ultralearning; Scott Young; Thorsons
  • -

    E-Mail me your comments to paul at buetow dot org!

    +

    E-Mail me your comments to paul at buetow dot org! :-)

    Go back to the main site

    Perl is still a great choice

    -

    Published by Paul at 2022-05-27, Comic source: XKCD

    +

    Perl (the Practical Extraction and Report Language) is a battle-tested, mature, multi-paradigm dynamic programming language. Note that it's not called PERL, neither P.E.R.L. nor Pearl. "Perl" is the name of the language and "perl" the name of the interpreter or the interpreter command.

    Unfortunately (it makes me sad), Perl's popularity has been declining over the last years as Google trends shows:


    @@ -93,7 +93,7 @@

    Btw.: Did you know that the first version of PHP was a set of Perl snippets? Only later, PHP became an independent programming language.

    https://www.perl.org
    -

    E-Mail me your comments to paul at buetow dot org!

    +

    E-Mail me your comments to paul at buetow dot org! :-)

    Go back to the main site