diff options
72 files changed, 1312 insertions, 74 deletions
diff --git a/gemfeed/2008-06-26-perl-poetry.gmi b/gemfeed/2008-06-26-perl-poetry.gmi index 0f3ba25b..536c9c50 100644 --- a/gemfeed/2008-06-26-perl-poetry.gmi +++ b/gemfeed/2008-06-26-perl-poetry.gmi @@ -25,6 +25,17 @@ _~~|~/_|_|__/|~~~~~~~ | / ~~~~~ | | ~~~~~~~~ (__) (____) ``` +## Table of Contents + +* ⇢ Perl Poetry +* ⇢ ⇢ Introduction +* ⇢ ⇢ math.pl +* ⇢ ⇢ christmas.pl +* ⇢ ⇢ shopping.pl +* ⇢ ⇢ More... + +## Introduction + 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." diff --git a/gemfeed/2008-06-26-perl-poetry.gmi.tpl b/gemfeed/2008-06-26-perl-poetry.gmi.tpl index 257e21a8..01636b3d 100644 --- a/gemfeed/2008-06-26-perl-poetry.gmi.tpl +++ b/gemfeed/2008-06-26-perl-poetry.gmi.tpl @@ -25,6 +25,10 @@ _~~|~/_|_|__/|~~~~~~~ | / ~~~~~ | | ~~~~~~~~ (__) (____) ``` +<< template::inline::toc + +## Introduction + 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." diff --git a/gemfeed/2011-05-07-perl-daemon-service-framework.gmi b/gemfeed/2011-05-07-perl-daemon-service-framework.gmi index 887a7210..78c79a9e 100644 --- a/gemfeed/2011-05-07-perl-daemon-service-framework.gmi +++ b/gemfeed/2011-05-07-perl-daemon-service-framework.gmi @@ -9,6 +9,22 @@ //\ //\\ //\ //\\ //\ //\\jrei ``` +## Table of Contents + +* ⇢ Perl Daemon (Service Framework) +* ⇢ ⇢ Introduction +* ⇢ ⇢ Features +* ⇢ ⇢ Quick Guide +* ⇢ ⇢ How to configure +* ⇢ ⇢ Example +* ⇢ ⇢ HiRes event loop +* ⇢ ⇢ Writing your own modules +* ⇢ ⇢ ⇢ Example module +* ⇢ ⇢ ⇢ Your own module +* ⇢ ⇢ May the source be with you + +## Introduction + 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 diff --git a/gemfeed/2011-05-07-perl-daemon-service-framework.gmi.tpl b/gemfeed/2011-05-07-perl-daemon-service-framework.gmi.tpl index 36baca1c..f7baa258 100644 --- a/gemfeed/2011-05-07-perl-daemon-service-framework.gmi.tpl +++ b/gemfeed/2011-05-07-perl-daemon-service-framework.gmi.tpl @@ -9,6 +9,10 @@ //\ //\\ //\ //\\ //\ //\\jrei ``` +<< template::inline::toc + +## Introduction + 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 diff --git a/gemfeed/2016-04-09-jails-and-zfs-on-freebsd-with-puppet.gmi b/gemfeed/2016-04-09-jails-and-zfs-on-freebsd-with-puppet.gmi index fe07f8c5..ee830eb5 100644 --- a/gemfeed/2016-04-09-jails-and-zfs-on-freebsd-with-puppet.gmi +++ b/gemfeed/2016-04-09-jails-and-zfs-on-freebsd-with-puppet.gmi @@ -22,6 +22,17 @@ \ `. ``` +## Table of Contents + +* ⇢ Jails and ZFS with Puppet on FreeBSD +* ⇢ ⇢ Introduction +* ⇢ ⇢ ZFS +* ⇢ ⇢ Jails +* ⇢ ⇢ Inside-Jail Puppet +* ⇢ ⇢ Managing multiple Jails + +## Introduction + 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 diff --git a/gemfeed/2016-04-09-jails-and-zfs-on-freebsd-with-puppet.gmi.tpl b/gemfeed/2016-04-09-jails-and-zfs-on-freebsd-with-puppet.gmi.tpl index c5595a87..a7a311d8 100644 --- a/gemfeed/2016-04-09-jails-and-zfs-on-freebsd-with-puppet.gmi.tpl +++ b/gemfeed/2016-04-09-jails-and-zfs-on-freebsd-with-puppet.gmi.tpl @@ -22,6 +22,10 @@ \ `. ``` +<< template::inline::toc + +## Introduction + 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 diff --git a/gemfeed/2021-04-22-dtail-the-distributed-log-tail-program.gmi b/gemfeed/2021-04-22-dtail-the-distributed-log-tail-program.gmi index 21e7d316..df9a037d 100644 --- a/gemfeed/2021-04-22-dtail-the-distributed-log-tail-program.gmi +++ b/gemfeed/2021-04-22-dtail-the-distributed-log-tail-program.gmi @@ -4,6 +4,22 @@ => ./dtail-the-distributed-log-tail-program/title.png DTail logo image +## Table of Contents + +* ⇢ DTail - The distributed log tail program +* ⇢ ⇢ Introduction +* ⇢ ⇢ A Mimecast Pet Project +* ⇢ ⇢ Differentiating from log management systems +* ⇢ ⇢ Combining simplicity, security and efficiency +* ⇢ ⇢ The DTail family of commands +* ⇢ ⇢ Usage example +* ⇢ ⇢ Fitting it in +* ⇢ ⇢ Advanced features +* ⇢ ⇢ For the future +* ⇢ ⇢ Open Source + +## Introduction + This article first appeared at the Mimecast Engineering Blog but I made it available here in my personal internet site too. => https://medium.com/mimecast-engineering/dtail-the-distributed-log-tail-program-79b8087904bb Original Mimecast Engineering Blog post at Medium diff --git a/gemfeed/2021-04-22-dtail-the-distributed-log-tail-program.gmi.tpl b/gemfeed/2021-04-22-dtail-the-distributed-log-tail-program.gmi.tpl index 5c955c66..97f9429d 100644 --- a/gemfeed/2021-04-22-dtail-the-distributed-log-tail-program.gmi.tpl +++ b/gemfeed/2021-04-22-dtail-the-distributed-log-tail-program.gmi.tpl @@ -4,6 +4,10 @@ => ./dtail-the-distributed-log-tail-program/title.png DTail logo image +<< template::inline::toc + +## Introduction + This article first appeared at the Mimecast Engineering Blog but I made it available here in my personal internet site too. => https://medium.com/mimecast-engineering/dtail-the-distributed-log-tail-program-79b8087904bb Original Mimecast Engineering Blog post at Medium diff --git a/gemfeed/2021-04-24-welcome-to-the-geminispace.gmi b/gemfeed/2021-04-24-welcome-to-the-geminispace.gmi index 26e56715..a7b1bbb2 100644 --- a/gemfeed/2021-04-24-welcome-to-the-geminispace.gmi +++ b/gemfeed/2021-04-24-welcome-to-the-geminispace.gmi @@ -30,6 +30,17 @@ However, if you still use HTTP, you are just surfing the fallback HTML version o ``` +## Table of Contents + +* ⇢ Welcome to the Geminispace +* ⇢ ⇢ Motivation +* ⇢ ⇢ ⇢ My urge to revamp my personal website +* ⇢ ⇢ ⇢ My still great Laptop running hot +* ⇢ ⇢ Discovering the Gemini internet protocol +* ⇢ ⇢ My own Gemini capsule +* ⇢ ⇢ Gemini advantages summarised +* ⇢ ⇢ Dive into deep Gemini space + ## Motivation ### My urge to revamp my personal website diff --git a/gemfeed/2021-04-24-welcome-to-the-geminispace.gmi.tpl b/gemfeed/2021-04-24-welcome-to-the-geminispace.gmi.tpl index 0a036349..63586cf5 100644 --- a/gemfeed/2021-04-24-welcome-to-the-geminispace.gmi.tpl +++ b/gemfeed/2021-04-24-welcome-to-the-geminispace.gmi.tpl @@ -30,6 +30,8 @@ However, if you still use HTTP, you are just surfing the fallback HTML version o ``` +<< template::inline::toc + ## Motivation ### My urge to revamp my personal website diff --git a/gemfeed/2021-05-16-personal-bash-coding-style-guide.gmi b/gemfeed/2021-05-16-personal-bash-coding-style-guide.gmi index 349b39b5..1765f71d 100644 --- a/gemfeed/2021-05-16-personal-bash-coding-style-guide.gmi +++ b/gemfeed/2021-05-16-personal-bash-coding-style-guide.gmi @@ -15,6 +15,30 @@ "\__/"---------------"\__/"-+---+' ``` +## Table of Contents + +* ⇢ Personal Bash coding style guide +* ⇢ ⇢ Introduction +* ⇢ ⇢ My modifications +* ⇢ ⇢ ⇢ Shebang +* ⇢ ⇢ ⇢ Two space soft-tabs indentation +* ⇢ ⇢ ⇢ Breaking long pipes +* ⇢ ⇢ ⇢ Quoting your variables +* ⇢ ⇢ ⇢ Prefer built-in commands over external commands +* ⇢ ⇢ My additions +* ⇢ ⇢ ⇢ Use of 'yes' and 'no' +* ⇢ ⇢ ⇢ Non-evil alternative to variable assignments via eval +* ⇢ ⇢ ⇢ Prefer pipes over arrays for list processing +* ⇢ ⇢ ⇢ Assign-then-shift +* ⇢ ⇢ ⇢ Paranoid mode +* ⇢ ⇢ Learned +* ⇢ ⇢ ⇢ Unintended lexicographical comparison. +* ⇢ ⇢ ⇢ PIPESTATUS +* ⇢ ⇢ Use common sense and BE CONSISTENT. +* ⇢ ⇢ Advanced Bash learning pro tip + +## Introduction + 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. => https://google.github.io/styleguide/shellguide.html Google Shell Style Guide diff --git a/gemfeed/2021-05-16-personal-bash-coding-style-guide.gmi.tpl b/gemfeed/2021-05-16-personal-bash-coding-style-guide.gmi.tpl index 04e3f708..32e255f3 100644 --- a/gemfeed/2021-05-16-personal-bash-coding-style-guide.gmi.tpl +++ b/gemfeed/2021-05-16-personal-bash-coding-style-guide.gmi.tpl @@ -15,6 +15,10 @@ "\__/"---------------"\__/"-+---+' ``` +<< template::inline::toc + +## Introduction + 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. => https://google.github.io/styleguide/shellguide.html Google Shell Style Guide diff --git a/gemfeed/2021-06-05-gemtexter-one-bash-script-to-rule-it-all.gmi b/gemfeed/2021-06-05-gemtexter-one-bash-script-to-rule-it-all.gmi index c8e39d48..4f5c0c3c 100644 --- a/gemfeed/2021-06-05-gemtexter-one-bash-script-to-rule-it-all.gmi +++ b/gemfeed/2021-06-05-gemtexter-one-bash-script-to-rule-it-all.gmi @@ -43,11 +43,30 @@ `+a:f:......jrei''' ``` +## Table of Contents + +* ⇢ Gemtexter - One Bash script to rule it all +* ⇢ ⇢ Introduction +* ⇢ ⇢ ⇢ Motivation +* ⇢ ⇢ Output formats +* ⇢ ⇢ Taking it as far as I should, but no farther +* ⇢ ⇢ ⇢ Modularization +* ⇢ ⇢ ⇢ Bash best practises and ShellCheck +* ⇢ ⇢ ⇢ Unit testing +* ⇢ ⇢ ⇢ HTML unit test example +* ⇢ ⇢ ⇢ Markdown unit test example +* ⇢ ⇢ Handcrafted HTML styles +* ⇢ ⇢ Configurability +* ⇢ ⇢ Future features +* ⇢ ⇢ Conclusion + +## Introduction + You might have read my previous blog posts 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. This comes with the benefit that I can write content in my favourite text editor (Vim). -## Motivation +### Motivation Another benefit of using Gemini is that the Gemtext markup language is easy to parse. As my site is dual-hosted (Gemini+HTTP), I could, in theory, just write a shell script to deal with the conversion from Gemtext to HTML; there is no need for a full-featured programming language here. I have done a lot of Bash in the past, but I am also often revisiting old tools and techniques for refreshing and keeping the knowledge up to date here. diff --git a/gemfeed/2021-06-05-gemtexter-one-bash-script-to-rule-it-all.gmi.tpl b/gemfeed/2021-06-05-gemtexter-one-bash-script-to-rule-it-all.gmi.tpl index 61cd65be..f45bedec 100644 --- a/gemfeed/2021-06-05-gemtexter-one-bash-script-to-rule-it-all.gmi.tpl +++ b/gemfeed/2021-06-05-gemtexter-one-bash-script-to-rule-it-all.gmi.tpl @@ -43,11 +43,15 @@ `+a:f:......jrei''' ``` +<< template::inline::toc + +## Introduction + You might have read my previous blog posts 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. This comes with the benefit that I can write content in my favourite text editor (Vim). -## Motivation +### Motivation Another benefit of using Gemini is that the Gemtext markup language is easy to parse. As my site is dual-hosted (Gemini+HTTP), I could, in theory, just write a shell script to deal with the conversion from Gemtext to HTML; there is no need for a full-featured programming language here. I have done a lot of Bash in the past, but I am also often revisiting old tools and techniques for refreshing and keeping the knowledge up to date here. diff --git a/gemfeed/2021-09-12-keep-it-simple-and-stupid.gmi b/gemfeed/2021-09-12-keep-it-simple-and-stupid.gmi index 834c4020..51f97223 100644 --- a/gemfeed/2021-09-12-keep-it-simple-and-stupid.gmi +++ b/gemfeed/2021-09-12-keep-it-simple-and-stupid.gmi @@ -17,25 +17,45 @@ -------------------- -------------------- ``` +## Table of Contents + +* ⇢ Keep it simple and stupid +* ⇢ ⇢ Introduction +* ⇢ ⇢ Need faster hardware +* ⇢ ⇢ Too complex to be replaced +* ⇢ ⇢ ⇢ On COBOL +* ⇢ ⇢ ⇢ On Kubernetes +* ⇢ ⇢ ⇢ The younger generation of IT professionals +* ⇢ ⇢ The bloated web +* ⇢ ⇢ Fancy log-management solutions +* ⇢ ⇢ More KISS +* ⇢ ⇢ ⇢ The Adslowbe PDF Reader +* ⇢ ⇢ ⇢ The power of plain text files +* ⇢ ⇢ ⇢ KISS for programmers +* ⇢ ⇢ When KISS is not KISS anymore +* ⇢ ⇢ Other relevant readings + +## Introduction + 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 |
