From 2bd9de6bd3647b58f319301c5d599ca4aa20a763 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Wed, 15 Mar 2023 01:22:07 +0200 Subject: Update content for html --- gemfeed/2008-06-26-perl-poetry.html | 2 +- ...12-29-using-my-nokia-n95-for-fixing-my-mta.html | 2 +- gemfeed/2010-04-09-standard-ml-and-haskell.html | 2 +- ...010-05-07-lazy-evaluation-with-standarn-ml.html | 2 +- .../2010-05-09-the-fype-programming-language.html | 2 +- .../2011-05-07-perl-daemon-service-framework.html | 2 +- .../2014-03-24-the-fibonacci.pl.c-polyglot.html | 2 +- ...2-05-run-debian-on-your-phone-with-debroid.html | 2 +- gemfeed/2016-04-03-offsite-backup-with-zfs.html | 2 +- ...04-09-jails-and-zfs-on-freebsd-with-puppet.html | 2 +- .../2016-04-16-offsite-backup-with-zfs-part2.html | 2 +- ...inning-up-my-own-authoritative-dns-servers.html | 2 +- ...20-object-oriented-programming-with-ansi-c.html | 2 +- ...alistic-load-testing-with-ioriot-for-linux.html | 2 +- ...-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 | 2 +- ...5-gemtexter-one-bash-script-to-rule-it-all.html | 2 +- gemfeed/2021-07-04-the-well-grounded-rubyist.html | 2 +- ...-08-01-on-being-pedantic-about-open-source.html | 2 +- gemfeed/2021-09-12-keep-it-simple-and-stupid.html | 2 +- gemfeed/2021-10-22-defensive-devops.html | 2 +- gemfeed/2021-11-29-bash-golf-part-1.html | 2 +- ...-12-26-how-to-stay-sane-as-a-devops-person.html | 2 +- gemfeed/2022-01-01-bash-golf-part-2.html | 2 +- gemfeed/2022-01-23-welcome-to-the-foo.zone.html | 2 +- ...022-02-04-computer-operating-systems-i-use.html | 2 +- gemfeed/2022-03-06-the-release-of-dtail-4.0.0.html | 2 +- gemfeed/2022-04-10-creative-universe.html | 2 +- .../2022-05-27-perl-is-still-a-great-choice.html | 2 +- gemfeed/2022-06-15-sweating-the-small-stuff.html | 2 +- ...22-07-30-lets-encrypt-with-openbsd-and-rex.html | 2 +- ...2-08-27-gemtexter-1.1.0-lets-gemtext-again.html | 2 +- gemfeed/2022-09-30-after-a-bad-nights-sleep.html | 2 +- .../2022-10-30-installing-dtail-on-openbsd.html | 2 +- ...-tried-emacs-but-i-switched-back-to-neovim.html | 4 +- ...22-12-24-ultrarelearning-java-my-takeaways.html | 2 +- gemfeed/2023-01-23-why-grapheneos-rox.html | 2 +- .../2023-02-26-how-to-shut-down-after-work.html | 2 +- ...-03-16-the-pragmatic-programmer-book-notes.html | 8 +- gemfeed/atom.xml | 97 +++++++++++++--------- gemfeed/index.html | 2 +- index.html | 4 +- notes/index.html | 2 +- notes/mental-combat.html | 3 +- notes/never-split-the-difference.html | 3 +- notes/soft-skills.html | 3 +- notes/the-pragmatic-programmer.html | 8 +- notes/the-stoic-challenge.html | 3 +- template.gmi.tpl.sh | 17 ---- 50 files changed, 119 insertions(+), 111 deletions(-) delete mode 100644 template.gmi.tpl.sh diff --git a/gemfeed/2008-06-26-perl-poetry.html b/gemfeed/2008-06-26-perl-poetry.html index 37ec2b54..78e3945b 100644 --- a/gemfeed/2008-06-26-perl-poetry.html +++ b/gemfeed/2008-06-26-perl-poetry.html @@ -157,7 +157,7 @@ This is perl, v5.8.8 built for i386-freebsd-64int

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 your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries

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 your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries

E-Mail your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries

E-Mail your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries

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 your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries

You can find PerlDaemon (including the examples) at:

https://codeberg.org/snonux/perldaemon

E-Mail your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries

It's entertaining to play with :-).

E-Mail your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries

Reboot & test! Enjoy!

E-Mail your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries

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 your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries

All done in a pretty automated manor.

E-Mail your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries

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 your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries

That's much more comfortable now than manually clicking at some web UIs at Schlund Technologies.

E-Mail your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries

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 your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries

E-Mail your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries

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 your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries

