diff options
| author | Paul Buetow <paul@buetow.org> | 2022-01-22 19:11:46 +0000 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2022-01-22 19:11:46 +0000 |
| commit | cd1e89d7f3df2054ad0935e01bebda9b7a2ce3f2 (patch) | |
| tree | ac9ea92a20c190b28f0871d387ecfa038c1b7fc8 /gemfeed | |
| parent | 722ff0569b2f3ca4ce91a61cbb41b21c9c19e7dc (diff) | |
Publishing new version
Diffstat (limited to 'gemfeed')
27 files changed, 113 insertions, 113 deletions
diff --git a/gemfeed/2008-06-26-perl-poetry.html b/gemfeed/2008-06-26-perl-poetry.html index dfbac945..496f8a99 100644 --- a/gemfeed/2008-06-26-perl-poetry.html +++ b/gemfeed/2008-06-26-perl-poetry.html @@ -160,7 +160,7 @@ This is perl, v5.8.8 built for i386-freebsd-64int <p class="footer"> Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter</a> | served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | -<a href="https://www2.foo.surf/site-mirrors.html">Site Mirrors</a> +<a href="https://www2.foo.zone/site-mirrors.html">Site Mirrors</a> </p> </body> </html> diff --git a/gemfeed/2008-12-29-using-my-nokia-n95-for-fixing-my-mta.html b/gemfeed/2008-12-29-using-my-nokia-n95-for-fixing-my-mta.html index 7c154dcf..a2ebf62d 100644 --- a/gemfeed/2008-12-29-using-my-nokia-n95-for-fixing-my-mta.html +++ b/gemfeed/2008-12-29-using-my-nokia-n95-for-fixing-my-mta.html @@ -42,7 +42,7 @@ _jgs_\|//_\\|///_\V/_\|//__ <p class="footer"> Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter</a> | served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | -<a href="https://www2.foo.surf/site-mirrors.html">Site Mirrors</a> +<a href="https://www2.foo.zone/site-mirrors.html">Site Mirrors</a> </p> </body> </html> diff --git a/gemfeed/2010-04-09-standard-ml-and-haskell.html b/gemfeed/2010-04-09-standard-ml-and-haskell.html index 6aa365a9..dd5eb596 100644 --- a/gemfeed/2010-04-09-standard-ml-and-haskell.html +++ b/gemfeed/2010-04-09-standard-ml-and-haskell.html @@ -150,7 +150,7 @@ my_filter f l = foldr (make_filter_fn f) [] l <p class="footer"> Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter</a> | served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | -<a href="https://www2.foo.surf/site-mirrors.html">Site Mirrors</a> +<a href="https://www2.foo.zone/site-mirrors.html">Site Mirrors</a> </p> </body> </html> diff --git a/gemfeed/2010-05-07-lazy-evaluation-with-standarn-ml.html b/gemfeed/2010-05-07-lazy-evaluation-with-standarn-ml.html index 7567de06..d28dbec9 100644 --- a/gemfeed/2010-05-07-lazy-evaluation-with-standarn-ml.html +++ b/gemfeed/2010-05-07-lazy-evaluation-with-standarn-ml.html @@ -96,7 +96,7 @@ first 10 nat_pairs_not_null <p class="footer"> Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter</a> | served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | -<a href="https://www2.foo.surf/site-mirrors.html">Site Mirrors</a> +<a href="https://www2.foo.zone/site-mirrors.html">Site Mirrors</a> </p> </body> </html> diff --git a/gemfeed/2010-05-09-the-fype-programming-language.html b/gemfeed/2010-05-09-the-fype-programming-language.html index ae6cf205..aced5e4d 100644 --- a/gemfeed/2010-05-09-the-fype-programming-language.html +++ b/gemfeed/2010-05-09-the-fype-programming-language.html @@ -411,7 +411,7 @@ BB <p class="footer"> Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter</a> | served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | -<a href="https://www2.foo.surf/site-mirrors.html">Site Mirrors</a> +<a href="https://www2.foo.zone/site-mirrors.html">Site Mirrors</a> </p> </body> </html> diff --git a/gemfeed/2011-05-07-perl-daemon-service-framework.html b/gemfeed/2011-05-07-perl-daemon-service-framework.html index 60748171..4badde22 100644 --- a/gemfeed/2011-05-07-perl-daemon-service-framework.html +++ b/gemfeed/2011-05-07-perl-daemon-service-framework.html @@ -142,7 +142,7 @@ sub do ($) { <p class="footer"> Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter</a> | served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | -<a href="https://www2.foo.surf/site-mirrors.html">Site Mirrors</a> +<a href="https://www2.foo.zone/site-mirrors.html">Site Mirrors</a> </p> </body> </html> diff --git a/gemfeed/2014-03-24-the-fibonacci.pl.c-polyglot.html b/gemfeed/2014-03-24-the-fibonacci.pl.c-polyglot.html index a347e686..6c698a18 100644 --- a/gemfeed/2014-03-24-the-fibonacci.pl.c-polyglot.html +++ b/gemfeed/2014-03-24-the-fibonacci.pl.c-polyglot.html @@ -104,7 +104,7 @@ fib(10) = 55 <p class="footer"> Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter</a> | served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | -<a href="https://www2.foo.surf/site-mirrors.html">Site Mirrors</a> +<a href="https://www2.foo.zone/site-mirrors.html">Site Mirrors</a> </p> </body> </html> diff --git a/gemfeed/2015-12-05-run-debian-on-your-phone-with-debroid.html b/gemfeed/2015-12-05-run-debian-on-your-phone-with-debroid.html index 826f458d..bbf7a710 100644 --- a/gemfeed/2015-12-05-run-debian-on-your-phone-with-debroid.html +++ b/gemfeed/2015-12-05-run-debian-on-your-phone-with-debroid.html @@ -160,7 +160,7 @@ exit <p class="footer"> Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter</a> | served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | -<a href="https://www2.foo.surf/site-mirrors.html">Site Mirrors</a> +<a href="https://www2.foo.zone/site-mirrors.html">Site Mirrors</a> </p> </body> </html> diff --git a/gemfeed/2016-04-03-offsite-backup-with-zfs.html b/gemfeed/2016-04-03-offsite-backup-with-zfs.html index aff37a62..3d884aff 100644 --- a/gemfeed/2016-04-03-offsite-backup-with-zfs.html +++ b/gemfeed/2016-04-03-offsite-backup-with-zfs.html @@ -37,7 +37,7 @@ <p class="footer"> Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter</a> | served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | -<a href="https://www2.foo.surf/site-mirrors.html">Site Mirrors</a> +<a href="https://www2.foo.zone/site-mirrors.html">Site Mirrors</a> </p> </body> </html> diff --git a/gemfeed/2016-04-09-jails-and-zfs-on-freebsd-with-puppet.html b/gemfeed/2016-04-09-jails-and-zfs-on-freebsd-with-puppet.html index c39a57ed..345031a1 100644 --- a/gemfeed/2016-04-09-jails-and-zfs-on-freebsd-with-puppet.html +++ b/gemfeed/2016-04-09-jails-and-zfs-on-freebsd-with-puppet.html @@ -375,7 +375,7 @@ Notice: Finished catalog run in 206.09 seconds <p class="footer"> Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter</a> | served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | -<a href="https://www2.foo.surf/site-mirrors.html">Site Mirrors</a> +<a href="https://www2.foo.zone/site-mirrors.html">Site Mirrors</a> </p> </body> </html> diff --git a/gemfeed/2016-04-16-offsite-backup-with-zfs-part2.html b/gemfeed/2016-04-16-offsite-backup-with-zfs-part2.html index af08914f..5bb0aaf8 100644 --- a/gemfeed/2016-04-16-offsite-backup-with-zfs-part2.html +++ b/gemfeed/2016-04-16-offsite-backup-with-zfs-part2.html @@ -32,7 +32,7 @@ <p class="footer"> Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter</a> | served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | -<a href="https://www2.foo.surf/site-mirrors.html">Site Mirrors</a> +<a href="https://www2.foo.zone/site-mirrors.html">Site Mirrors</a> </p> </body> </html> diff --git a/gemfeed/2016-05-22-spinning-up-my-own-authoritative-dns-servers.html b/gemfeed/2016-05-22-spinning-up-my-own-authoritative-dns-servers.html index 697055e7..e622427f 100644 --- a/gemfeed/2016-05-22-spinning-up-my-own-authoritative-dns-servers.html +++ b/gemfeed/2016-05-22-spinning-up-my-own-authoritative-dns-servers.html @@ -221,7 +221,7 @@ apply Service "dig6" { <p class="footer"> Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter</a> | served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | -<a href="https://www2.foo.surf/site-mirrors.html">Site Mirrors</a> +<a href="https://www2.foo.zone/site-mirrors.html">Site Mirrors</a> </p> </body> </html> diff --git a/gemfeed/2016-11-20-methods-in-c.html b/gemfeed/2016-11-20-methods-in-c.html index ffcad7e3..6c96a32e 100644 --- a/gemfeed/2016-11-20-methods-in-c.html +++ b/gemfeed/2016-11-20-methods-in-c.html @@ -76,7 +76,7 @@ mult.calculate(mult,a,b)); <p class="footer"> Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter</a> | served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | -<a href="https://www2.foo.surf/site-mirrors.html">Site Mirrors</a> +<a href="https://www2.foo.zone/site-mirrors.html">Site Mirrors</a> </p> </body> </html> diff --git a/gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux.html b/gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux.html index 6a087934..079cb051 100644 --- a/gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux.html +++ b/gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux.html @@ -135,7 +135,7 @@ Total time: 1213.00s <p class="footer"> Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter</a> | served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | -<a href="https://www2.foo.surf/site-mirrors.html">Site Mirrors</a> +<a href="https://www2.foo.zone/site-mirrors.html">Site Mirrors</a> </p> </body> </html> diff --git a/gemfeed/2021-04-22-dtail-the-distributed-log-tail-program.html b/gemfeed/2021-04-22-dtail-the-distributed-log-tail-program.html index b7b0a103..aa8642ad 100644 --- a/gemfeed/2021-04-22-dtail-the-distributed-log-tail-program.html +++ b/gemfeed/2021-04-22-dtail-the-distributed-log-tail-program.html @@ -77,7 +77,7 @@ dtail –servers serverlist.txt –files ‘/var/log/*.log’ –regex ‘(?i:er <p class="footer"> Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter</a> | served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | -<a href="https://www2.foo.surf/site-mirrors.html">Site Mirrors</a> +<a href="https://www2.foo.zone/site-mirrors.html">Site Mirrors</a> </p> </body> </html> diff --git a/gemfeed/2021-04-24-welcome-to-the-geminispace.html b/gemfeed/2021-04-24-welcome-to-the-geminispace.html index 9be33562..06c8cfe0 100644 --- a/gemfeed/2021-04-24-welcome-to-the-geminispace.html +++ b/gemfeed/2021-04-24-welcome-to-the-geminispace.html @@ -66,7 +66,7 @@ <p class="footer"> Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter</a> | served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | -<a href="https://www2.foo.surf/site-mirrors.html">Site Mirrors</a> +<a href="https://www2.foo.zone/site-mirrors.html">Site Mirrors</a> </p> </body> </html> diff --git a/gemfeed/2021-05-16-personal-bash-coding-style-guide.html b/gemfeed/2021-05-16-personal-bash-coding-style-guide.html index 9f998ec7..2e354cc3 100644 --- a/gemfeed/2021-05-16-personal-bash-coding-style-guide.html +++ b/gemfeed/2021-05-16-personal-bash-coding-style-guide.html @@ -304,7 +304,7 @@ fi <p class="footer"> Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter</a> | served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | -<a href="https://www2.foo.surf/site-mirrors.html">Site Mirrors</a> +<a href="https://www2.foo.zone/site-mirrors.html">Site Mirrors</a> </p> </body> </html> diff --git a/gemfeed/2021-06-05-gemtexter-one-bash-script-to-rule-it-all.html b/gemfeed/2021-06-05-gemtexter-one-bash-script-to-rule-it-all.html index 21e5e37a..c795fc92 100644 --- a/gemfeed/2021-06-05-gemtexter-one-bash-script-to-rule-it-all.html +++ b/gemfeed/2021-06-05-gemtexter-one-bash-script-to-rule-it-all.html @@ -135,7 +135,7 @@ assert::equals "$(generate::make_link md "$gemtext")" \ <p class="footer"> Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter</a> | served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | -<a href="https://www2.foo.surf/site-mirrors.html">Site Mirrors</a> +<a href="https://www2.foo.zone/site-mirrors.html">Site Mirrors</a> </p> </body> </html> diff --git a/gemfeed/2021-07-04-the-well-grounded-rubyist.html b/gemfeed/2021-07-04-the-well-grounded-rubyist.html index 2bba5ec5..ac2e705c 100644 --- a/gemfeed/2021-07-04-the-well-grounded-rubyist.html +++ b/gemfeed/2021-07-04-the-well-grounded-rubyist.html @@ -77,7 +77,7 @@ Hello World <p class="footer"> Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter</a> | served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | -<a href="https://www2.foo.surf/site-mirrors.html">Site Mirrors</a> +<a href="https://www2.foo.zone/site-mirrors.html">Site Mirrors</a> </p> </body> </html> diff --git a/gemfeed/2021-08-01-on-being-pedantic-about-open-source.html b/gemfeed/2021-08-01-on-being-pedantic-about-open-source.html index 4ebf8028..795c5bd2 100644 --- a/gemfeed/2021-08-01-on-being-pedantic-about-open-source.html +++ b/gemfeed/2021-08-01-on-being-pedantic-about-open-source.html @@ -75,7 +75,7 @@ <p class="footer"> Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter</a> | served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | -<a href="https://www2.foo.surf/site-mirrors.html">Site Mirrors</a> +<a href="https://www2.foo.zone/site-mirrors.html">Site Mirrors</a> </p> </body> </html> diff --git a/gemfeed/2021-09-12-keep-it-simple-and-stupid.html b/gemfeed/2021-09-12-keep-it-simple-and-stupid.html index 2e4c4b53..c2885eec 100644 --- a/gemfeed/2021-09-12-keep-it-simple-and-stupid.html +++ b/gemfeed/2021-09-12-keep-it-simple-and-stupid.html @@ -63,7 +63,7 @@ <p class="footer"> Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter</a> | served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | -<a href="https://www2.foo.surf/site-mirrors.html">Site Mirrors</a> +<a href="https://www2.foo.zone/site-mirrors.html">Site Mirrors</a> </p> </body> </html> diff --git a/gemfeed/2021-10-22-defensive-devops.html b/gemfeed/2021-10-22-defensive-devops.html index 1d9d0622..53a88b83 100644 --- a/gemfeed/2021-10-22-defensive-devops.html +++ b/gemfeed/2021-10-22-defensive-devops.html @@ -75,7 +75,7 @@ <p class="footer"> Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter</a> | served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | -<a href="https://www2.foo.surf/site-mirrors.html">Site Mirrors</a> +<a href="https://www2.foo.zone/site-mirrors.html">Site Mirrors</a> </p> </body> </html> diff --git a/gemfeed/2021-11-29-bash-golf-part-1.html b/gemfeed/2021-11-29-bash-golf-part-1.html index d3d028f6..4f132129 100644 --- a/gemfeed/2021-11-29-bash-golf-part-1.html +++ b/gemfeed/2021-11-29-bash-golf-part-1.html @@ -379,7 +379,7 @@ bash: line 1: 1/10.0 : syntax error: invalid arithmetic operator (error token is <p class="footer"> Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter</a> | served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | -<a href="https://www2.foo.surf/site-mirrors.html">Site Mirrors</a> +<a href="https://www2.foo.zone/site-mirrors.html">Site Mirrors</a> </p> </body> </html> diff --git a/gemfeed/2021-12-26-how-to-stay-sane-as-a-devops-person.html b/gemfeed/2021-12-26-how-to-stay-sane-as-a-devops-person.html index cf0ab0db..6047e0b4 100644 --- a/gemfeed/2021-12-26-how-to-stay-sane-as-a-devops-person.html +++ b/gemfeed/2021-12-26-how-to-stay-sane-as-a-devops-person.html @@ -88,7 +88,7 @@ <p class="footer"> Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter</a> | served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | -<a href="https://www2.foo.surf/site-mirrors.html">Site Mirrors</a> +<a href="https://www2.foo.zone/site-mirrors.html">Site Mirrors</a> </p> </body> </html> diff --git a/gemfeed/2022-01-01-bash-golf-part-2.html b/gemfeed/2022-01-01-bash-golf-part-2.html index 65523b11..1d9a3292 100644 --- a/gemfeed/2022-01-01-bash-golf-part-2.html +++ b/gemfeed/2022-01-01-bash-golf-part-2.html @@ -408,7 +408,7 @@ PAUL:X:1000:1000:PAUL BUETOW:/HOME/PAUL:/BIN/BASH <p class="footer"> Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter</a> | served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | -<a href="https://www2.foo.surf/site-mirrors.html">Site Mirrors</a> +<a href="https://www2.foo.zone/site-mirrors.html">Site Mirrors</a> </p> </body> </html> diff --git a/gemfeed/atom.xml b/gemfeed/atom.xml index 04ebd514..c3dc69ae 100644 --- a/gemfeed/atom.xml +++ b/gemfeed/atom.xml @@ -1,15 +1,15 @@ <?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom"> - <updated>2022-01-22T16:28:55+00:00</updated> - <title>foo.surf feed</title> + <updated>2022-01-22T19:11:32+00:00</updated> + <title>foo.zone feed</title> <subtitle>Having fun with computers!</subtitle> - <link href="https://foo.surf/gemfeed/atom.xml" rel="self" /> - <link href="https://foo.surf/" /> - <id>https://foo.surf/</id> + <link href="https://foo.zone/gemfeed/atom.xml" rel="self" /> + <link href="https://foo.zone/" /> + <id>https://foo.zone/</id> <entry> <title>Bash Golf Part 2</title> - <link href="https://foo.surf/gemfeed/2022-01-01-bash-golf-part-2.html" /> - <id>https://foo.surf/gemfeed/2022-01-01-bash-golf-part-2.html</id> + <link href="https://foo.zone/gemfeed/2022-01-01-bash-golf-part-2.html" /> + <id>https://foo.zone/gemfeed/2022-01-01-bash-golf-part-2.html</id> <updated>2022-01-01T23:36:15+00:00</updated> <author> <name>Paul Buetow</name> @@ -32,8 +32,8 @@ jgs^^^^^^^`^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ </pre> <p class="quote"><i>Published by Paul Buetow 2022-01-01, last updated 2022-01-05</i></p> <p>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.</p> -<a class="textlink" href="https://foo.surf/gemfeed/2021-11-29-bash-golf-part-1.html">Bash Golf Part 1</a><br /> -<a class="textlink" href="https://foo.surf/gemfeed/2022-01-01-bash-golf-part-2.html">Bash Golf Part 2 (you are reading this atm.)</a><br /> +<a class="textlink" href="https://foo.zone/gemfeed/2021-11-29-bash-golf-part-1.html">Bash Golf Part 1</a><br /> +<a class="textlink" href="https://foo.zone/gemfeed/2022-01-01-bash-golf-part-2.html">Bash Golf Part 2 (you are reading this atm.)</a><br /> <h2>Redirection</h2> <p>Let's have a closer look at Bash redirection. As you might already know that there are 3 standard file descriptors:</p> <ul> @@ -382,7 +382,7 @@ Hello You! </pre> <p>Why does calling "foo" with no arguments make the script terminate? Because as no argument was given, the "shift" won't have anything to do as the argument list $@ is empty, and therefore "shift" fails with a non-zero status.</p> <p>Why would you want to use "shift" after function-local variable assignments? Have a look at my personal Bash coding style guide for an explanation :-):</p> -<a class="textlink" href="https://foo.surf/gemfeed/2021-05-16-personal-bash-coding-style-guide.html">./2021-05-16-personal-bash-coding-style-guide.html</a><br /> +<a class="textlink" href="https://foo.zone/gemfeed/2021-05-16-personal-bash-coding-style-guide.html">./2021-05-16-personal-bash-coding-style-guide.html</a><br /> <h3>pipefail</h3> <p>The pipefail option makes it so that not only the exit code of the last command of the pipe counts regards its exit code but any command of the pipe:</p> <pre> @@ -420,8 +420,8 @@ PAUL:X:1000:1000:PAUL BUETOW:/HOME/PAUL:/BIN/BASH </entry> <entry> <title>How to stay sane as a DevOps person </title> - <link href="https://foo.surf/gemfeed/2021-12-26-how-to-stay-sane-as-a-devops-person.html" /> - <id>https://foo.surf/gemfeed/2021-12-26-how-to-stay-sane-as-a-devops-person.html</id> + <link href="https://foo.zone/gemfeed/2021-12-26-how-to-stay-sane-as-a-devops-person.html" /> + <id>https://foo.zone/gemfeed/2021-12-26-how-to-stay-sane-as-a-devops-person.html</id> <updated>2021-12-26T12:02:02+00:00</updated> <author> <name>Paul Buetow</name> @@ -483,7 +483,7 @@ PAUL:X:1000:1000:PAUL BUETOW:/HOME/PAUL:/BIN/BASH <h3>Don't rush</h3> <p>Slowing down also helps to prevent errors. Don't rush your tasks, even if they are urgent. Try to be quick, but don't rush them. Maybe you are writing a script to mitigate a production issue. You could others peer review that script, for example. Their primary programming language may not be the same (e.g. Golang vs Perl), but they would understand the logic. Or ask another DevOps person from your company with good scripting skills review your mitigation, but he then may lack the domain knowledge of the software you are patching. So in either case, the review will take a bit longer as the reviewer might not be an expert in everything.</p> <p>So relax, don't always expect immediate results. Set clear and reasonable timelines for the management about the mitigations. You are not a superhero who has to do everything by yourself. Sometimes, you will miss a deadline. But that will have good reasons. Don't rush to complete just to meet a deadline. </p> -<a class="textlink" href="https://foo.surf/gemfeed/2021-10-22-defensive-devops.html">Read also "Defensive DevOps" about deploying mitigation scripts.</a><br /> +<a class="textlink" href="https://foo.zone/gemfeed/2021-10-22-defensive-devops.html">Read also "Defensive DevOps" about deploying mitigation scripts.</a><br /> <h2>You are not a superhero</h2> <p>Always keep that in mind. You can't solve all problems by your own. Maybe you could, but that would be a lot of additional stress (and this will reflect to your personal life). Also, Superman and Wonder Woman receive much higher salaries than you will ever do ;-).</p> <p>I have been a superhero multiple times mitigating critical incidents, and I was proud about it in those moments. But actually, I am not proud looking at those retrospectively as for everything there should be other people around who should be able to resolve an incident. No company should rely on a single person, there must always be a substitute. You are not a superhero and as harsh as it sounds, everyone is replaceable. Every superhero can be replaced with another superhero. The only thing it takes to become a superhero is time to get to know the infrastructure and tools very well, paired with work dedication.</p> @@ -512,8 +512,8 @@ PAUL:X:1000:1000:PAUL BUETOW:/HOME/PAUL:/BIN/BASH </entry> <entry> <title>Bash Golf Part 1</title> - <link href="https://foo.surf/gemfeed/2021-11-29-bash-golf-part-1.html" /> - <id>https://foo.surf/gemfeed/2021-11-29-bash-golf-part-1.html</id> + <link href="https://foo.zone/gemfeed/2021-11-29-bash-golf-part-1.html" /> + <id>https://foo.zone/gemfeed/2021-11-29-bash-golf-part-1.html</id> <updated>2021-11-29T14:06:14+00:00</updated> <author> <name>Paul Buetow</name> @@ -536,8 +536,8 @@ jgs^^^^^^^`^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ </pre> <p class="quote"><i>Published by Paul Buetow 2021-11-29, last updated 2022-01-05</i></p> <p>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.</p> -<a class="textlink" href="https://foo.surf/gemfeed/2021-11-29-bash-golf-part-1.html">Bash Golf Part 1 (you are reding this atm.)</a><br /> -<a class="textlink" href="https://foo.surf/gemfeed/2022-01-01-bash-golf-part-2.html">Bash Golf Part 2</a><br /> +<a class="textlink" href="https://foo.zone/gemfeed/2021-11-29-bash-golf-part-1.html">Bash Golf Part 1 (you are reding this atm.)</a><br /> +<a class="textlink" href="https://foo.zone/gemfeed/2022-01-01-bash-golf-part-2.html">Bash Golf Part 2</a><br /> <h2>TCP/IP networking</h2> <p>You probably know the Netcat tool, which is a swiss army knife for TCP/IP networking on the command line. But did you know that the Bash natively supports TCP/IP networking?</p> <p>Have a look here how that works:</p> @@ -895,8 +895,8 @@ bash: line 1: 1/10.0 : syntax error: invalid arithmetic operator (error token is </entry> <entry> <title>Defensive DevOps</title> - <link href="https://foo.surf/gemfeed/2021-10-22-defensive-devops.html" /> - <id>https://foo.surf/gemfeed/2021-10-22-defensive-devops.html</id> + <link href="https://foo.zone/gemfeed/2021-10-22-defensive-devops.html" /> + <id>https://foo.zone/gemfeed/2021-10-22-defensive-devops.html</id> <updated>2021-10-22T10:02:46+03:00</updated> <author> <name>Paul Buetow</name> @@ -959,7 +959,7 @@ bash: line 1: 1/10.0 : syntax error: invalid arithmetic operator (error token is <p>At one point, you will be tired of manually running your script and also confident enough to automate it. You could deploy it with a configuration management system such as puppet Puppet and schedule a periodic execution via cron, a systemd timer or even a separate background daemon process. You have to be extremely careful here. The more you automate, the more damage you can cause. You don't want to automate it on all servers involved at once, but you want to slowly ramp up the automation. </p> <p>First, automate it only on one single server and monitor the result closely. At first, only automate running the script in dry mode. Also, don't forget that you still should log everything that the script is doing. Once everything looks fine, you can automate the script on the canary server for real. It shouldn't be a disaster if something goes wrong as usually systems are designed in a HA fashion, where the same data is still at least on another server available. In the worst-case scenario, you could recover data from there or from the local backup files your script created.</p> <p>Now, you can add a handful more canary servers to the automation. You should keep close attention to what the automation is doing. You could use a tool like DTail for distributed log file following. At this point, you could also think of deploying a monitoring check (e.g. Icinga) to see whether your script is not terminating abnormally or logging warnings or errors.</p> -<a class="textlink" href="https://foo.surf/gemfeed/2021-04-22-dtail-the-distributed-log-tail-program.html">DTail - The distributed log tail program</a><br /> +<a class="textlink" href="https://foo.zone/gemfeed/2021-04-22-dtail-the-distributed-log-tail-program.html">DTail - The distributed log tail program</a><br /> <p>From there, you could automate the solution on more and more servers. Best, ramp up the automation to a handful of systems, and later to a whole line of servers (e.g. all secondary servers of a given cluster). And afterwards, automate it on all servers.</p> <p>Remember, whenever something goes wrong, you will have plent |