E-Mail your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries

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 your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries

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 your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries

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 your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries

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 your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries

Enough ranted for now!

E-Mail your comments to hi@paul.cyou :-)

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

-Go back to the main site
+More entries

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 your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries

See you later for the next post of this series.

E-Mail your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries

Another blog post worth reading:

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

E-Mail your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries

E-Mail your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries

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 your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries

E-Mail your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries

Thanks!

Paul

E-Mail your comments to hi@paul.cyou :-)

-Go back to the main site
+More entries
  • Ultralearning; Scott Young; Thorsons
  • E-Mail your comments to hi@paul.cyou :-)

    -Go back to the main site
    +More entries

    Update 2022-12-17: The following is another related post. I don't agree to the statement made there, that Python code tends to be shorter than Perl code, though!

    Why Perl is still relevant in 2022

    E-Mail your comments to hi@paul.cyou :-)

    -Go back to the main site
    +More entries

    If you wonder what Gemini is:

    Welcome to the Geminispae

    E-Mail your comments to hi@paul.cyou :-)

    -Go back to the main site
    +More entries

    OpenBSD suits perfectly here as all the tools are already part of the base installation. But I like underdogs. Rex is not as powerful and popular as other configuration management systems (e.g. Puppet, Chef, SALT or even Ansible). It is more of an underdog, and the community is small.

    Why re-inventing the wheel? I love that a Rexfile is just a Perl DSL. Also, OpenBSD comes with Perl in the base system. So no new programming language had to be added to my mix for the configuration management system. Also, the acme.sh shell script is not a Bash but a standard Bourne shell script, so I didn't have to install an additional shell as OpenBSD does not come with the Bash pre-installed.

    E-Mail your comments to hi@paul.cyou :-)

    -Go back to the main site
    +More entries

    Additionally, there were a couple of bug fixes, refactorings and overall improvements in the documentation made.

    Overall I think it's a pretty solid 1.1.0 release without anything groundbreaking (therefore no major version jump). But I am happy about it.

    E-Mail your comments to hi@paul.cyou :-)

    -Go back to the main site
    +More entries

    Social media

    I wouldn't say I like checking social media, as it can consume a lot of time and can become addictive. But once in a while, I want to catch up with my "networks". After a bad night's sleep, it's the perfect time to check your social media. Once done, you don't have to do it anymore for the next couple of days!

    E-Mail your comments to hi@paul.cyou :-)

    -Go back to the main site
    +More entries

    E-Mail your comments to hi@paul.cyou :-)

    -Go back to the main site
    +More entries

    Update: One reader recommended to have a look at NvChad. NvChad is a NeoVim config written in Lua aiming to provide a base configuration with very beautiful UI and blazing fast startuptime (around 0.02 secs ~ 0.07 secs). They tweak UI plugins such as telescope, nvim-tree, bufferline etc well to provide an aesthetic UI experience. That sounds interesting!

    https://github.com/NvChad/NvChad

    E-Mail your comments to hi@paul.cyou :-)

    -Go back to the main site
    +More entries

    Appendix

    This is the VimScript I mentioned earlier, which parses a table of contents index of my scanned paper journals and opens the corresponding PDF at the right page in zathura:

    @@ -138,7 +138,7 @@ endfunction
     
     nmap ,j :call OpenJournalPage()<CR>
     

    -Go back to the main site
    +More entries

    Java needs a clean cut. The clean cut shall be incompatible with previous versions of Java and only promote modern best practices without all the legacy burden carried around. The same can be said for other languages, e.g. Perl, but in Perl, they already attack the problem with the use of flags which change the behaviour of the language to more modern standards. Or do it like Python, where they had a hard (incompatible) cut from version 2 to version 3. It will be painful, for sure. But that would be the only way I would enjoy using that language as one of my primary languages to code new stuff regularly. Currently, my Java will stay limited to very few projects and the more minor things already mentioned in this post.

    Am I a Java expert now? No, by far not. But I am better now than before :-).

    E-Mail your comments to hi@paul.cyou :-)

    -Go back to the main site
    +More entries

    Another thing is that GrapheneOS can only run on Google Pixel phones, whereas LineageOS can be installed on a much larger variety of hardware. But on the other hand, GrapheneOS works very well on Pixel phones. The GrapheneOS team can concentrate their development efforts on a smaller set of hardware which then improves the software's quality (best example: The camera app).

    And, of course, GrapheneOS is an open-source project. This is a good thing; however, on the other side, nobody can guarantee that the OS will not break or will not damage your phone. You have to trust the GrapheneOS project and donate to the project so they can keep up with the great work. But I rather trust the GrapheneOS team than big tech.

    E-Mail your comments to hi@paul.cyou :-)

    -Go back to the main site
    +More entries

    There are some days at work you feel drained afterwards and think you didn't progress towards your goals at all. It's more challenging to shut down from work after such a day. A quick hack is to work on a quick win before the end of the day, giving you a sense of accomplishment after all. Another way is to make progress on your fun passion project after work. It must not be work-related, but a sense of accomplishment will still be there.

    E-Mail your comments to hi@paul.cyou :-)

    -Go back to the main site
    +More entries

    "The pragmatic programmer" book notes

    +

    "The Pragmatic Programmer" book notes

    Published at 2023-03-15T00:55:20+02:00

    -

    These are my personal takeaways after reading "The Pragmatic Programmer" by David Thomas and Andrew Hunt. Note that the book contains much more knowledge and pearls of wisdom and that the following notes only contain points I personally found worth writing down. This is mainly for my use, but you might find it helpful too.

    +

    These are my personal takeaways after reading "The Pragmatic Programmer" by David Thomas and Andrew Hunt. Note that the book contains much more knowledge and pearls of wisdom and that the following notes only contain points I personally found worth writing down. This is mainly for my own use, but you might find it helpful too.

              ,..........   ..........,
          ,..,'          '.'          ',..,
    @@ -69,7 +69,7 @@
     

    A kindly, old stranger was walking through the land when he came upon a village. As he entered, the villagers moved towards their homes, locking doors and windows. The stranger smiled and asked, why are you all so frightened. I am a simple traveler, looking for a soft place to stay for the night and a warm place for a meal. "There's not a bite to eat in the whole province," he was told. "We are weak and our children are starving. Better keep moving on." "Oh, I have everything I need," he said. "In fact, I was thinking of making some stone soup to share with all of you." He pulled an iron cauldron from his cloak, filled it with water, and began to build a fire under it. Then, with great ceremony, he drew an ordinary-looking stone from a silken bag and dropped it into the water. By now, hearing the rumor of food, most of the villagers had come out of their homes or watched from their windows. As the stranger sniffed the "broth" and licked his lips in anticipation, hunger began to overcome their fear. "Ahh," the stranger said to himself rather loudly, "I do like a tasty stone soup. Of course, stone soup with cabbage -- that's hard to beat." Soon a villager approached hesitantly, holding a small cabbage he'd retrieved from its hiding place, and added it to the pot. "Wonderful!!" cried the stranger. "You know, I once had stone soup with cabbage and a bit of salt beef as well, and it was fit for a king." The village butcher managed to find some salt beef . . . And so it went, through potatoes, onions, carrots, mushrooms, and so on, until there was indeed a delicious meal for everyone in the village to share. The village elder offered the stranger a great deal of money for the magic stone, but he refused to sell it and traveled on the next day. As he left, the stranger came upon a group of village children standing near the road. He gave the silken bag containing the stone to the youngest child, whispering to a group, "It was not the stone, but the villagers that had performed the magic."

    By working together, everyone contributes what they can, achieving a greater good together.

    E-Mail your comments to hi@paul.cyou :-)

    -Go back to the main site
    +More entries
    These are my personal takeaways after reading 'The Pragmatic Programmer' by David Thomas and Andrew Hunt. Note that the book contains much more knowledge and pearls of wisdom and that the following notes only contain points I personally found worth writing down. This is mainly for my use, but you might find it helpful too. + These are my personal takeaways after reading 'The Pragmatic Programmer' by David Thomas and Andrew Hunt. Note that the book contains much more knowledge and pearls of wisdom and that the following notes only contain points I personally found worth writing down. This is mainly for my own use, but you might find it helpful too.
    -

    "The pragmatic programmer" book notes

    -

    These are my personal takeaways after reading "The Pragmatic Programmer" by David Thomas and Andrew Hunt. Note that the book contains much more knowledge and pearls of wisdom and that the following notes only contain points I personally found worth writing down. This is mainly for my use, but you might find it helpful too.

    -
    -  ____________________________________________________
    -  |____________________________________________________|
    -  | __     __   ____   ___ ||  ____    ____     _  __  |
    -  ||  |__ |--|_| || |_|   |||_|**|*|__|+|+||___| ||  | |
    -  ||==|^^||--| |=||=| |=*=||| |~~|~|  |=|=|| | |~||==| |
    -  ||  |##||  | | || | |JRO|||-|  | |==|+|+||-|-|~||__| |
    -  ||__|__||__|_|_||_|_|___|||_|__|_|__|_|_||_|_|_||__|_|
    -  ||_______________________||__________________________|
    -  | _____________________  ||      __   __  _  __    _ |
    -  ||=|=|=|=|=|=|=|=|=|=|=| __..\/ |  |_|  ||#||==|  / /|
    -  || | | | | | | | | | | |/\ \  \\|++|=|  || ||==| / / |
    -  ||_|_|_|_|_|_|_|_|_|_|_/_/\_.___\__|_|__||_||__|/_/__|
    -  |____________________ /\~()/()~//\ __________________|
    -  | __   __    _  _     \_  (_ .  _/ _    ___     _____|
    -  ||~~|_|..|__| || |_ _   \ //\\ /  |=|__|~|~|___| | | |
    -  ||--|+|^^|==|1||2| | |__/\ __ /\__| |==|x|x|+|+|=|=|=|
    -  ||__|_|__|__|_||_|_| /  \ \  / /  \_|__|_|_|_|_|_|_|_|
    -  |_________________ _/    \/\/\/    \_ _______________|
    -  | _____   _   __  |/      \../      \|  __   __   ___|
    -  ||_____|_| |_|##|_||   |   \/ __|   ||_|==|_|++|_|-|||
    -  ||______||=|#|--| |\   \   o    /   /| |  |~|  | | |||
    -  ||______||_|_|__|_|_\   \  o   /   /_|_|__|_|__|_|_|||
    -  |_________ __________\___\____/___/___________ ______|
    -  |__    _  /    ________     ______           /| _ _ _|
    -  |\ \  |=|/   //    /| //   /  /  / |        / ||%|%|%|
    -  | \/\ |*/  .//____//.//   /__/__/ (_)      /  ||=|=|=|
    -__|  \/\|/   /(____|/ //                    /  /||~|~|~|__
    -  |___\_/   /________//   ________         /  / ||_|_|_|
    -  |___ /   (|________/   |\_______\       /  /| |______|
    -      /                  \|________)     /  / | |
    +                

    "The Pragmatic Programmer" book notes

    +

    Published at 2023-03-15T00:55:20+02:00

    +

    These are my personal takeaways after reading "The Pragmatic Programmer" by David Thomas and Andrew Hunt. Note that the book contains much more knowledge and pearls of wisdom and that the following notes only contain points I personally found worth writing down. This is mainly for my own use, but you might find it helpful too.

    +
    +         ,..........   ..........,
    +     ,..,'          '.'          ',..,
    +    ,' ,'            :            ', ',
    +   ,' ,'             :             ', ',
    +  ,' ,'              :              ', ',
    + ,' ,'............., : ,.............', ',
    +,'  '............   '.'   ............'  ',
    + '''''''''''''''''';''';''''''''''''''''''
    +                    '''
     

    Think about your work while doing it - every day on every project. Have a feeling of continuous improvement.

      @@ -96,9 +76,10 @@ __| \/\|/ /(____|/ // / /||~|~|~|__

      It's your life. Share it, celebrate it, be proud and have fun.

      The story of stone soup

      How to motivate others to contribute something (e.g. ideas to a startup):

      -

      A kindly, old stranger was walking through the land when he came upon a village. As he entered, the villagers moved towards their homes, locking doors and windows. The stranger smiled and asked, why are you all so frightened. I am a simple traveler, looking for a soft place to stay for the night and a warm place for a meal. "There's not a bite to eat in the whole province," he was told. "We are weak and our children are starving. Better keep moving on." "Oh, I have everything I need," he said. "In fact, I was thinking of making some stone soup to share with all of you." He pulled an iron cauldron from his cloak, filled it with water, and began to build a fire under it. Then, with great ceremony, he drew an ordinary-looking stone from a silken bag and dropped it into the water. By now, hearing the rumor of food, most of the villagers had come out of their homes or watched from their windows. As the stranger sniffed the "broth" and licked his lips in anticipation, hunger began to overcome their fear. "Ahh," the stranger said to himself rather loudly, "I do like a tasty stone soup. Of course, stone soup with cabbage -- that's hard to beat." Soon a villager approached hesitantly, holding a small cabbage he'd retrieved from its hiding place, and added it to the pot. "Wonderful!!" cried the stranger. "You know, I once had stone soup with cabbage and a bit of salt beef as well, and it was fit for a king." The village butcher managed to find some salt beef . . . And so it went, through potatoes, onions, carrots, mushrooms, and so on, until there was indeed a delicious meal for everyone in the village to share. The village elder offered the stranger a great deal of money for the magic stone, but he refused to sell it and traveled on the next day. As he left, the stranger came upon a group of village children standing near the road. He gave the silken bag containing the stone to the youngest child, whispering to a group, "It was not the stone, but the villagers that had performed the magic."

      +

      A kindly, old stranger was walking through the land when he came upon a village. As he entered, the villagers moved towards their homes, locking doors and windows. The stranger smiled and asked, why are you all so frightened. I am a simple traveler, looking for a soft place to stay for the night and a warm place for a meal. "There's not a bite to eat in the whole province," he was told. "We are weak and our children are starving. Better keep moving on." "Oh, I have everything I need," he said. "In fact, I was thinking of making some stone soup to share with all of you." He pulled an iron cauldron from his cloak, filled it with water, and began to build a fire under it. Then, with great ceremony, he drew an ordinary-looking stone from a silken bag and dropped it into the water. By now, hearing the rumor of food, most of the villagers had come out of their homes or watched from their windows. As the stranger sniffed the "broth" and licked his lips in anticipation, hunger began to overcome their fear. "Ahh," the stranger said to himself rather loudly, "I do like a tasty stone soup. Of course, stone soup with cabbage -- that's hard to beat." Soon a villager approached hesitantly, holding a small cabbage he'd retrieved from its hiding place, and added it to the pot. "Wonderful!!" cried the stranger. "You know, I once had stone soup with cabbage and a bit of salt beef as well, and it was fit for a king." The village butcher managed to find some salt beef . . . And so it went, through potatoes, onions, carrots, mushrooms, and so on, until there was indeed a delicious meal for everyone in the village to share. The village elder offered the stranger a great deal of money for the magic stone, but he refused to sell it and traveled on the next day. As he left, the stranger came upon a group of village children standing near the road. He gave the silken bag containing the stone to the youngest child, whispering to a group, "It was not the stone, but the villagers that had performed the magic."

      By working together, everyone contributes what they can, achieving a greater good together.

      E-Mail your comments to hi@paul.cyou :-)

      +More entries
    @@ -164,6 +145,7 @@ __| \/\|/ /(____|/ // / /||~|~|~|__

    There are some days at work you feel drained afterwards and think you didn't progress towards your goals at all. It's more challenging to shut down from work after such a day. A quick hack is to work on a quick win before the end of the day, giving you a sense of accomplishment after all. Another way is to make progress on your fun passion project after work. It must not be work-related, but a sense of accomplishment will still be there.

    E-Mail your comments to hi@paul.cyou :-)

    +More entries
    @@ -263,6 +245,7 @@ Art by Joan Stark

    Another thing is that GrapheneOS can only run on Google Pixel phones, whereas LineageOS can be installed on a much larger variety of hardware. But on the other hand, GrapheneOS works very well on Pixel phones. The GrapheneOS team can concentrate their development efforts on a smaller set of hardware which then improves the software's quality (best example: The camera app).

    And, of course, GrapheneOS is an open-source project. This is a good thing; however, on the other side, nobody can guarantee that the OS will not break or will not damage your phone. You have to trust the GrapheneOS project and donate to the project so they can keep up with the great work. But I rather trust the GrapheneOS team than big tech.

    E-Mail your comments to hi@paul.cyou :-)

    +More entries
    @@ -345,6 +328,7 @@ Art by Joan Stark

    Java needs a clean cut. The clean cut shall be incompatible with previous versions of Java and only promote modern best practices without all the legacy burden carried around. The same can be said for other languages, e.g. Perl, but in Perl, they already attack the problem with the use of flags which change the behaviour of the language to more modern standards. Or do it like Python, where they had a hard (incompatible) cut from version 2 to version 3. It will be painful, for sure. But that would be the only way I would enjoy using that language as one of my primary languages to code new stuff regularly. Currently, my Java will stay limited to very few projects and the more minor things already mentioned in this post.

    Am I a Java expert now? No, by far not. But I am better now than before :-).

    E-Mail your comments to hi@paul.cyou :-)

    +More entries
    @@ -429,6 +413,7 @@ nmap ,i !wpbpaste<CR>

    Update: One reader recommended to have a look at NvChad. NvChad is a NeoVim config written in Lua aiming to provide a base configuration with very beautiful UI and blazing fast startuptime (around 0.02 secs ~ 0.07 secs). They tweak UI plugins such as telescope, nvim-tree, bufferline etc well to provide an aesthetic UI experience. That sounds interesting!

    https://github.com/NvChad/NvChad

    E-Mail your comments to hi@paul.cyou :-)

    +More entries

    Appendix

    This is the VimScript I mentioned earlier, which parses a table of contents index of my scanned paper journals and opens the corresponding PDF at the right page in zathura:

    @@ -489,6 +474,7 @@ endfunction
     
     nmap ,j :call OpenJournalPage()<CR>
     

    +More entries
    @@ -784,6 +770,7 @@ REMOTE|fishfinger|100|7|fstab|093f510ec5c0f512.h /usr/local ffs rw,wxallowed,nod https://github.com/mimecast/dtail
    https://www.rexify.org

    E-Mail your comments to hi@paul.cyou :-)

    +More entries
    @@ -858,6 +845,7 @@ jgs (________\ \

    Social media

    I wouldn't say I like checking social media, as it can consume a lot of time and can become addictive. But once in a while, I want to catch up with my "networks". After a bad night's sleep, it's the perfect time to check your social media. Once done, you don't have to do it anymore for the next couple of days!

    E-Mail your comments to hi@paul.cyou :-)

    +More entries
    @@ -934,6 +922,7 @@ check_dependencies () {

    Additionally, there were a couple of bug fixes, refactorings and overall improvements in the documentation made.

    Overall I think it's a pretty solid 1.1.0 release without anything groundbreaking (therefore no major version jump). But I am happy about it.

    E-Mail your comments to hi@paul.cyou :-)

    +More entries
    @@ -1541,6 +1530,7 @@ rex commons

    OpenBSD suits perfectly here as all the tools are already part of the base installation. But I like underdogs. Rex is not as powerful and popular as other configuration management systems (e.g. Puppet, Chef, SALT or even Ansible). It is more of an underdog, and the community is small.

    Why re-inventing the wheel? I love that a Rexfile is just a Perl DSL. Also, OpenBSD comes with Perl in the base system. So no new programming language had to be added to my mix for the configuration management system. Also, the acme.sh shell script is not a Bash but a standard Bourne shell script, so I didn't have to install an additional shell as OpenBSD does not come with the Bash pre-installed.

    E-Mail your comments to hi@paul.cyou :-)

    +More entries
    @@ -1782,6 +1772,7 @@ v = 008 [v = p*c*(s != c ? 2 : 1)] Total logical CPUs

    If you wonder what Gemini is:

    Welcome to the Geminispae

    E-Mail your comments to hi@paul.cyou :-)

    +More entries
    @@ -1891,6 +1882,7 @@ v = 008 [v = p*c*(s != c ? 2 : 1)] Total logical CPUs

    Update 2022-12-17: The following is another related post. I don't agree to the statement made there, that Python code tends to be shorter than Perl code, though!

    Why Perl is still relevant in 2022

    E-Mail your comments to hi@paul.cyou :-)

    +More entries
    @@ -1998,6 +1990,7 @@ learn () {
  • Ultralearning; Scott Young; Thorsons
  • E-Mail your comments to hi@paul.cyou :-)

    +More entries
    @@ -2250,6 +2243,7 @@ exec /usr/local/bin/dtailhealth --server localhost:2222

    Thanks!

    Paul

    E-Mail your comments to hi@paul.cyou :-)

    +More entries
    @@ -2416,6 +2410,7 @@ GNU/kFreeBSD rhea.buetow.org 8.0-RELEASE-p5 FreeBSD 8.0-RELEASE-p5 #2: Sat Nov 2 DragonFly BSD - Fork of FreeBSD 4
    Phosh (on postmarketOS) - A true Linux shell for the smartphone

    E-Mail your comments to hi@paul.cyou :-)

    +More entries
    @@ -2463,6 +2458,7 @@ GNU/kFreeBSD rhea.buetow.org 8.0-RELEASE-p5 FreeBSD 8.0-RELEASE-p5 #2: Sat Nov 2

    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 your comments to hi@paul.cyou :-)

    +More entries
    @@ -2875,6 +2871,7 @@ PAUL:X:1000:1000:PAUL BUETOW:/HOME/PAUL:/BIN/BASH 1

    E-Mail your comments to hi@paul.cyou :-)

    +More entries
    @@ -2967,6 +2964,7 @@ PAUL:X:1000:1000:PAUL BUETOW:/HOME/PAUL:/BIN/BASH

    Another blog post worth reading:

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

    E-Mail your comments to hi@paul.cyou :-)

    +More entries
    @@ -3351,6 +3349,7 @@ bash: line 1: 1/10.0 : syntax error: invalid arithmetic operator (error token is

    See you later for the next post of this series.

    E-Mail your comments to hi@paul.cyou :-)

    +More entries
    @@ -3430,6 +3429,7 @@ bash: line 1: 1/10.0 : syntax error: invalid arithmetic operator (error token is

    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 your comments to hi@paul.cyou :-)

    +More entries
    @@ -3501,6 +3501,7 @@ bash: line 1: 1/10.0 : syntax error: invalid arithmetic operator (error token is

    Enough ranted for now!

    E-Mail your comments to hi@paul.cyou :-)

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

    +More entries
    @@ -3583,6 +3584,7 @@ bash: line 1: 1/10.0 : syntax error: invalid arithmetic operator (error token is

    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 your comments to hi@paul.cyou :-)

    +More entries
    @@ -3664,6 +3666,7 @@ Hello World

    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 your comments to hi@paul.cyou :-)

    +More entries
    @@ -3803,6 +3806,7 @@ assert::equals "$(generate::make_link md "$gemtext")" \

    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 your comments to hi@paul.cyou :-)

    +More entries
    @@ -4111,6 +4115,7 @@ fi

    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 your comments to hi@paul.cyou :-)

    +More entries
    @@ -4182,6 +4187,7 @@ fi https://gemini.circumlunar.space
    https://gemini.circumlunar.space

    E-Mail your comments to hi@paul.cyou :-)

    +More entries
    @@ -4263,6 +4269,7 @@ dtail –servers serverlist.txt –files ‘/var/log/*.log’ –regex ‘(?i:er

    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 your comments to hi@paul.cyou :-)

    +More entries
    @@ -4402,6 +4409,7 @@ Total time: 1213.00s Graphite
    Memory mapped I/O

    E-Mail your comments to hi@paul.cyou :-)

    +More entries
    @@ -4494,6 +4502,7 @@ mult.calculate(mult,a,b)); 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 your comments to hi@paul.cyou :-)

    +More entries
    @@ -4719,6 +4728,7 @@ apply Service "dig6" {

    That's much more comfortable now than manually clicking at some web UIs at Schlund Technologies.

    E-Mail your comments to hi@paul.cyou :-)

    +More entries
    @@ -4756,6 +4766,7 @@ apply Service "dig6" {

    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 your comments to hi@paul.cyou :-)

    +More entries
    @@ -5135,6 +5146,7 @@ Notice: Finished catalog run in 206.09 seconds

    All done in a pretty automated manor.

    E-Mail your comments to hi@paul.cyou :-)

    +More entries
    @@ -5178,6 +5190,7 @@ Notice: Finished catalog run in 206.09 seconds

    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 your comments to hi@paul.cyou :-)

    +More entries
    @@ -5342,6 +5355,7 @@ exit

    Reboot & test! Enjoy!

    E-Mail your comments to hi@paul.cyou :-)

    +More entries
    @@ -5484,6 +5498,7 @@ fib(10) = 55

    It's entertaining to play with :-).

    E-Mail your comments to hi@paul.cyou :-)

    +More entries
    @@ -5630,6 +5645,7 @@ sub do ($) {

    You can find PerlDaemon (including the examples) at:

    https://codeberg.org/snonux/perldaemon

    E-Mail your comments to hi@paul.cyou :-)

    +More entries
    @@ -6045,6 +6061,7 @@ BB

    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 your comments to hi@paul.cyou :-)

    +More entries
    @@ -6145,6 +6162,7 @@ first 10 nat_pairs_not_null
    http://www.haskell.org/

    E-Mail your comments to hi@paul.cyou :-)

    +More entries
    @@ -6299,6 +6317,7 @@ fun my_filter f l = foldr (make_filter_fn f) [] l my_filter f l = foldr (make_filter_fn f) [] l

    E-Mail your comments to hi@paul.cyou :-)

    +More entries
    @@ -6345,6 +6364,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 your comments to hi@paul.cyou :-)

    +More entries
    @@ -6509,6 +6529,7 @@ This is perl, v5.8.8 built for i386-freebsd-64int

    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 your comments to hi@paul.cyou :-)

    +More entries
    diff --git a/gemfeed/index.html b/gemfeed/index.html index 1181f2e6..76026246 100644 --- a/gemfeed/index.html +++ b/gemfeed/index.html @@ -10,7 +10,7 @@

    Gemfeed of foo.zone

    To be in the .zone!

    -2023-03-16 - 'The pragmatic programmer' book notes
    +2023-03-16 - 'The Pragmatic Programmer' book notes
    2023-02-26 - How to shut down after work
    2023-01-23 - Why GrapheneOS rox
    2022-12-24 - Ultra(re)learning Java - My takeaways
    diff --git a/index.html b/index.html index 1ed83f74..9973a08e 100644 --- a/index.html +++ b/index.html @@ -9,7 +9,7 @@

    foo.zone

    -

    This site was generated at 2023-03-15T00:57:00+02:00 by Gemtexter

    +

    This site was generated at 2023-03-15T01:21:44+02:00 by Gemtexter

        |\---/|
        | ,_, |
    @@ -30,7 +30,7 @@
     Subscribe to this blog's Atom feed
    Subscribe to this blog's Gemfeed

    Posts

    -2023-03-16 - 'The pragmatic programmer' book notes
    +2023-03-16 - 'The Pragmatic Programmer' book notes
    2023-02-26 - How to shut down after work
    2023-01-23 - Why GrapheneOS rox
    2022-12-24 - Ultra(re)learning Java - My takeaways
    diff --git a/notes/index.html b/notes/index.html index 0786ff9c..407c2b48 100644 --- a/notes/index.html +++ b/notes/index.html @@ -11,7 +11,7 @@

    Notes on foo.zone

    To be in the .zone!

    'The Stoic Challenge' book notes
    -'The pragmatic programmer' book notes
    +'The Pragmatic Programmer' book notes
    'Software Developmers Career Guide & Soft Skills' book notes
    'Never split the difference' book notes
    'Mental Combat' book notes
    diff --git a/notes/mental-combat.html b/notes/mental-combat.html index c6e9c54d..de55c51c 100644 --- a/notes/mental-combat.html +++ b/notes/mental-combat.html @@ -32,7 +32,8 @@
  • Choose a key word as a trigger to breath and think positively.
  • One way not to lose is not to see a loss as a loss. Think of each defeat as a test. And go back to the drawing board. Don't take a loss emotionally. It's a super power. This is the key. To self improvement. There are no failures but tests.

    -More notes
    +

    E-Mail your comments to hi@paul.cyou :-)

    +More entries
  • Don't shop the groceries when you are hungry.
  • Slow.... it.... down....

    -More notes
    +

    E-Mail your comments to hi@paul.cyou :-)

    +More entries
  • The war of Art (to combat procrastination)
  • Willpower Instinct
  • -More notes
    +

    E-Mail your comments to hi@paul.cyou :-)

    +More entries

    "The pragmatic programmer" book notes

    +

    "The Pragmatic Programmer" book notes

    Published at 2023-03-15T00:55:20+02:00

    -

    These are my personal takeaways after reading "The Pragmatic Programmer" by David Thomas and Andrew Hunt. Note that the book contains much more knowledge and pearls of wisdom and that the following notes only contain points I personally found worth writing down. This is mainly for my use, but you might find it helpful too.

    +

    These are my personal takeaways after reading "The Pragmatic Programmer" by David Thomas and Andrew Hunt. Note that the book contains much more knowledge and pearls of wisdom and that the following notes only contain points I personally found worth writing down. This is mainly for my own use, but you might find it helpful too.

              ,..........   ..........,
          ,..,'          '.'          ',..,
    @@ -69,7 +69,7 @@
     

    A kindly, old stranger was walking through the land when he came upon a village. As he entered, the villagers moved towards their homes, locking doors and windows. The stranger smiled and asked, why are you all so frightened. I am a simple traveler, looking for a soft place to stay for the night and a warm place for a meal. "There's not a bite to eat in the whole province," he was told. "We are weak and our children are starving. Better keep moving on." "Oh, I have everything I need," he said. "In fact, I was thinking of making some stone soup to share with all of you." He pulled an iron cauldron from his cloak, filled it with water, and began to build a fire under it. Then, with great ceremony, he drew an ordinary-looking stone from a silken bag and dropped it into the water. By now, hearing the rumor of food, most of the villagers had come out of their homes or watched from their windows. As the stranger sniffed the "broth" and licked his lips in anticipation, hunger began to overcome their fear. "Ahh," the stranger said to himself rather loudly, "I do like a tasty stone soup. Of course, stone soup with cabbage -- that's hard to beat." Soon a villager approached hesitantly, holding a small cabbage he'd retrieved from its hiding place, and added it to the pot. "Wonderful!!" cried the stranger. "You know, I once had stone soup with cabbage and a bit of salt beef as well, and it was fit for a king." The village butcher managed to find some salt beef . . . And so it went, through potatoes, onions, carrots, mushrooms, and so on, until there was indeed a delicious meal for everyone in the village to share. The village elder offered the stranger a great deal of money for the magic stone, but he refused to sell it and traveled on the next day. As he left, the stranger came upon a group of village children standing near the road. He gave the silken bag containing the stone to the youngest child, whispering to a group, "It was not the stone, but the villagers that had performed the magic."

    By working together, everyone contributes what they can, achieving a greater good together.

    E-Mail your comments to hi@paul.cyou :-)

    -Go back to the main site
    +More entries
  • A setback in a setback in a setback: the stoic god's work overtime, eh? :-)
  • What would the stoic god's do next? This is just a test strategy by them. Don't be frustrated at all but be astonished of what comes next. Thank the stoic gods of testing you. This is comfort zone extension of the stoics aka toughness Training.

    -More notes
    +

    E-Mail your comments to hi@paul.cyou :-)

    +More entries